Amazon GameLift ServersAnywhere でローカルテストを設定する - Amazon GameLift Servers

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

Amazon GameLift ServersAnywhere でローカルテストを設定する

注記

このトピックでは、サーバー SDK for Amazon GameLift Serversバージョン 5.x と統合されているゲームのローカルテストについて説明します。ゲームでサーバー SDK バージョン 4.x 以前を使用している場合は、「Amazon GameLift Servers Local を使用して統合をテストする」を参照してください。

Amazon GameLift ServersAnywhere フリートと独自のハードウェアを使用して、シミュレートされたホスト環境でゲームコンポーネントを繰り返し構築およびテストします。Anywhere フリートをセットアップし、ローカルデバイスを登録してAmazon GameLift Serversサービスへの接続を確立します。ゲームサーバービルドをデバイスにインストールし、ゲームサーバープロセスを開始し、必要に応じてゲーム機能をテストします。ゲームサーバービルドは、新しいビルドの反復をテストするために、必要な回数だけ更新できます。

Anywhere フリートでは、CLI AWS またはテストスクリプトを使用してテストできます。ゲームクライアントを と統合している場合はAmazon GameLift Servers、同じローカルデバイスまたは別のデバイスでクライアントを実行できます。

Anywhere フリートを使用してローカルでテストすることは、 とのゲームサーバー統合をテストするために特に役立ちますAmazon GameLift Servers。ローカルマシンのすべてのホスティングアクティビティと、イベントとログデータを完全に可視化できます。

注記

Unreal Engine または Unity に Amazon GameLift Serversプラグインを使用していますか? これらのツールには、Anywhere フリートでローカルテストを設定するためのガイド付きワークフローが含まれています。Unity 用プラグイン: Amazon GameLift ServersAnywhere でローカルテストをセットアップする または Unreal 用プラグイン: Amazon GameLift ServersAnywhere でゲームをローカルでホストする のドキュメントに従います。

ローカル Anywhere フリートをセットアップする

ローカルワークステーションの Anywhere フリートを作成するには、次の手順に従います。 AWS CLI または AWS Management Console の を使用する詳細な手順についてはAmazon GameLift Servers、「」を参照してくださいAmazon GameLift ServersAnywhere フリートを作成する

Anywhere フリートを作成するには
  1. ワークステーション用のカスタムロケーションを作成します (AWS CLI またはコンソール)。カスタムロケーションは、Anywhere フリートに含める予定のコンピューティングリソースのラベルにすぎません。カスタムロケーション名は custom- で始まる必要があります。例: custom-my_laptop。「カスタムロケーションを作成する」を参照してください。

  2. Anywhere フリート (AWS CLI またはコンソール) を作成します。この手順では、ローカルワークステーションのカスタムロケーションを使用してフリートリソースを作成します。「Anywhere フリートを作成する」を参照してください。

    新しいフリートの ID または ARN 値をメモします。この値は次のステップで必要になります。

  3. ローカルワークステーションをフリートコンピューティングとして登録します (AWS CLI のみ)。Anywhere フリートには、ゲームサーバーをホストするためのコンピューティングリソースが少なくとも 1 つ必要です。「フリートにコンピューティングを追加する」を参照してください。フリートにコンピューティングを追加するには、次の情報が必要です。

    • コンピューティング名。フリート内の各コンピューティングには、一意の名前が必要です。

    • Anywhere フリート識別子。FleetID または FleetArn のいずれかを使用できます。

    • コンピューティングの接続情報。IpAddress または DnsName のいずれかを指定します。これは、 Amazon GameLift Serversおよびゲームクライアントがゲームサーバーに接続する方法です。

    • Anywhere フリートのカスタムロケーション。

    GameLiftServiceSdkEndpoint の戻り値をメモします。Anywhere フリートで実行するようにゲームサーバーを更新する場合、この値が必要になります。

ゲームサーバーを更新してインストールする

このタスクは、ゲームサーバービルドをAmazon GameLift Serversサーバー SDK 5.x と既に統合していることを前提としています。統合プロセスでは、ゲームサーバーにコードを追加してAmazon GameLift Servers、サービスとやり取りしてゲームセッションを開始および管理できるようにします。

