[TIL_250130] GameMode 이해하기

2025. 1. 30. 21:20·Dev./UE 언리얼 엔진

🗺️마인드맵

GameModeBase는 초급자가 사용하기 좋다. 멀티플레이 로직이 전혀 없다고 보면 된다.

📒학습 내용

✨GameMode가 게임의 '규칙'을 정한다면, GameState는 게임의 '상태'를 기록하고 공유하는 역할을 한다고 보면 된다.

GameModeBase는 초급자가 사용하기 좋다. 멀티플레이 로직이 전혀 없다고 보면 된다.

GameMode 이해하기

GameMode란?
언리얼에서 제공하는 클래스 ➡️ 총괄, 관리자 클래스(게임 매니저)

  • GameMode는 GameModeBase의 자식 클래스.
  • GameState, PlayerState 연동 등 다양한 기능 제공
  • 멀티플레이 환경에서 필수적!
더보기

GameMode의 주요 기능과 책임
 1 플레이어의 캐릭터 관리: Pawn/Character 스폰
- 게임이 시작될 때 (또는 플레이어가 리스폰될 때), DefaultPawnClass 또는 지정한 Pawn 클래스를 자동으로 스폰한다.
- 스폰된 Pawn을 플레이어가 조작할 수 있도록 PlayerController와 연동해주는 역할을 한다.

 2 PlayerController 지정(빙의)
- 플레이어의 입력(키보드, 마우스, 게임패드 등)을 전달하고 처리하는 PlayerController가 어떤 클래스로 동작할지 설정한다.

 3 게임 규칙 관리
- 점수 계산, 타이머, 라운드 제어, 난이도 등 게임 전반의 규칙을 정의하고 유지한다.
- 특정 점수 달성, 보스 몬스터 처치, 제한 시간 종료 등 승리/패배를 결정하는 조건을 관리한다.
- 승리 혹은 패배가 확정되면, 게임 오버 화면을 띄우거나 다음 레벨로 전환하는 식의 후속 처리를 담당한다.

 4 GameState / PlayerState 사용
- GameState는 전체 게임 흐름 (타이머, 전역 변수 등), PlayerState는 플레이어별 정보 (체력, 점수 등)를 관리하는 용도로 쓰일 수 있다.
- 멀티플레이만큼 복잡하게 쓰진 않더라도, 상태 저장과 관리를 좀 더 체계적으로 하고 싶을 때 유용하다.

GameMode 적용하기

  • 실제 게임 프로젝트에서 GameMode를 블루프린트로 감싸서  상속해서 쓰는 것이 좋다!
    • 🤔왜? → 에디터 내에서 여러 파라미터 수정하기 편하다.

  • Edit - Project Setting - Map&Mode - 게임모드 설정(만든 게임모드를 지정하면 된다)


  • 게임 모드가 총괄하는 클래스
    • HUD Class : 게임 화면 위에 표시되는 UI 요소들을 관리.
    • PlayerController Class : 플레이어의 입력을 받아 게임 내 행동으로 변환.
    • GameState: 게임의 현재 상태 정보를 저장하고 관리.
    • PlayerState : 개별 플레이어에 대한 상태 정보를 저장.
    • Spectator Class : 관전자 모드의 동작을 정의
더보기

GameState

  • 주요 역할
    • 게임 진행 상태 관리 : 게임의 현재 진행 상황을 추적하고 관리함.
    • 점수 및 통계 관리 : 플레이어의 점수, 승패 기록 등 게임 통계를 저장하고 업데이트함.
    • 타이머 및 라운드 정보 : 게임 라운드와 타이머와 같은 시간 관련 정보를 관리함.
    • 클라이언트 동기화 : 게임 상태를 모든 클라이언트에 동기화하여, 모든 플레이어가 동일한 게임 상태를 보도록 함.

지역 GameMode 설정

  • Window - World Setting - (디테일 창) - GameMode Override
  • 전역 게임모드 설정과 달리 지역 게임모드 설정이 다르다면, 레벨(지역)에서 지정된 것이 우선으로 동작한다.

🟣오늘의 옵시디언 현황

'Dev. > UE 언리얼 엔진' 카테고리의 다른 글

[TIL_250203] EnhancedInputSystem으로 입력 매핑, 캐릭터 동작 구현하기  (0) 2025.02.03
[TIL_250131] Character 클래스를 활용한 캐릭터 구현하기(3인칭 카메라 설정, GameMode 설정)  (0) 2025.01.31
[TIL_250129] 회전 발판, 움직이는 장애물, 비물질 발판 구현하기 (2) - &충돌, 히트 감지  (1) 2025.01.29
[TIL_250128] 회전 발판, 움직이는 장애물, 비물질(?) 발판 구현하기  (0) 2025.01.28
[TIL_250127] [스파르타코딩클럽 후기] C++와 Unreal Engine으로 3D 게임 개발 - 리플렉션 시스템 이해하기!  (0) 2025.01.27
'Dev./UE 언리얼 엔진' 카테고리의 다른 글
  • [TIL_250203] EnhancedInputSystem으로 입력 매핑, 캐릭터 동작 구현하기
  • [TIL_250131] Character 클래스를 활용한 캐릭터 구현하기(3인칭 카메라 설정, GameMode 설정)
  • [TIL_250129] 회전 발판, 움직이는 장애물, 비물질 발판 구현하기 (2) - &충돌, 히트 감지
  • [TIL_250128] 회전 발판, 움직이는 장애물, 비물질(?) 발판 구현하기
raindrovvv
raindrovvv
raindrovvv 님의 블로그 입니다.
  • raindrovvv
    raindrovvv 님의 블로그
    raindrovvv
  • 전체
    오늘
    어제
    • 분류 전체보기 (100) N
      • Dev. (93) N
        • UE 언리얼 엔진 (48) N
        • Unity 유니티 (0)
        • Wwise 와이즈 (7) N
        • 게임 네트워크 (8)
        • 그래픽스 Graphics (22) N
        • 프로젝트 (4)
        • 기타 개발 관련 (4)
      • Computer Science (0)
        • 하드웨어 HW (0)
        • 소프트웨어 SW (0)
        • 통신 (0)
        • 데이터 (0)
      • 블로그 (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    AI
    와이즈
    고라니
    언리얼
    게임음향
    머티리얼
    네트워크
    UE
    게임사운드
    게임
    그래픽스
    Wwise
    Unreal
    게임네트워크
    게임개발
    unrealengine
    TA
    언리얼엔진
    셰이더
    오디오미들웨어
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
raindrovvv
[TIL_250130] GameMode 이해하기
상단으로

티스토리툴바