본캠프 78일차_언리얼엔진 게임개발 입문_GameModeBase, GameStateBase

YU YEON WON·2025년 12월 1일


과제를 수행하면서 두 클래스의 역할이 상호간 어떻게 역할을 분담하는지 정리해보았다.


🎮GameModeBase

  • 역할

    • 게임의 규칙과 흐름을 정의하는 클래스.
    • 어떤 Pawn을 플레이어가 사용할지, HUD는 무엇을 쓸지, PlayerController/PlayerState를 어떻게 생성할지 결정.
    • 서버에서만 존재하며, 클라이언트에는 직접적으로 존재하지 않음.
  • 특징

    • 게임 시작 시 어떤 Actor를 스폰할지, 승리 조건/패배 조건을 정의
    • 멀티플레이 환경에서는 서버 권위(authoritative)를 가짐
    • AGameModeBase는 AGameMode의 단순화 버전으로, 기본 규칙만 제공
  • 예시

    • “게임은 5분 동안 진행된다.”
    • “플레이어가 죽으면 리스폰한다.”
    • “점수가 10점 이상이면 승리한다.”

🕹️GameStateBase

  • 역할

    • 게임의 현재 상태를 저장하고 동기화하는 클래스
    • 서버와 클라이언트 모두 존재하며, 클라이언트는 이 객체를 통해 게임 진행 상황을 알 수 있음
  • 특징

    • 플레이어 점수, 남은 시간, 현재 라운드 등 게임 진행 상황 공유
    • AGameStateBase는 AGameState의 단순화 버전으로, 팀/매치 관련 확장 기능이 없음
    • PlayerState들과 함께 클라이언트에 동기화되어 HUD나 UI에서 활용\
  • 예시

    • “현재 점수는 7점이다.”
    • “남은 시간은 2분이다.”
    • “현재 라운드는 Round 3이다.”

🔑 핵심 차이

구분GameModeBaseGameStateBase
존재 위치서버 전용서버 + 클라이언트
역할규칙/흐름 정의상태/진행 상황 공유
예시승리 조건, 리스폰 규칙점수, 남은 시간, 라운드
확장AGameMode (팀/매치 규칙 포함)AGameState (팀/매치 상태 포함)

✨ 요약

  • GameModeBase는 게임 규칙을 정의하는 서버 전용 클래스
  • GameStateBase는 게임 상태를 저장하고 클라이언트와 동기화하는 클래스.
  • 멀티플레이에서 GameModeBase는 서버 권위, GameStateBase는 클라이언트와 공유라는 점이 가장 큰 차이.
profile
🕹️🎮🍱✈️📸 안녕하세요! 게임개발에 도전하고 있습니다!

0개의 댓글