翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon GameLift Servers と Unity ゲームサーバープロジェクトを統合する
注記
このトピックでは、Unity 用 Amazon GameLift Servers プラグインの前のバージョンについて説明します。バージョン 1.x では、サーバー SDK for Amazon GameLift Servers 4.x 以前が使用されます。サーバー SDK 5.x を使用し、Amazon GameLift Servers Anywhere やマネージドコンテナホスティングなどの新しい機能をサポートする最新のプラグインバージョンのドキュメントについては、「Unity 用 Amazon GameLift Servers プラグイン (サーバー 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 の詳細については、「C# サーバー SDK for Amazon GameLift Servers 4.x -- アクション」を参照してください。
以下のコード例では、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 に通知します。ベストプラクティスとして、ゲームセッションがホスティングリソースのリサイクルと更新を完了した後に、サーバープロセスをシャットダウンします。
-
onProcessTerminateという名前の関数をセットアップし、Amazon GameLift Servers からのリクエストを受信して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 のゲームサーバービルドを作成する」を参照してください。