기본적인 게임플레이 프레임워크
Class | 어디 존재? |
GameMode | 서버 |
GameState | 서버, 클라이언트 |
PlayerState | 서버, 클라이언트 |
PlayerController | 서버, 자신 소유의 클라이언트 |
Pawn | 서버, 클라이언트 |
HUD, UserWidget | 클라이언트 |
GameMode는 서버에만 존재하며 클라이언트에서 접근하면 nullptr이 반환된다. GameMode는 기본 클래스들을 정의하는데 Pawn, PlayerController, HUD 등을 레벨에 따라 다르게 정의할 수 있다. 또한 플레이어의 죽음이나 부활과 같은 게임의 규칙을 담당하며, MatchState와 WarmupTime과 같이 게임 라운드 시간을 정할 수 있다.
GameState는 서버와 클라이언트 모두 존재한다. GameState는 게임의 상태를 저장한다. 누가, 어떤 팀이 이기고 있는지, 팀 점수는 어떤지 등을 나타내며, 게임 내 PlayerState를 Array 형태로 가지고 있다.
PlayerState는 서버와 클라이언트 모두 존재한다. PlayerState는 플레이어의 상태를 저장한다. 개개인의 점수, 플레이어의 패배 횟수, 탄약을 얼마나 남았는지, 어느 팀에 속하는지 등을 나타낸다.
PlayerController는 서버에만 존재한다. 클라이언트에서는 본인 소유의 PlayerController는 클라이언트에 존재한다. PlayerController는 Controller의 기능과 함께 HUD에 접근할 수 있는 통로를 제공한다.
Pawn은 클라이언트에서 다른 플레이어의 움직임이 보여야 하므로, 서버와 클라이언트 모두 존재한다.
HUD와 위젯은 클라이언트에만 존재한다. 플레이어가 다른 플레이어의 위젯을 표시할 필요는 없으므로, 서버에는 존재하지 않는다. 위젯은 로컬 클라이언트에게 메시지를 표시하거나 체력, 탄약, 점수와 같은 정보를 표시해준다.
서버에는 GameMode, GameState, 모든 PlayerState, 모든 PlayerController, 모든 Pawn이 있다.
클라이언트는 GameState, 모든 PlayerState, 본인의 PlayerController, 모든 Pawn이 있다.
'Unreal Engine > 기타' 카테고리의 다른 글
[UE] AGameMode와 MatchState (1) | 2024.02.24 |
---|---|
[UE] 클라이언트와 서버의 동기화 (1) | 2024.02.11 |
[UE] HUD와 PlayerController (0) | 2024.01.14 |
[UE] RPC : Remote Procedure Calls (0) | 2023.12.21 |
[UE] Variable Replication (0) | 2023.12.17 |