게임 개발 공부/Unreal Engine

GameState & GameMode

Vetenir 2025. 2. 6. 21:57

GameState

  • 게임에 규칙 관련 이벤트가 발생하고 트래킹을 통해 모든 플레이어와 공유할 필요가 있을 때 사용.
  • 게임이 시작될 때 서버에서 생성 -> 클라이언트는 이를 복제.
  • 서버와 클라이언트 동일한 정보를 가짐

 

GameMode

  • 서버 전용 로직을 담는 곳, 게임 규칙 (팀 배정, 승패 조건, 플레이어 스폰 등)을 서버에서 제어하는 데 사용.
  • 클라이언트는 GameMode에 직접 접근할 수 없음.

 

 

AGameMode 는 AGameModeBase 의 서브클래스로, 멀티플레이어 경기 및 기존 작동방식 지원을 위한 부가 함수가 몇 가지 들어있습니다. 새롭게 생성되는 프로젝트는 모두 AGameModeBase 를 기본 사용하지만, 그 부가 함수가 필요한 경우 AGameMode 를 상속하도록 전환할 수 있습니다. 

 

"AGameMode를 상속하는 경우, 경기 스테이트 머신도 지원하는 AGameState 에서 게임 스테이트를 상속하기도 해야합니다."

-> GameMode의 부가적인 기능을 GameState와 관련이 깊고 잘 활용하기 위해서 간소화된 AGameStateBase보다 AGameState를 사용하는 것이 좋다고 합니다.

 

 

결론

멀티플레이에서...

GameMode -> 중요한 규칙 로직.

GameState -> 서버-클라이언트가 공통으로 알아야하는 상태.

 

 

 

참고

https://teamsparta.notion.site/16-d2e07e004b3a4b34a0ce889d92d86d8d

https://dev.epicgames.com/documentation/ko-kr/unreal-engine/game-mode-and-game-state-in-unreal-engine?application_version=5.5