Cookie の設定を選択する

当社は、当社のサイトおよびサービスを提供するために必要な必須 Cookie および類似のツールを使用しています。当社は、パフォーマンス Cookie を使用して匿名の統計情報を収集することで、お客様が当社のサイトをどのように利用しているかを把握し、改善に役立てています。必須 Cookie は無効化できませんが、[カスタマイズ] または [拒否] をクリックしてパフォーマンス Cookie を拒否することはできます。

お客様が同意した場合、AWS および承認された第三者は、Cookie を使用して便利なサイト機能を提供したり、お客様の選択を記憶したり、関連する広告を含む関連コンテンツを表示したりします。すべての必須ではない Cookie を受け入れるか拒否するには、[受け入れる] または [拒否] をクリックしてください。より詳細な選択を行うには、[カスタマイズ] をクリックしてください。

ゲームサーバーAmazon GameLift Serversに を追加する

フォーカスモード
ゲームサーバーAmazon GameLift Serversに を追加する - Amazon GameLift Servers

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

このトピックでは、ゲームサーバープロセスが Amazon GameLift Serversサービスと通信できるようにゲームサーバーコードを変更する方法について説明します。Amazon GameLift Servers マネージド EC2 フリート、マネージドコンテナフリート、または Anywhere フリートにデプロイする予定のゲームサーバーの場合は、以下の手順に従います。

ゲームサーバープロセスは Amazon GameLift Serversサービスと通信して、 サービスから指示を受け取り、サーバープロセスのヘルスとゲームセッションのステータスを報告します。ゲームホスティングソリューションコンポーネント (ゲームサーバー、バックエンドサービス、ゲームクライアント、Amazon GameLift Servers) 間のインタラクションの詳細については、「」を参照してくださいゲームクライアント/サーバーと とのやり取り Amazon GameLift Servers

ゲームをホスティングする準備をするには、 用のサーバー SDK Amazon GameLift Servers をゲームサーバープロジェクトに追加します。Unreal Engine または Unity 用の Amazon GameLift Serversプラグインを使用している場合、サーバー SDK は組み込まれており、すぐに使用できます。サーバー SDK には複数の言語が用意されています。サーバー SDK を含むゲームサーバーのツールサポートの詳細については、「」を参照してくださいAmazon GameLift Servers 開発ツールの取得

サーバー SDK API リファレンス

サーバープロセスを初期化する

