내일배움캠프 4일차

박나연·2025년 4월 10일

내배캠

목록 보기
4/69

재미있는 게임 속 상호작용 분석 시간!

  오늘은 팀원들과 함께한 게임 속 상호작용 분석 내용과 코딩 특강에서 배운 몇몇 개념, 그리고 개인적으로 학습한 짧은 CS 공부내용까지 곁들여 적어보겠다.

오늘의 키워드 : 게임 속 상호작용 분석

1. 게임 속 상호작용 분석 시간

  게임을 분석하기 위해 게임을 하나 고르고 그 게임의 상징적인 시스템이나 특징을 분석해보는 시간을 가졌다. 우리팀은 리그 오브 레전드라는 게임을 선택했고 쓰레쉬라는 캐릭터의 패시브 스킬을 분석해보았다.

  • 쓰레쉬의 패시브 스킬(지옥살이) 분석

영혼 드랍 조건

  1. 쓰레쉬가 현재 살아있는가?
    1. 살아있는 조건은 현재 체력이 1 이상인 경우
  2. 정해진 범위 안에 적 유닛이 있는가?
    1. 쓰레쉬를 중심으로 정해진 원형 범위 안에 유닛이 존재해야함
    2. 유닛의 종류는 챔피언, 미니언, 에픽몬스터
  3. 범위 안에 있는 유닛이 죽었는가?
    1. 유닛 종류마다 드랍하는 영혼의 양이 다름
    2. 미니언 33% 1개 / 에픽 몬스터 100% 2개 / 챔피언, 대포 미니언 100% 1개

영혼 획득 조건

  1. 영혼 출현 애니메이션이 끝났는가?
    1. 애니메이션이 대략 60% 정도 진행된 후에 획득 가능
  2. 영혼 유지 시간이 남아있는가?
    1. 영혼 지속 시간은 8초
    2. 영혼과 쓰레쉬 사이의 거리가 획득 거리 이하인 경우
    3. W스킬과 영혼 사이의 거리가 획득 거리 이하인 경우

영혼 획득 조건

  1. 영혼 드랍 애니메이션 대략 60%정도 이상 진행
  2. 쓰레쉬 혹은 쓰레쉬의 W스킬이 획득 가능 거리 안으로 진입
  3. 영혼이 쓰레쉬 혹은 W스킬로 가까운 쪽으로 이동
  4. 흡수 범위 안으로 들어오면 사라지는 애니메이션 실행
  5. 영혼 스택 증가
  6. 방어력, 주문력 능력치 각각 1씩 증가

2. 개발에서 자주 쓰이는 개념 4가지

  • 싱글톤
    : 게임 내에서 딱 하나만 존재하는 클래스 인스턴스를 만들기 위한 디자인 패턴(주로 매니저 클래스에 사용)
public class GameManager : MonoBehaviour
{
    public static GameManager Instance;

    void Awake()
    {
        if (Instance == null)
            Instance = this;
        else
            Destroy(gameObject);  // 중복 방지
    }
}

이렇게 하면 어디서든 GameManager.Instance로 접근 가능하다.

  • Instance
    : 일반적으로 싱글톤 패턴에서 자기 자신을 가리킬 때 쓰는 변수 이름이다.

  • GetComponent<>()
    : 같은 GameObject 안에 붙어있는 다른 컴포넌트를 가져올 때 사용한다.
    예시 -> 현재 오브젝트에 붙어있는 Rigidbody를 가져와라

Rigidbody rb = GetComponent<Rigidbody>();
  • [SerializeField]
    : public이 아니어도 Inspector 창에서 변수를 보이게 해주는 기능이다. private 변수 앞에 붙이면 Inspector창에서 수정이 가능해진다. 하지만 public과 다른점은 코드 상에서 캡슐화의 원칙은 그대로 유지되므로 외부스크립트에서 접근이 불가하다는 것이다.

3. 관계형 데이터베이스

  • 튜플 : 릴레이션을 구성하는 각각의 행(카디널리티, 기수)
  • 속성 : 데이터베이스를 구성하는 가장 작은 논리적 단위(디그리, 차수)
  • 도메인 : 하나의 속성이 취할 수 있는 같은 타입의 원자 값들의 집합

예시 문제 : A1, A2, A3 3개 속성을 갖는 한 릴레이션에서 A1의 도메인은 3개 값, A2의 도메인은 2개 값, A3의 도메인은 4개 값을 갖는다. 이 릴레이션에 존재 가능한 튜플의 최대 수는?
->이 문제를 풀 때 도메인의 수가 총 9개네? 그럼 답은 9!라고 답하면 안된다. A1의 도메인의 값은 a1, b1, c1이라고 하고 A2의 도메인의 값은 a2, b2, A3의 도메인 값은 a3, b3, c3, d3라고 가정한다면 (a1, a2, a3), (a1, a2, b3), (a1, a2, c3), (a1, a2, d3), (a1, b2, a3)... 이렇게 튜플이 생성된다. 그러므로 3 x 2 x 4 = 24가 되므로 답은 24가 된다.

  • 키(key) : 데이터베이스에서 조건에 만족하는 튜플을 찾거나 순서대로 정렬할 때 기준이 되는 속성을 말한다. 키의 종류는 아래와 같다.
  1. 후보키 (유일성, 최소성 만족)
  2. 기본키 (후보키 중 선정된 Main key)
  3. 대체키 (후보키 중 기본키가 아닌 나머지 후보키)
  4. 슈퍼키 (유일성 만족)
  5. 외래키 (다른 릴레이션의 기본키를 참조하는 속성의 집합)

4. 마무리하며

  개인학습 팀이라 서로 소통할 시간이 별로 없었는데 이 시간에 많은 대화를 하니까 재미있었다. 다음에 기회가 있다면 스크립트 구조까지도 생각해 보는 시간도 있으면 재미있을 것 같다!

5. 내일 할 일

  내일은 프로젝트 팀의 발표가 있다고 하는데 구경할 수 있을지도 모르겠다. 어쨌든 내일은 오늘과 비슷하게 계속 CS 지식을 공부할 예정이다.

0개의 댓글