Anywhere フリートの場合、特定のゲームサーバー設定を手動で設定する必要があります。Amazon GameLift Servers マネージドフリートでは、これらの設定は自動的に設定されます。

Anywhere フリート用にゲームサーバーを準備するには
  1. 認証トークンを取得します。ゲームサーバーには、 Amazon GameLift Serversサービスとのすべての通信に認証トークンを含める必要があります。 Amazon GameLift Servers 認証トークンは有効期間が短く、定期的に更新する必要があります。

    ベストプラクティスとして、スクリプトを作成して次のタスクを完了します。

    • CLI AWS アクション を呼び出しますget-compute-auth-token

    • ローカルコンピューティングの環境変数など、ゲームサーバープロセスが取得できるトークンの戻り値を保存します。

    ゲームサーバーと一緒にスクリプトをコンピューティングにインストールします。最初のゲームサーバープロセスを開始する前に、実行するスクリプトを設定します。ゲームサーバープロセスがアクティブな間は、スクリプトを定期的に実行して有効な認証トークンを維持します。コンピューティング上のすべてのゲームサーバープロセスは、同じ認証トークンを使用できます。

  2. Amazon GameLift Servers ゲームサーバーコードを更新します。ゲームサーバーコードをサーバー SDK for と統合するとAmazon GameLift Servers、アクション への呼び出しが追加されましたInitSdk()。ゲームサーバーが Anywhere フリートで実行されている場合、この呼び出しには追加のサーバーパラメータが必要です。詳細については、開発言語に該当する「サーバープロセスを初期化する」および「用のサーバー SDK 5.x Amazon GameLift Servers」を参照してください。サーバーパラメータは次のとおりです。

    • webSocketUrl – このパラメータを、フリートにコンピューティングを登録したときに返される GameLiftServiceSdkEndpoint 値に設定します。

    • hostId – このパラメータを、Anywhere フリートにコンピューティング登録した時に指定されるコンピューティング名に設定します。

    • fleetId – このパラメータを Anywhere フリートの ID に設定します。

    • authToken – このパラメータを、コンピューティングの認証トークンを取得するリクエストに応答して返されるトークンに設定します。

    • processId – このパラメータを設定して、ローカルコンピューティングで実行されているゲームサーバープロセスを特定します。同時ゲームサーバープロセスごとに一意のプロセス ID が必要です。

    各ゲームサーバープロセスが使用するサーバーパラメータ値は、プロセスが実行されている Anywhere フリートコンピューティングに固有である必要があります。コンピューティングに適切な値を取得する方法の詳細については、「フリートにコンピューティングを追加する」を参照してください。ベストプラクティスとして、webSocketUrlhostIdfleetId、および authToken をローカルコンピューティングの環境変数として設定します。コンピューティングで実行されるすべてのサーバープロセスは、これらの値を使用します。

  3. ローカルコンピューティングにゲームサーバービルドをインストールします。ゲームサーバーの実行に必要なすべての依存関係を含めます。

  4. ローカルコンピューティングで実行されている 1 つ以上のゲームサーバープロセスを開始します。ゲームサーバープロセスがサーバー SDK アクション ProcessReady() を呼び出すと、プロセスはゲームセッションをホストする準備が整います。

ゲームセッションアクティビティをテストする

ゲームセッションを使用して、ゲームサーバーの統合をテストします。Amazon GameLift Servers 機能と統合されたゲームクライアントがない場合は、 CLI を使用して AWS ゲームセッションを開始できます。次のシナリオを試行します。

  • ゲームセッションの作成。create-game-session コマンド (または CreateGameSession API オペレーション) を呼び出します。Anywhere フリートの ID とカスタムロケーションを指定します。この呼び出しは、新しいゲームセッションの一意の識別子を返します。

  • ゲームセッションステータスを確認します。 describe-game-sessions コマンド (または DescribeGameSessions API アクション) を呼び出します。ゲームセッション ID を指定します。この呼び出しは、ゲームセッションステータスを含む詳細なゲームセッション情報を返します。アクティブ状態のゲームセッションは、プレイヤーによる接続ができることを示します。フリートのすべてのゲームセッションのリストを取得するには、list-game-sessions コマンド (または ListGameSessions API アクション) を呼び出します。

  • ゲームセッションに接続します。ゲームクライアントにゲームセッションに参加する機能がある場合は、ゲームセッション情報に含まれる接続情報を使用します。

