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