728x90
반응형
- 개요
GameLift 서버 프로세스의 실행 파라미터를 갖고있는 ServerParameters 구조체의 인스턴스를 설정하는 로직을
다른 함수로 분리하여 InitGameLift 함수의 부하를 감소시킨다
또, AWS 공식 문서에서 가져온 코드를 프로젝트 진척도에 맞게 수정하여
게임 세션 시작 + 서버 프로세스 종료 + 서버 프로세스 상태 확인에 맞게 호출할 함수를 바인드한다
- C++ 사이드
1) ShooterGameMode 클래스

SetServerParameters 함수를 추가하여 ServerParameters 구조체의 인스턴스를 생성 + 설정한다

SetServerParameters 함수를 위와 같이 구성하였다
해당 함수는 서버에서만 호출해야 하므로 WITH_GAMELIFT에 따라 조건부 컴파일하도록 설정한다
로직은 위와 같이 구성하여 커맨드인자를 분석하고
GameLift Anywhere 또는 Managed 환경에 맞는 ServerParameter를 설정한다

InitGameLift 함수의 로직을 위와 같이 수정하여 커맨드인자에서 "-glAnywhere"가 존재하는지 판단한다
- 존재하는 경우 : GameLift Anywhere의 로컬 환경이므로 SetServerParameters 함수를 호출
- 존재하지 않는 경우 : GameLift Managed의 클라우드 환경이므로 별도 설정 없이 기본값으로 서버 설정

이후 로직을 위와 같이 구성한다
- 1) SDK 초기화 : InitSDK 함수를 호출하여 서버 프로세스와 GameLift 서비스 간의 연결 시도
- 2) 게임 세션 시작 콜백 함수 설정 : OnStartGameSession에 람다를 바인딩
- GameLift 서비스가 해당 프로세스에 게임 세션을 할당할 때 바인딩된 로직 호출
- 3) 서버 프로세스 종료 콜백 함수 설정 : OnTerminate에 람다를 바인딩
- GameLift 서비스가 프로세스 종료를 요청할 때 바인딩된 로직 호출
- 4) 서버 프로세스 상태 확인 콜백 함수 설정 : OnHealthCheck에 람다를 바인딩
- GameLift 서비스가 주기적으로 서버 프로세스가 정상적으로 동작하는지 확인할 때 바인딩된 로직 호출

로직을 전부 작성한 후에 Development Server로 전환하여 문제없이 컴파일되는지 확인한다
728x90
반응형
'언리얼 엔진 - 게임 프로젝트 > AWS GameLift를 활용한 데디케이트 FPS 프로젝트' 카테고리의 다른 글
| GameLift Anywhere 플릿 - 1) AWS CLI 설치 및 설정 (0) | 2026.04.04 |
|---|---|
| 언리얼 엔진 + GameLift 통합 - 최종) 포트 / 로그 / ProcessReady설정 + 패키징 (0) | 2026.04.02 |
| 언리얼 엔진 + GameLift 통합 - 1) GameMode 클래스의 생성 (0) | 2026.03.29 |
| AWS - 최종) 사용자 권한을 부여하기 위한 Permission Sets 생성 (0) | 2026.03.27 |
| AWS - 3) Identity Center 사용자 생성 (0) | 2026.03.27 |