[UE/Implement] 미니 프로젝트 회고

2025. 2. 13. 23:48·Unrael/Implement

1. 개요

오늘은 구현한 과제를

큰 틀에서 시각적으로 살펴보고자 한다.

 

2. 전체 플로우

전체 프로그램의 흐름을 간단히 요약해 보았다.

 

2.1 게임의 큰 줄기, 게임 스테이트(GameState)

GameState는 레벨에 필요한 데이터를 담는 저장소로만 생각했었다.

 

마치 구조체처럼 데이터를 보관하고

필요할 때 전역으로 접근하여 데이터를 가져가는 그러한 클래스로 생각했었으나

이번 과제를 진행하면서 전체 로직도 포함할 수 있는 클래스라는 것을 알았다.

 

가벼운 게임에서

많지 않은 게임 규칙 데이터를 담고 있는 GameState에

게임 로직을 구현하게 되면 많은 클래스를 거치지 않고
데이터를 쉽고 빠르게 접근하는 것이 큰 이점이라고 생각이 든다.

 

향후 큰 게임을 구현할 때

방대한 게임 규칙 데이터가 필요한 경우에는

또 어떤 플로우로 게임 로직이 구현될 지 궁금해졌다.

 

2.2 게임의 흐름 체인저, 기믹 (Gimmik)

기믹은 게임에서 트리거되어 플레이어와 상호작용하는 요소들이다.

플레이어에게 재미를 주며 게임의 난이도를 조절하는 요소 중 하나이다.

 

기믹은 'GameState'에서 생성되었다.

 

기믹을 레벨에 수동 배치할 수 있지만

이렇게 런타임에 생성한 이유는 다양한 변수를 적용하기 위해서이다.

생성할지 말지, 여러 개를 생성할 지 하나 만을 생성할 지는

게임을 시작하기 전 개발자도 예측할 수 없다.

 

또한, 기믹은 플레이어와 오버렙을 통해 상호작용하며

게임의 흐름을 변경하는 역할을 한다는것이다.

 

이는 플레이어에게 다양한 선택의 길을 주고 게임의 몰입을 높이게 된다.

 

 

2.3 게임의 마지막, 플레이어 컨트롤러 (PlayerController)

플레이어 컨트롤러는

플레이어의 입력을 처리하고 여러 폰에 빙의되는 역할로 생각했다.

 

하지만 플레이어의 UI를 표시와 입력 처리를 담당하였으며

마지막으로 게임 종료까지 처리하였다.

 

이런 역할로 인해 GameState는 레벨이 시작하거나 레벨이 종료될 때

PlayerController를 찾아가 플레이어에게 UI를 보여달라고 요청하는 모습을 보여주었다. 

 

그리고 게임 종료를 위해
위젯 블루프린트에서 플레이어 컨트롤러에 접근해 프로그램 종료 함수를 호출하였다.

 

3. 정리

가벼운 게임에서 게임의 큰 흐름을 구현하고자 한다면

GameState를 활용할 수 있다.

 

기믹은 오버렙을 통해 플레이어와 상호작용하고

게임의 흐름을 변경하는 요소로 역할을 수행할 수 있다.

 

플레이어 컨트롤러는 UI의 표시와 입력을 관리한다.

그리고 프로그램 종료에도 사용이 된다.

'Unrael > Implement' 카테고리의 다른 글

[UE/Implement] 바라보는 방향으로 총알 발사  (0) 2025.02.24
[UE/Implement] 탄창 소모 연출  (1) 2025.02.21
[UE/Basic] 치트 매니저 (Cheat Manager)  (0) 2025.02.12
[UE/Implement] 트랩 구현  (0) 2025.02.11
[UE/Implement] 액터 하이라이트 표시하기  (0) 2025.01.02
'Unrael/Implement' 카테고리의 다른 글
  • [UE/Implement] 바라보는 방향으로 총알 발사
  • [UE/Implement] 탄창 소모 연출
  • [UE/Basic] 치트 매니저 (Cheat Manager)
  • [UE/Implement] 트랩 구현
DevColIn
DevColIn
복잡함을 단순하게
  • DevColIn
    심플한 코딩생활
    복잡함을 단순하게
  • 전체
    오늘
    어제
    • 전체보기 (223)
      • Unreal 부트캠프 (49)
        • TIL (34)
        • 사전캠프 (7)
        • 본캠프 (8)
      • Unrael (10)
        • 환경설정 (0)
        • Basic (19)
        • Component (5)
        • GAS (GameplayAbilitySystem) (3)
        • AI (2)
        • Implement (10)
        • UI (1)
        • Error (1)
        • Network (2)
        • Tip (1)
      • Level Design (5)
      • Math (1)
      • Design Pattern (16)
      • Computer Science (2)
        • Network (1)
        • Database (1)
      • Algorithm (79)
        • Basic (4)
        • Practice (74)
      • C++ (4)
        • Basic (4)
      • Tool (0)
      • Game (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 미디어로그
    • 위치로그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    레벨디자인
    component
    basic
    actor
    gas
    Til
    소프트 레퍼런신
    디자인패턴
    게임동기화
    AI
    DesignPattern
    퀘스트
    assetmanager
    Animation
    내일배움캠프
    unrealengine
    액터
    Implement
    본캠프
    Design Pattern
    unreal
    디자인 패턴
    KPT회고
    GameplayEffect
    하드 레퍼런싱
    tsoftobjectptr
    사전캠프
    알고리즘
    c++
    Algorithm
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.2
DevColIn
[UE/Implement] 미니 프로젝트 회고
상단으로

티스토리툴바