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

Access Tokens - 최종) 인증 헤더 추가

monstro 2026. 6. 25. 18:27
728x90
반응형

- 개요

클라이언트에서 게임 세션 접속서버에 요청하면서 갖고 있는 AccessToken인증 헤더를 추가하도록 설정한다

 

- 스크립트 작업

1) GameSessionsManager 클래스

 

GameSession 중재자 클래스JoinGameSession 함수에 위와 같이 로직을 추가한다

DSLocalPlayerSubsystem을 가져와서 유효한지 확인하고

유효하다면 PlayerSubsystem으로부터 AccessToken을 가져와 인증 헤더를 추가한다

 

2) JoinGame 클래스

 

 

진행중인 GameSession에 참여하는 게임 참여 UI SetStautusMessage 함수불리언 인자를 추가한다

불리언 인자의 값에 따라 게임 참여 버튼을 활성화한다

 

3) GamePage 클래스

 

참여할 게임과 관련된 게임 페이지 UI 클래스에 위와 같이 멤버변수와 함수를 추가한다

  • JoinGameWidget 멤버변수 : 게임에 참여하기 위한 게임 참여 UI
  • GameSessionsManagerClass 멤버변수 : GameSession 중재자 클래스의 서브 클래스 타입
  • GameSessionManager 멤버변수 : GameSession 중재자 클래스의 객체를 지정

 

 

NativeConstruct 함수를 추가하여 필요한 데이터를 연동한다

GameSession 중재자의 객체를 생성하고 델리게이트에 게임 참여 UISetStatusMessage 함수를 바인드한다

또, 게임 참여 UI의 버튼에 JoinGameButtonClicked 멤버함수를 바인드한다

 

 

JoinGameButtonClicked 함수의 로직은 위와 같이 구성한다

게임 참여 UI의 버튼을 비활성화하고

GameSession 중재자의 JoinGameSession 함수를 호출하여 게임 세션 참여를 서버에 요청한다

 

- 블루프린트 작업

1) WBP_GamePage 위젯 블루프린트

 

게임 참여 UI를 하위 위젯으로 추가하고 멤버변수와 이름을 통일한다

 

 

GameSession 중재자 클래스의 서브클래스 타입 멤버변수를 설정한다

 

- 최종 실행 결과

 

위와 같이 설정한 후에 프로젝트에 대한 서버 클라이언트로 각각 패키징한다

이때 패키징 결과물을 저장하는 폴더 이름을 "Build_3"로 설정한다

 

# 1) 토큰 발급
aws gamelift get-compute-auth-token ^
--fleet-id "플릿 ID" ^
--compute-name "컴퓨팅 자원 이름" ^
--region "사용중인 리전" ^
--profile "프로필 이름" // 해당 옵션은 필요한 경우 사용

# 2) 발급된 토큰을 사용하여 서버 exe 파일 실행
"경로\Build\Build_3\운영체제Server\프로젝트Server.exe" -log -glAnywhere ^
-glAnywhereAuthToken="발급된토큰" ^
-glAnywhereHostId="컴퓨팅 자원 이름" ^
-glAnywhereFleetId="플릿 ID" ^
-glAnywhereWebSocketUrl="리전에 따른 소켓 URL" ^
-port=7777 // 기본 포트번호

 

AWS CLI를 실행하고 위와 같이 명령어를 입력하여 Build_3 폴더에 저장된 서버 exe 파일을 실행한다

 

 

이후 클라이언트 exe 파일을 실행한 후에 위와 같이 로그인 - 게임 세션 접속이 이루어지는 것을 확인할 수 있다

728x90
반응형