ゲームサーバーでのイテレーション

同じ Anywhere フリートとコンピューティングを使用すると、ゲームサーバーぶり度の別のバージョンをテストできます。

  1. 既存の GameSession をクリーンアップします。ゲームサーバープロセスがクラッシュするか、 を呼び出しない場合ProcessEnding()、ゲームサーバーがヘルスチェックの送信を停止GameSessionすると、 は をAmazon GameLift Serversクリーンアップします。

  2. 新しいゲームサーバービルドを生成します。ゲームサーバーを変更し、改訂されたビルドをパッケージ化します。

  3. ローカルコンピューティングでゲームサーバービルドを更新します。以前の Anywhere フリートは引き続きアクティブであり、ラップトップはフリート内のコンピューティングリソースとして登録されています。

  4. 更新された認証トークンを取得します。get-compute-auth-token CLI コマンドを呼び出し、トークンをローカルコンピューティングに保存します。

  5. ローカルコンピューティングで実行されている 1 つ以上のゲームサーバープロセスを開始します。ゲームサーバープロセスが ProcessReady() を呼び出すと、テストに使用する準備が整います。

ゲームをAmazon GameLift Serversマネージドフリートに移行する

開発テストを完了し、起動の準備が整ったら、マネージドAmazon GameLift Serversフリートに切り替えるのに適したタイミングです。マネージドフリートを使用して、ゲームホスティングリソースをファインチューニングおよびテストします。ゲームセッションの配置ソリューション (キューとマッチメーカー) を実装し、最適なホスティングハードウェア (スポットフリートを含む) と場所を選択し、キャパシティのスケーリング戦略を選択します。また、フリート、キュー、マッチメーカーなど、すべてのゲームホスティングリソースのライフサイクルをより効率的に管理 AWS CloudFormation するために、 の使用を開始することもできます。

ローカルの Anywhere テストフリートから Amazon GameLift Serversマネージドフリートに移行するには、いくつかの小さな変更を行う必要があります。同じキューとマッチメーカーは再利用できます。次のいずれかのタスクを実行します。

  • ゲームサーバーのコード呼び出しを InitSdk() に変更します。サーバーパラメータを削除します。マネージドフリートの場合、 はこの情報Amazon GameLift Serversを自動的に追跡します。

  • Amazon GameLift Serversビルドリソースを作成します。Anywhere テストフリートでは、ゲームサーバーのビルドと依存関係を各フリートコンピューティングに手動でデプロイする必要があります。マネージドフリートでは、ゲームビルドパッケージを作成して にアップロードします。これによりAmazon GameLift Servers、すべてのフリートコンピューティングに自動的にデプロイされます。ゲームビルドファイルのパッケージ化と、Amazon S3 バケット内のファイルを使用したビルドリソース作成の詳細については、「Amazon GameLift Servers ホスティング用のカスタムサーバービルドをデプロイする」を参照してください。はマネージドフリートでこれらのタスクAmazon GameLift Serversを自動的に処理するため、コンピューティングを登録して認証トークンを取得するスクリプトを含めないでください。

  • マネージドフリートを作成します。EC2 マネージドフリートを指定して、コンソールまたは AWS CLI を使用してフリートを作成します。このタイプのフリートには、ビルドリソースとインスタンスタイプの指定など、追加の設定が必要です。フリートコンピューティングごとにゲームサーバーライフサイクルを管理するには、すべてのユーザーがランタイム設定をセットアップする必要があります。マネージドフリートの作成の詳細については、「Amazon GameLift Servers マネージド EC2 フリートを作成する」を参照してください。

  • フリートエイリアスをリダイレクトします (オプション)。Anywhere フリートで使用するエイリアスを設定すると、マネージドフリートに同じエイリアスを再利用できます。エイリアスの作成または更新の詳細については、「Amazon GameLift Serversエイリアスの作成」を参照してください。