ゲームサーバープロセスがゲームセッションをホストする準備ができたら、 Amazon GameLift Serversサービスとの通信を確立し、レポートするためのコードを追加します。このコードは、Amazon GameLift Serversコードの前に実行する必要があります。

  1. を呼び出して Amazon GameLift Servers API クライアントを初期化しますInitSdk()。Amazon GameLift Servers マネージド EC2 フリートで実行するゲームサーバーを準備する場合は、パラメータなしでデフォルト InitSDK() (C++) (C#) (Unreal) (Go) を使用します。API クライアントはAmazon GameLift Servers、サービスへの接続を自動的に処理します。

    Amazon GameLift ServersAnywhere フリートで使用するゲームサーバーを準備している場合:

    次の InitSdk()で を呼び出して Amazon GameLift Servers API クライアントを初期化しますServerParameters

    • ゲームサーバーへの接続に使用されるウェブソケットの URL。

    • ゲームサーバーのホストに使用されるプロセスの ID。

    • ゲームサーバープロセスをホスティングするコンピューティングの ID。

    • Amazon GameLift ServersAnywhere コンピューティングを含むフリートの ID。

    • Amazon GameLift Servers オペレーション によって生成された認可トークンGetComputeAuthToken

  2. ゲームサーバープロセスがゲームセッションをホストする準備ができていることをサービスに通知します。次の を使用してProcessReady()、 (C++) (C#) (Unreal) (Go) を呼び出しますProcessParameters。各ゲームサーバープロセスは を 1 回ProcessReady()だけ呼び出す必要があります。

    • サーバープロセスのポート番号。サーバープロセスがゲームセッションを開始すると、 Amazon GameLift Serversサービスへのポートが提供され、ゲームセッション情報を更新します。ゲームはこの情報を取得してゲームクライアントに提供し、これを使用してサーバープロセスに接続してゲームセッションに参加できます。

    • Amazon GameLift Servers 保存するファイルの場所。これには、ゲームセッション中にサーバープロセスが生成するゲームセッションログやその他のファイルが含まれる場合があります。は、これらのファイルをサーバープロセスが実行されているコンピューティングに一時的にAmazon GameLift Servers保存しますが、これらはインスタンスがシャットダウンするまでのみ使用できます。保存済みファイルにアクセスするには、Amazon GameLift Serversコンソールを使用するか、Amazon GameLift ServersAPI オペレーション GetGameSessionLogUrl() を呼び出します。

      Amazon GameLift Servers マネージドコンテナフリートで使用するゲームサーバーを準備している場合:

      コンテナフリートのログパラメータを指定する必要はありません。代わりに、ゲームセッションやその他のログデータを標準出力に送信します。コンテナフリートは、すべてのコンテナ標準出力をログストリームとして自動的にキャプチャします。

    • がゲームサーバープロセスAmazon GameLift Serversにメッセージまたはプロンプトを送信できるようにする次のコールバック関数。は、ゲームサーバーコードにこれらの各関数を実装する必要があります。詳細については、「ProcessParameters (C++) (C#) (Unreal) (Go) 」を参照してください。

      • (オプション) onHealthCheck – この関数を定期的にAmazon GameLift Servers呼び出して、サーバーにヘルスステータスレポートをリクエストします。

      • onStartGameSession – は、クライアントリクエスト CreateGameSession() に応答してこの関数をAmazon GameLift Servers呼び出します。

      • onProcessTerminate – サーバープロセスをAmazon GameLift Servers強制的に停止し、正常にシャットダウンさせます。

      • (オプション) onUpdateGameSession — 更新されたゲームセッションオブジェクトをゲームサーバーにAmazon GameLift Servers配信するか、マッチバックフィルリクエストのステータス更新を提供します。FlexMatch バックフィル機能には、このコールバックが必要です。

    ゲームサーバーを設定して、所有または管理する他の AWS リソースに安全にアクセスできるようにすることもできます。詳細については、「フリートの他の AWS リソースと通信する」を参照してください。

(オプション) サーバープロセスの健全性を報告する

ゲームサーバーにコードを追加してコールバック関数 を実装しますonHealthCheck()。 は、このコールバックメソッドを定期的にAmazon GameLift Servers呼び出してヘルスメトリクスを収集します。このコールバック関数を実装する場合は、以下を実行します:

  • サーバープロセスのヘルスステータスを確認します。例えば、外部の依存関係でエラーが発生した場合にサーバープロセスを異常と報告できます。

  • 状態評価を完了し、60 秒以内にコールバックに応答します。その時間内に がレスポンスを受信Amazon GameLift Serversしない場合、サーバープロセスは自動的に異常であると見なします。

  • ブール値を返します (正常の場合は true、異常の場合は false)。

ヘルスチェックコールバックを実装しない場合、サーバーが応答しない限り、 はサーバープロセスを正常Amazon GameLift Serversと見なします。

このAmazon GameLift Serversサービスでは、サーバープロセスのヘルスを使用して、異常なプロセスを終了し、リソースを消去します。サーバープロセスが引き続き異常と報告されるか、3 回連続してヘルスチェックに応答しない場合、サービスはプロセスをシャットダウンして新しいヘルスチェックを開始する可能性があります。このサービスは、フリートのサーバープロセスのヘルスに関するメトリクスを収集します。

(オプション) TLS 証明書を取得する

TLS 証明書の生成が有効になっているフリートでサーバーが実行されている場合は、TLS 証明書を取得してゲーム クライアントとのセキュリティ保護ありの接続を確立し、クライアントサーバー通信を暗号化できます。証明書のコピーがインスタンスに保存されます。ファイルのロケーションを取得するには、GetComputeCertificate() (C++) (C#) (Unreal) (Go) を呼び出します。

ゲームセッションをスタートする

コールバック関数 を実装するコードを追加しますonStartGameSession。 はこのコールバックをAmazon GameLift Servers呼び出して、サーバープロセスでゲームセッションを開始します。

onStartGameSession関数は[GameSession](ゲームセッション)オブジェクトを入力パラメータとして取得します。このオブジェクトには、最大プレイヤー数などの主なゲームセッション情報が含まれます。また、ゲームデータとプレイヤーデータを含めることもできます。この関数の実装は、以下のタスクを実行する必要があります。

  • GameSessionプロパティに基づいて、新しいゲームセッションを作成するためのアクションを開始します。少なくとも、ゲームサーバーは、サーバープロセスに接続するときにゲームクライアントがリファレンスするゲームセッション ID を関連付ける必要があります。

  • 必要に応じて、ゲームデータとプレイヤーデータを処理します。このデータは、GameSession オブジェクトにあります。

  • 新しいゲームセッションでプレイヤーを受け入れる準備ができたら、Amazon GameLift Serversサービスに通知します。サーバー API オペレーション ActivateGameSession() (C++) (C#) (Unreal) (Go) を呼び出します。呼び出しが成功すると、サービスはゲームセッションのステータスを に変更しますACTIVE

(オプション) 新しいプレイヤーを検証する

プレイヤーセッションのステータスを追跡する場合は、ゲームサーバーに接続するときに新しいプレイヤーを検証するコードを追加します。 は、現在のプレイヤーと利用可能なゲームセッションスロットAmazon GameLift Serversを追跡します。

検証のために、ゲームセッションに参加しようとするゲームクライアントには、プレイヤーセッション ID が含まれている必要があります。 は、ゲームが StartGameSessionPlacement() または StartMatchmaking() を呼び出して新しいゲームセッションを開始すると、この ID Amazon GameLift Serversを生成します。これらのリクエストでは、ゲームセッションのオープンスロットがプレイヤーセッション用に予約されます。

ゲームサーバープロセスがゲームクライアント接続要求を受信すると、プレイヤーセッション ID が付いた状態で AcceptPlayerSession() (C++) (C#) (Unreal) (Go) が呼び出されます。レスポンスとして、 Amazon GameLift Servers はプレイヤーセッション ID がゲームセッションで予約されているオープンスロットに対応していることを確認します。がプレイヤーセッション ID Amazon GameLift Serversを検証すると、サーバープロセスは接続を受け入れます。これで、プレイヤーはゲームセッションに参加できます。Amazon GameLift Servers がプレイヤーセッション ID を検証しない場合、サーバープロセスは接続を拒否します。

(オプション) プレイヤーセッションの終了を報告する

プレイヤーセッションのステータスを追跡する場合は、プレイヤーがゲームセッションを離れたAmazon GameLift Serversときに通知するコードを追加します。このコードは、サーバープロセスが接続の切断を検出するたびに実行する必要があります。 はこの通知Amazon GameLift Serversを使用して、ゲームセッションの現在のプレイヤーと使用可能なスロットを追跡します。

コードで切断された接続を処理するには、対応するプレイヤーセッション ID を使用して、サーバー API オペレーション RemovePlayerSession() (C++) (C#) (Unreal) (Go) への呼び出しを追加します。

ゲームセッションを終了する

ゲームセッションが終了したAmazon GameLift Serversときに通知するコードをサーバープロセスのシャットダウンシーケンスに追加します。ホスティングリソースをリサイクルして更新するには、ゲームセッションの完了後に各サーバープロセスをシャットダウンします。

サーバープロセスシャットダウンコードの開始時に、サーバー API オペレーション ProcessEnding() (C++) (C#) (Unreal) (Go) g を呼び出します。この呼び出しはAmazon GameLift Servers、サーバープロセスがシャットダウンしていることを通知します。 はゲームセッションのステータスとサーバープロセスのステータスを Amazon GameLift Serversに変更しますTERMINATEDProcessEnding() を呼び出した後は、プロセスが安全にシャットダウンされます。

サーバープロセスのシャットダウン通知に応答する

Amazon GameLift Servers サービスからの通知に応じてサーバープロセスをシャットダウンするコードを追加します。この通知は、サーバープロセスが異常を一貫して報告する場合、またはサーバープロセスが実行されているインスタンスが終了している場合に送信されます。 は、容量のスケールダウンイベントの一部として、またはスポットインスタンスの中断に応じてインスタンスを停止Amazon GameLift Serversできます。スポットインスタンスの中断は 2 分前に通知されます。これにより、サーバープロセスがプレイヤーを適切に切断し、ゲーム状態データを保存し、その他のクリーンアップタスクを実行する時間が提供されます。

シャットダウン通知を処理するには、ゲームサーバーコードに次の変更を加えます。

  • コールバック関数 onProcessTerminate() (C++) (C#) (Unreal) (Go) を実装します。この関数は、サーバープロセスをシャットダウンするコードを呼び出す必要があります。

  • ゲームサーバーシャットダウンコードからサーバー API オペレーション GetTerminationTime() (C++) (C#) (Unreal) (Go) を呼び出します。Amazon GameLift Servers がサーバープロセスを停止するための呼び出しを発行した場合、 は推定終了時間GetTerminationTime()を返します。

  • ゲームサーバーシャットダウンコードの開始時に、サーバー API オペレーション ProcessEnding() (C++) (C#) (Unreal) (Go) を呼び出します。この呼び出しは、サーバープロセスがシャットダウンしていることを Amazon GameLift Servers サービスに通知します。その後、サービスはサーバープロセスのステータスを に変更しますTERMINATEDProcessEnding() を呼び出した後は、プロセスが安全にシャットダウンされます。

プライバシーサイト規約Cookie の設定
© 2025, Amazon Web Services, Inc. or its affiliates.All rights reserved.