- 순서
- GameMode 클래스
- GameInstance 클래스
- GameState 클래스
- PlayerState 클래스
- GameMode 클래스
- 역할: 게임 규칙과 규칙 실행자
- 특징
- GameMode는 서버 전용 클래스로 서버에서만 존재하며 클라이언트에서는 존재하지 않음 > 클라이언트에서는 GameState로 동기화만 받도록 함
- GameMode는 레벨마다 1개만 존재함
- 클라이언트만 있는 싱글 플레이의 경우 클라이언트 프로세스 안에 서버 역할도 함께 실행을 시킴 => 로컬 서버 + 로컬 클라이언트가 같은 프로세스 안에 동시에 존재하는 구조로 로컬 서버 부분에서 GameMode가 생성됨.
- 로컬 클라이언트는 내부적으로 서버가 가진 GameMode의 규칙을 그대로 따름.
- 어떤 플레이어 캐릭터를 사용할지, 플레이어가 어떻게 스폰되지, 점수 규칙 등의 게임 규칙을 정의함
- 수명 주기: 맵이 로드될 때 생성되며 해당 맵이 끝나면 파괴
- GameInstance 클래스
- 역할: 게임 실행 전체를 관리하는 전역 매니저
- 특징
- 보통 게임이 실행되는 동안 단 1개만 존재함(에디터에서 Player in Editor시 예외적으로 여러 개 생길 수 있음)
- 레벨 전환 시에도 파괴되지 않고 유지함
- 세션 관리, 전역 데이터 저장, 서버 연결, 로비-인게임 간 데이터 유지 등에 활용
- 수명 주기: 게임 시작부터 종료까지 살아있음
- GameState 클래스
- 역할: 현재 게임 진행 상황을 네트워크로 공유하는 데이터 저장소
- 특징
- 서버와 클라이언트 모두에 존재함
- 서버가 값을 갱신하면 클라이언트로 복제되어 현재 게임 상황을 공유함.
- 수명 주기: 레벨이 시작될 때 생성, 레벨 종료 시 파괴.
- PlayerState 클래스
- 역할: 특정 플레이어의 상태와 통계를 네트워크로 공유
- 특징
- 서버와 클라이언트 모두에 존재함.
- 플레이어 고유 정보들을 저장함.
- Pawn과 달리 플레이어의 신원/상태는 PlayerState에 유지됨 > Pawn이 죽고 리스폰해도 PlayerState는 유지됨
- 수명 주기: 플레이어가 서버에 접속할 때 생성, 접속 종료 시 제거됨
| 클래스 | 존재 위치 | 수명 주기 | 주요 책임 |
| GameMode | 서버 전용 | 맵 시작 > 맵 종료 | 게임 규칙, 승리 조건, 스폰 관리 |
| GameInstance | 서버 + 클라이언트(각자) | 게임 실행 시작 > 종료 | 전역 데이터, 레벨 간 유지, 세션 관리 |
| GameState | 서버 + 클라이언트 | 맵 시작 > 맵 종료 | 현재 게임 상황 공유 |
| PlayerState | 서버 + 클라이언트 | 플레이어 접속 > 접속 종료 | 플레이어별 정보 |
'Unreal Engine' 카테고리의 다른 글
| [UE]스마트 포인터 (0) | 2025.08.29 |
|---|---|
| [UE] 언리얼 엔진의 GC (1) | 2025.08.28 |
| [UE]언리얼 오브젝트 (0) | 2025.08.28 |
| [UnrealEngine] Enhanced Input System (0) | 2025.08.01 |
| [Unreal Engine] Unreal Engine_C++ 매크로 (5) | 2025.07.16 |