게임플레이 플레임워크

Taegang Yun·2024년 6월 11일
0

Unreal

목록 보기
11/11

언리얼 엔진에서의 게임 제작이란,

레벨 구성

레벨에 WorldStatic과 같이 미리 배치되어 플레이어와 상호 작용할 액터들의 배치 작업.

게임 플레이 설계

레벨 구성이 완료된 뒤, 게임 로직에 따라 게임 플레이가 원활하게 진행되게 하는 작업.
이때 사용하는 것이 언리얼 엔진에서 제공하는 게임 플레이 프레임워크.

게임플레이 프레임워크

다양한 게임 장르와 멀티 플레이까지 지원할 수 있도록 설계된 언리얼 프레임워크
게임플레이 프레임워크의 핵심 3가지 요소는 아래와 같음.
게임 모드(Game Mode)
게임의 규칙을 관리하는 클래스.
플레이어 컨트롤러(Player Controller)
실질적으로 게임에 입장하는 플레이어.
폰(Pawn)
플레이어가 조종할 수 있는 액터.

게임 모드

플레이어에게 보이지 않는 무형의 요소. 두 가지 역할을 함.
첫 번째는 게임 플레이 중 사건이 발생할 때 게임 진행의 심판 역할.
ex) 게임 승리 조건. 살아 남은 플레이어가 혼자라면 해당 플레이어 승리.
두 번째는 플레이어 입장을 준비하는 역할.
ex) 플레이어 컨트롤러, 플레이어가 빙의할 폰 지정, ..

  • 게임 서버와 게임 모드
    이후에 배우지만, 게임 모드는 서버와 밀접한 관계가 있음. 혹은 거의 동치.
    게임 모드는 하나의 PC(서버 컴퓨터)에만 존재함.
    만약 디아블로처럼 방을 파서 플레이하는 게임이라면(리슨서버)
    방장의 PC에만 게임 모드 액터가 존재.
    혹은 데디케이티드 서버(클라 로직이 없고, 오롯히 서버 로직만 동작하는 서버)라면
    데디 서버에만 게임 모드 액터가 존재하게 됨.
    배그가 데디 서버 방식. 그래서 게임 시작하자 마자 내가 1등으로 승리하는 핵이 없음.
    게임 모드는 데디 서버에만 존재하고, 클라 컴퓨터엔 존재하지 않기 때문.
    그래서 게임 모드의 게임 승리 조건을 마음대로 수정할 수가 없음.

플레이어 컨트롤러와 폰

플레이어 컨트롤러

가상 세계에서 플레이어를 대변하는 무형의 액터.
플레이어 컨트롤러는 플레이어와 1:1로 소통하면서 폰을 조작할 수 있음.
플레이어가 입장할 때마다 배정. 배정된 플레이어 컨트롤러는 변경 불가.

플레이어 컨트롤러에게 조종 당하는 액터.
플레이어 컨트롤러는 뇌, 폰은 육체의 개념.
레벨에 배치된 개체들과 충돌하면서 상호 작용하는 역할.
플레이어는 플레이어 컨트롤러를 통해서 현재 조종하는 폰을 버리고 다른 폰에 빙의 가능.

로그인(Login)

플레이어의 게임 입장. 언리얼 에디터 > Toolbar > 플레이 버튼(Play In Editor)을 통해 가능.

빙의(Possess)

플레이어 컨트롤러가 폰을 소유하면서 조종하게 되는 과정

게임 모드에 플레이어 컨트롤러 지정하는 방식

플레이어 컨트롤러 액터를 생성하고 해당 액터 개체를 게임 모드에 지정하는 게 아님.
플레이어 컨트롤러 클래스 정보를 게임 모드에 지정함.
이는 멀티 플레이까지 고려한 구조. 플레이어가 입장할 때마다 플레이어 컨트롤러를 생성.

언리얼 오브젝트의 클래스 정보

언리얼 오브젝트의 클래스 정보는 UHT에 의해 자동으로 생성됨.
StaticClass() 함수에 의해 컴파일 단계에서의 클래스 정보를 가져올 수 있음.
런타임 중의 클래스 정보는 GetClass() 함수를 통해 가능.

profile
언젠간 전문가가 되겠지

0개의 댓글