기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
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과의 통신을 설정하고 서버 프로세스가 게임 세션을 호스팅할 준비가 되었다고 보고하십시오.
-
InitSDK()
를 호출하여 서버 SDK를 초기화합니다. -
서버가 게임 세션을 수락할 수 있도록 준비하려면 연결 포트 및 게임 세션 위치 세부 정보를 포함하여
ProcessReady()
를 호출합니다. Amazon GameLift 서비스가 호출하는 콜백 함수의 이름 (예OnGameSession()
:,,) 을 포함하십시오.OnGameSessionUpdate()
OnProcessTerminate()
OnHealthCheck()
Amazon에서 콜백을 제공하는 데 몇 분 정도 GameLift 걸릴 수 있습니다. -
Amazon은 서버 프로세스 상태를 로 GameLift
ACTIVE
업데이트합니다. -
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 플러그인을 참조합니다.
게임 초기화가 완료된 후 게임 세션을 시작할 수 있습니다.
-
콜백 함수
onStartGameSession
을 구현합니다. Amazon은 이 메서드를 GameLift 호출하여 서버 프로세스에서 새 게임 세션을 시작하고 플레이어 연결을 수신합니다. -
게임 세션을 활성화하려면
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에 알리십시오. 호스팅 리소스를 재활용하고 새로 고치려면 게임 세션이 완료된 후 서버 프로세스를 종료하는 것이 가장 좋습니다.
-
Amazon으로부터 요청을 GameLift 수신하고
onProcessTerminate
호출하도록 이름이 지정된 함수를 설정합니다ProcessEnding()
. -
프로세스 상태가
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.