Unity 게임 서버 프로젝트와 Amazon GameLift Servers 통합 - Amazon GameLift Servers

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

Unity 게임 서버 프로젝트와 Amazon GameLift Servers 통합

참고

이 주제에서는 이전 버전의 Unity용 Amazon GameLift Servers 플러그인에 대한 정보를 제공합니다. 버전 1.x는 Amazon GameLift Servers 4.x 이하용 서버 SDK를 사용합니다. 서버 SDK 5.x를 사용하고 Amazon GameLift Servers Anywhere 및 관리형 컨테이너 호스팅과 같은 최신 기능을 지원하는 최신 플러그인 버전에 대한 설명서는 Amazon GameLift ServersUnity용 플러그인(서버 SDK 5.x) 섹션을 참조하세요.

이 주제는 Amazon GameLift Servers에서 호스팅하기 위한 사용자 지정 게임 서버를 준비하는 데 도움을 줍니다. 게임 서버가 해당 상태를 Amazon GameLift Servers에 알려, 메시지가 표시될 때 게임 세션을 시작 및 중지하고, 다른 작업을 수행할 수 있어야 합니다. 자세한 정보는 서버 SDK를 사용하여 게임 서버에 Amazon GameLift Servers를 추가합니다.을 참조하십시오.

사전 조건

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

새로운 서버 프로세스 설정

참고

이 주제에서는 서버 SDK 4.x 이하를 사용하는 Unity 버전 1.0.0용 Amazon GameLift Servers 플러그인을 설명합니다.

Amazon GameLift Servers와의 통신을 설정하고 서버 프로세스가 게임 세션을 호스팅할 준비가 되었음을 보고합니다.

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

  2. 서버가 게임 세션을 수락할 수 있도록 준비하려면 연결 포트 및 게임 세션 위치 세부 정보를 포함하여 ProcessReady()를 호출합니다. OnGameSession(), OnGameSessionUpdate(), OnProcessTerminate(), OnHealthCheck()와 같이 Amazon GameLift Servers 서비스가 간접 호출하는 콜백 함수의 이름을 포함합니다. Amazon GameLift Servers가 콜백을 제공하는 데 몇 분 정도 소요될 수 있습니다.

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

  4. Amazon GameLift Servers는 onHealthCheck를 주기적으로를 호출합니다.

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

//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 Servers 플러그인을 설명합니다.

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

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

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

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

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 Servers 플러그인을 설명합니다.

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

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

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

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

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

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

참고

이 주제에서는 서버 SDK 4.x 이하를 사용하는 Unity 버전 1.0.0용 Amazon GameLift Servers 플러그인을 설명합니다.

게임 서버를 Amazon GameLift Servers와 통합한 후 Amazon GameLift Servers가 게임 호스팅에 배포할 수 있도록 빌드 파일을 플릿에 업로드합니다. 서버를 Amazon GameLift Servers에 업로드하는 방법에 대한 자세한 내용은 Amazon GameLift Servers의 게임 서버 빌드 생성 섹션을 참조하세요.