언리얼 엔진 - 게임 프로젝트/AWS GameLift를 활용한 데디케이트 FPS 프로젝트

API Gateway - 3) DedicatedServers 모듈 생성

monstro 2026. 5. 11. 11:59
728x90
반응형

- 개요

백엔드와 관련된 기능을 수행하는 DedicatedServers 모듈을 생성한다

따라서 기존 게임 모듈에서 갖고 있던 백엔드서버와 관련된 작업들을 해당 모듈로 이관한다

 

- C++ 사이드

1) DedicatedServers 모듈 관련

1 - 1) DedicatedServers.build.cs 파일

 

DedicatedServers 모듈에 관련된 build.cs 파일을 생성한다

이때 서버이거나 에디터인 경우에만 GameLiftServerSDK 모듈을 참조하여 AWS GameLift와 통신한다

 

1 - 2) DedicatedServers.h 파일과 DedicatedServers.cpp 파일

헤더 파일

 

cpp 파일

 

cpp 파일에서 IMPLEMENT_MODULE 매크로를 사용하여 DedicatedServers 모듈을 결정한다

 

1 - 3) DSGameMode 클래스

 

GameMode 클래스는 게임의 기본적인 규칙을 정의하는 클래스서버에만 존재한다

따라서 GameMode를 주 모듈에서 DedicatedServers 모듈로 이관한다

GameMode 클래스의 전용로그를 위와 같이 수정하고

DedicatedServers_API로 수정하여 외부에서 해당 클래스를 참조할 수 있도록 설정한다

 

 

cpp 파일클래스의 이름과 로그를 수정한 것 외에는 기존의 GameMode 클래스와 동일하다

 

2) 게임 모듈(주 모듈) 관련

2 - 1) FPSTemplate.build.cs 파일

 

주 모듈에서 참조하는 다른 모듈들을 위와 같이 수정하였다

DedicatedServers 모듈을 해당 프로젝트에서 참조할 수 있도록 설정한다

 

2 - 2) 에디터 + 서버 + 클라이언트 대상의 target.cs 파일

Editor.target.cs 파일

 

Server.target.cs 파일

 

Client.target.cs 파일

 

에디터 + 서버 + 클라이언트 대상의 빌드 구성을 지정하는 target.cs 파일에서 DedicatedServers 모듈을 참조한다

 

2 - 3) FPSTemplate.uproject 파일

 

uproject 확장자를 갖고 있는 project모듈과 플러그인을 모두 포함하는 가장 최상위 요소이다

현재 프로젝트의 uproject에서 DedicatedServers 모듈을 포함하도록 설정한다

 

2 - 4) ShooterGameModeBase 클래스

 

기존의 부모 클래스로 사용하던 AGameMode를 제거하고 

DedicatedServers 모듈의 DS_GameMode를 부모로 사용하도록 설정한다

 

- 애셋 작업

1) BP_ShooterGameModeBase 블루프린트

 

ShooterGameModeBase를 부모로 하는 GameMode 블루프린트를 생성한다

 

 

부모 버전의 BeginPlay 함수를 호출하여 서버라면 AWS GameLift에 연결한다

 

 

생성한 GameMode의 구성요소를 위와 같이 설정한다

 

 

project settings - Default Modes 설정에서 기본적으로 사용할 GameMode를 설정한다

 

- 최종 실행 결과

728x90
반응형