GameLift Amazon을 유니티 게임 서버 프로젝트와 통합 - 아마존 GameLift

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

GameLift Amazon을 유니티 게임 서버 프로젝트와 통합

참고

이 주제에서는 Unity용 Amazon GameLift 플러그인의 이전 버전에 대한 정보를 제공합니다. 버전 1.0.0 (2021년 출시) 은 아마존 GameLift 서버 SDK 4.x 또는 이전 버전을 사용합니다. 서버 SDK 5.x를 사용하고 GameLift Anywhere Amazon을 지원하는 최신 버전의 플러그인에 대한 설명서는 을 참조하십시오. 서버 SDK 5.x용 유니티용 아마존 GameLift 플러그인 가이드

이 항목은 Amazon에서 호스팅할 사용자 지정 게임 서버를 준비하는 데 도움이 GameLift 됩니다. 게임 서버는 GameLift Amazon에 상태를 알리고, 메시지가 표시되면 게임 세션을 시작 및 중지하고, 기타 작업을 수행할 수 있어야 합니다. 자세한 정보는 GameLift Amazon을 게임 서버에 추가 섹션을 참조하세요.

사전 조건

게임 서버를 통합하기 전에 먼저 다음 작업을 완료합니다.

새로운 서버 프로세스 설정

참고

이 주제에서는 서버 SDK 4.x 또는 이전 버전을 사용하는 Unity 버전 1.0.0용 Amazon GameLift 플러그인을 참조합니다.

GameLift Amazon과의 통신을 설정하고 서버 프로세스가 게임 세션을 호스팅할 준비가 되었다고 보고하십시오.

  1. InitSDK()를 호출하여 서버 SDK를 초기화합니다.

  2. 서버가 게임 세션을 수락할 수 있도록 준비하려면 연결 포트 및 게임 세션 위치 세부 정보를 포함하여 ProcessReady()를 호출합니다. Amazon GameLift 서비스가 호출하는 콜백 함수의 이름 (예OnGameSession():,,) 을 포함하십시오. OnGameSessionUpdate() OnProcessTerminate() OnHealthCheck() Amazon에서 콜백을 제공하는 데 몇 분 정도 GameLift 걸릴 수 있습니다.

  3. Amazon은 서버 프로세스 상태를 로 GameLift ACTIVE 업데이트합니다.

  4. Amazon은 onHealthCheck 정기적으로 GameLift 전화를 겁니다.

다음 코드 예제는 Amazon에서 간단한 서버 프로세스를 설정하는 방법을 보여줍니다 GameLift.

//initSDK var initSDKOutcome = GameLiftServerAPI.InitSDK(); //processReady // Set parameters and call ProcessReady var processParams = new ProcessParameters( this.OnGameSession, this.OnProcessTerminate, this.OnHealthCheck, this.OnGameSessionUpdate, port, // Examples of log and error files written by the game server new LogParameters(new List<string>() { "C:\\game\\logs", "C:\\game\\error" }) ); var processReadyOutcome = GameLiftServerAPI.ProcessReady(processParams); // Implement callback functions void OnGameSession(GameSession gameSession) { // game-specific tasks when starting a new game session, such as loading map // When ready to receive players var activateGameSessionOutcome = GameLiftServerAPI.ActivateGameSession(); } void OnProcessTerminate() { // game-specific tasks required to gracefully shut down a game session, // such as notifying players, preserving game state data, and other cleanup var ProcessEndingOutcome = GameLiftServerAPI.ProcessEnding(); } bool OnHealthCheck() { bool isHealthy; // complete health evaluation within 60 seconds and set health return isHealthy; }

게임 세션 시작

참고

이 주제에서는 서버 SDK 4.x 또는 이전 버전을 사용하는 Unity 버전 1.0.0용 Amazon GameLift 플러그인을 참조합니다.

게임 초기화가 완료된 후 게임 세션을 시작할 수 있습니다.

  1. 콜백 함수 onStartGameSession을 구현합니다. Amazon은 이 메서드를 GameLift 호출하여 서버 프로세스에서 새 게임 세션을 시작하고 플레이어 연결을 수신합니다.

  2. 게임 세션을 활성화하려면 ActivateGameSession()을 호출합니다. SDK에 대한 자세한 내용은 Amazon GameLift Server SDK(C#) 참조: 작업 섹션을 참조하세요.

다음 코드 예제는 Amazon에서 게임 세션을 시작하는 방법을 보여줍니다 GameLift.

void OnStartGameSession(GameSession gameSession) { // game-specific tasks when starting a new game session, such as loading map ... // When ready to receive players var activateGameSessionOutcome = GameLiftServerAPI.ActivateGameSession(); }

게임 세션 종료

참고

이 주제에서는 서버 SDK 4.x 또는 이전 버전을 사용하는 Unity 버전 1.0.0용 Amazon GameLift 플러그인을 참조합니다.

게임 세션이 GameLift 종료되면 Amazon에 알리십시오. 호스팅 리소스를 재활용하고 새로 고치려면 게임 세션이 완료된 후 서버 프로세스를 종료하는 것이 가장 좋습니다.

  1. Amazon으로부터 요청을 GameLift 수신하고 onProcessTerminate 호출하도록 이름이 지정된 함수를 설정합니다ProcessEnding().

  2. 프로세스 상태가 TERMINATED로 변경됩니다.

다음 예에서는 게임 세션의 프로세스 종료하는 방법에 대해 설명합니다.

var processEndingOutcome = GameLiftServerAPI.ProcessEnding(); if (processReadyOutcome.Success) Environment.Exit(0); // otherwise, exit with error code Environment.Exit(errorCode);

서버 빌드 생성 및 Amazon에 업로드 GameLift

참고

이 주제에서는 서버 SDK 4.x 또는 이전 버전을 사용하는 Unity 버전 1.0.0용 Amazon GameLift 플러그인을 참조합니다.

게임 서버를 Amazon과 통합한 후 GameLift Amazon에서 게임 호스팅용으로 GameLift 배포할 수 있도록 빌드 파일을 플릿에 업로드하십시오. GameLiftAmazon에 서버를 업로드하는 방법에 대한 자세한 내용은 을 참조하십시오Amazon에 사용자 지정 서버 빌드 업로드 GameLift.