1. GameMode란?
- GameMode는 게임의 전반적인 규칙과 흐름을 총괄 관리하는 역할을 하는 클래스이다.
- 싱글 플레이에서는 서버와 클라이언트 개념이 나뉘지 않으므로, GameMode가 온전히 로컬에서 동작하여 게임 전체를 제어한다.
- 어떤 Pawn(또는 Character)을 플레이어에게 스폰해 줄지, 어떤 PlayerController를 사용할지, 승패 조건이나 점수 계산 방식은 어떻게 설정할지 등 게임 플레이의 핵심 로직을 담당한다.
- 프로젝트 전역 혹은 레벨별로 필요한 GameMode를 구분해 설정할 수 있다.
2. GameMode의 주요 기능과 책임
플레이어 Pawn/Character 스폰
- 게임이 시작될 때(또는 플레이어가 리스폰될 때) DefaultPawnClass 또는 지정한 Pawn 클래스를 자동으로 스폰한다.
- 스폰된 Pawn을 플레이어가 조작할 수 있도록 PlayerController와 연동해 주는 역할을 한다.
PlayerController 지정
- 플레이어의 입력(키보드, 마우스, 게임 패드 등)을 전달하고 처리하는 PlayerController가 어떤 클래스로 동작할지 설정한다.
게임 규칙 관리
- 점수 계산, 타이머, 라운드 제어, 난이도 등 게임 전반의 규칙을 정의하고 유지한다.
- 특정 점수 달성, 보스 몬스터 처치, 제한 시간 종료 등 승리/패배를 결정하는 조건을 관리한다.
- 승리 혹은 패배가 확정되면, 게임 오버 화면을 띄우거나 다음 레벨로 전환하는 식의 후속 처리를 담당한다.
GameState / PlayerState 사용
- GameState는 전체 게임 흐름(타이머, 전역 변수 등), PlayerState는 플레이어별 정보(체력, 점수 등)를 관리하는 용도로 쓰일 수 있다.
- 멀티플레이만큼 복잡하게 쓰진 않더라도, 상태 저장과 관리를 좀 더 체계적으로 하고 싶을 때 유용하다.
3. GameMode 클래스 생성하기
언리얼 엔진5는 GameMode와 GameModeBase 두 종류가 있다.
3 - 1. GameMode
- 언리얼에서 제공하는 멀티플레이 기능 (세션, 플레이어 연결 로직 등)을 일부 포함하고 있으며, 싱글 플레이에서도 문제없이 사용할 수 있다.
- 필요에 따라 GameState, PlayerState 등 연동이 활성화되어 있다.
3 - 2. GameModeBase
- 좀 더 단순화된 형태로, 멀티플레이 관련 로직이 거의 포함되지 않는다.
- 간단한 싱글 플레이 게임 또는 직접 멀티플레이 로직을 구현하고 싶을 때 사용한다.
4. GameMode 클래스 적용
직접 만든 C++ GameMode 클래스를 게임에서 활용하려면, 일반적으로 블루프린트 클래스로 한 번 더 감싸는 방식을 권장한다. 이렇게 하면, 에디터에서 세부 파라미터를 수정하기 훨씬 편리하기 때문이다.
4 - 1. 프로젝트 전역에 GameMode 적용하기
- 상단 메뉴 Edit > Project Setting > Maps & Modes 항목 선택
- Default GameMode를 자신이 만든 GameMode Blueprint로 설정
- 이 프로젝트의 모든 레벨에 대해 기본 GameMode가 해당 GameMode로 설정된다.
4 - 2. 레벨 별 GameMode 적용하기
- 상단 메뉴 Window > WorldSetting을 클릭해 WorldSetting 창을 연다.
- 현재 열려 있는 레벨의 GameMode Override를 설정하고 싶은 GameMode Blueprint로 변경한다.
- 이 특정 레벨은 프로젝트 전역 설정 대신 위에서 설정한 GameMode를 사용하게 된다.
5. GameMode 기본 설정 알아보기
Default Pawn Class
- 레벨 시작 시 플레이어가 조종하게 될 Pawn(또는 Character) 클래스를 지정한다.
Hud Class
- 게임 화면에 표시되는 HUD(UI) 요소를 관리하는 클래스를 지정한다.
Player Controller Class
- 플레이어 입력 처리와 카메라 제어, UI와의 상호작용을 담당하는 클래스를 지정한다.
Game State Class / Player State Class
- 게임의 전역 상태나 플레이어별 상태를 추적할 때 사용한다.
Spectator Class
- 관전자 모드에서 사용할 Pawn 클래스를 지정한다.
- 일반 플레이어와 다른 이동 방식이나 카메라 제어가 필요할 때 활용한다.
6. 확인하기
게임을 실행해 보면 기본 설정들이 자동으로 스폰되고, GameMode 또한 스폰되어 동작하는 모습을 볼 수 있다.
'Unreal' 카테고리의 다른 글
Player Controller (0) | 2025.02.12 |
---|---|
Pawn과 Character 클래스 이해하기 (0) | 2025.02.06 |
[7강 숙제] 멤버 변수 및 멤버 함수 리플렉션 시스템 사용하기 (0) | 2025.01.23 |
언리얼 엔진 리플렉션 (0) | 2025.01.23 |
[6강 숙제] 위치/회전/스케일을 동적으로 변경하는 오브젝트 만들기 (0) | 2025.01.23 |