게임의 규칙이나 승리 조건같은 것이 포함된 게임의 정의로, 서버에만 존재합니다.
보통은 플레이 도중 바뀌는 데이터는 많이 없어야 하며, 클라이언트에서 알아야 하는 휘발성 데이터는 없어야 합니다.
컨트롤러는 Pawn 에 대한 지시를 담당하는 Actor 입니다.
보통 두 가지 구분되는데, AIController 와 PlayerController 입니다.
컨트롤러는 Pawn에 "possess"(빙의)되어 그 폰을 제어할 수 있습니다.
플레이어 컨트롤러는 Pawn 과 그것을 제어하는 사람 플레이어를 잇는 인터페이스입니다.
컨트롤러는 리플리케이트 되지 않습니다.
GameState는 접속된 플레이어 목록, 점수, 오픈 월드 게임에서 완료한 퀘스트 목록 등 게임 전반에 걸쳐 필요한 게임 상태가 저장됩니다. GameState는 서버와 모든 클라이언트에 존재하며, 최신 상태 유지를 위해 자유롭게 리플리케이트 가능합니다.
인간 플레이어 또는 플레이어인 척 하는 봇과 같은 게임 참여자의 상태를 말합니다.
게임의 일부로써 존재하는 플레이어가 아닌 AI 에는 PlayerState가 없습니다.
PlayerState에 적합한 예제 데이터라면, 플레이어 이름, 점수 등입니다.
모든 플레이어에 대한 PlayerState 는 (PlayerController 와는 달리) 서버와 모든 클라이언트에 존재하며, 동기화 상태 유지를 위해 자유로이 리플리케이트 가능합니다.
https://docs.unrealengine.com/ko/InteractiveExperiences/Framework/QuickReference/index.html
게임 플레이 프레임워크의 중심이 되는 게임 모드는 레벨 별로 셋팅이 가능하며,
월드 셋팅에서 게임모드 오버라이드에서 셋팅할 수 있습니다.
None으로 셋팅된 월드의 경우에는 프로젝트 셋팅에 기본 게임모드에 셋팅된 게임모드가 셋팅됩니다.
그외 게임 플레이와 관련된 액터들(GameState, PlayerState)은 게임 모드에서 설정할 수 있습니다.