언리얼 게임플레이 프레임워크

민트맛치킨·2025년 10월 24일

Unreal

목록 보기
20/26

언리얼 엔진은 멀티플레이어 게임을 위해 5개의 핵심 클래스로 게임 로직을 체계적으로 분리,
각 클래스는 역할과 책임을 가지면서 네트워크 환경에서 어디에 존재하는지가 중요


GameMode

역할

  • 게임의 규칙과 로직을 관리하는 심판 역할
  • 승리/패배 조건 판단, 게임 시작/종료 처리
  • 플레이어 스폰 위치 결정
  • 기본 Pawn, PlayerController 등 클래스 지정

특징

  • 서버에만 존재 (클라이언트에는 없음)
  • 클라이언트가 게임 규칙을 해킹할 수 없도록 보안 목적
  • 싱글플레이어에서는 로컬 머신이 서버 역할

GameState

역할

  • 게임 전체의 상태 정보 저장
  • 모든 플레이어가 알아야 하는 정보 관리
  • 경기 시간, 팀 점수, 게임 단계(진행중/종료)
  • 전체 플레이어 목록 (PlayerState 배열)
  • 날씨, 시간대 등 게임 환경 정보

특징

  • 모든 클라이언트에 복제됨
  • 게임이 시작되고 종료될 때까지 유지
  • 스코어보드, HUD 등에 표시되는 전역 데이터

PlayerController

역할

  • 플레이어의 입력(키보드, 마우스, 게임패드 등)을 받아 처리
  • UI와 HUD 표시 관리
  • 카메라 제어
  • Pawn을 소유하고 조종
  • 서버에 RPC 호출

특징

  • 클라이언트와 서버 양쪽에 존재
  • 플레이어 1명당 1개씩 생성
  • 플레이어가 접속해 있는 동안 유지
  • Pawn이 죽어도 PlayerController는 살아있음

Pawn

역할

  • 게임 월드에 실제로 존재하는 물리적 캐릭터
  • 3D 모델, 메시, 애니메이션 표시
  • 이동, 충돌, 액션 수행
  • 체력, 상태 등 물리적 속성 관리

특징

  • 모든 클라이언트에서 보임
  • PlayerController가 빙의(Possess)해서 조종
  • 죽으면 사라지고 다시 스폰 가능
  • Character는 Pawn에서 걷기, 점프 등 기능 추가

PlayerState

역할

  • 플레이어의 점수, 통계, 정보 저장
  • 킬/데스, 랭킹, 레벨
  • 플레이어 이름, 팀 정보
  • Pawn이 죽어도 유지되는 정보

특징

  • 모든 클라이언트에 복제됨
  • 플레이어가 접속해 있는 동안 유지
  • 다른 플레이어도 볼 수 있어야 하는 정보
  • 스코어보드에 표시되는 개인 데이터

클래스위치수명주요 역할저장 데이터
GameMode서버만레벨 로드~언로드규칙, 승패 판정게임 로직
GameState모든 곳레벨 로드~언로드전체 상태팀 점수, 남은 시간
PlayerController서버 + 본인 클라접속~종료입력, UI카메라, 입력 설정
PlayerState모든 곳접속~종료플레이어 정보킬/데스, 점수
Pawn모든 곳스폰~죽음/언빙의물리적 존재체력, 위치, 메시

생성 순서

  1. GameMode (서버, 레벨 로드 시)
  2. GameState (서버 생성 → 클라이언트 복제)
  3. PlayerController (플레이어 접속 시)
  4. PlayerState (PlayerController 생성 직후, PlayerController가 소유)
  5. Pawn (GameMode가 스폰)

소멸 순서

플레이어 종료 시:
1. Pawn 소멸 (UnPossess)
2. PlayerState 소멸
3. PlayerController 소멸

레벨 전환 시:

  • PlayerController, PlayerState → 유지
  • GameMode, GameState → 소멸 후 새로 생성
  • Pawn → 보통 소멸 후 새 레벨에서 새로 스폰

0개의 댓글