728x90
반응형
- 개요
GameLift Server SDK 플러그인을 언리얼 엔진에서 사용하기 위해 통합하는 과정을 처리한다
통합하는 과정은 AWS 공식문서를 바탕으로 진행하였다
공식문서의 내용을 기반으로 GameMode 클래스를 생성하고 구성한다
- C++ 사이드
1) build.cs 파일

build.cs 파일을 위와 같이 수정한다
- 빌드하는 결과물에 따라 모듈을 다르게 참조하도록 설정
- 1) 서버인 경우 - GameLiftServerSDK 모듈을 참조
- 2) 서버가 아닌 경우 - WITH_GAMELIFT 매크로의 값을 0으로 설정
- bEnableExceptions 값을 활성화하여 C++의 예외 처리를 사용
2) ShooterGameMode 클래스

프로젝트에서 사용할 GameMode 클래스를 위와 같이 생성한다
GameLiftSever SDK 플러그인을 사용하기 위해 일반적인 GameMode 클래스와 다르게 구성하였다
- FProcessParameters 구조체 전방선언 - GameLift 서버 프로세스의 실행 파라미터를 담는 구조체
- DECLARE_LOG_CATEGORY_EXTERN 매크로를 사용하여 해당 클래스 전용 로그를 정의
- InitGameLift 함수 : 서버 프로세스가 시작될 때 GameLift 서비스와 통신을 시작하는 사용자 정의 함수
- ProcessParametes 멤버변수 : FProcessParameters 구조체를 참조하는 스마트포인터

cpp 파일을 위와 같이 구성한다
WITH_GAMELIFT 매크로의 값을 판단하여 서버라면 추가적으로 헤더 파일을 사용한다
또한 DEFINE_LOG_CATEGORY 매크로를 사용하여 커스텀 로그를 사용하도록 설정한다

생성자와 BeingPlay 함수를 위와 같이 정의한다
- 생성자 : ProcessParametes 멤버변수를 nullptr로 초기화
- BeginPlay 함수 : 서버라면 InitGameLift 함수를 호출

InitGameLift 함수는 공식문서를 바탕으로 정의하였다
간단하게 정리하면 다음과 같이 로직이 동작한다
- 1) GameLiftServerSDK 모듈 로드 및 초기화
- 2) 커맨드인자를 분석하여 Anywhere(로컬) 또는 Managed(클라우드) 설정
- 3) 콜백 함수 설정 : 게임 시작 시에 호출 + 종료 시에 호출 + 서버 동작을 확인하기 위해 주기적으로 호출
- 4) 연결할 포트 및 로그 저장 경로를 지정한 후에 ProcessReady 함수 호출

이후 빌드 타겟을 Development Server로 설정하고 빌드하여 문제없이 동작하는지 확인한다
728x90
반응형
'언리얼 엔진 - 게임 프로젝트 > AWS GameLift를 활용한 데디케이트 FPS 프로젝트' 카테고리의 다른 글
| 언리얼 엔진 + GameLift 통합 - 최종) 포트 / 로그 / ProcessReady설정 + 패키징 (0) | 2026.04.02 |
|---|---|
| 언리얼 엔진 + GameLift 통합 - 2) FServerParameters 설정 + OnStartGameSession / OnTerminate / OnHealthCheck 바인드 (0) | 2026.04.02 |
| AWS - 최종) 사용자 권한을 부여하기 위한 Permission Sets 생성 (0) | 2026.03.27 |
| AWS - 3) Identity Center 사용자 생성 (0) | 2026.03.27 |
| AWS - 2) AWS 사용자 유형 (0) | 2026.03.26 |