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

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

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

注記

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

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

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

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

注記

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

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

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

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

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

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

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

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

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

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

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

    GameLiftServiceSdkEndpoint 戻り値を書き留めます。この値は、ゲームサーバーを更新して Anywhereフリートで実行するときに必要になります。

ゲームサーバーの更新とインストール

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

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

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

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

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

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

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

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

    • webSocketUrl – このパラメータを、register-compute呼び出しに応答して返されたGameLiftServiceSdkEndpoint値に設定します。

    • hostId – このパラメータを、register-compute呼び出しで指定したコンピューティング名に設定します。

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

    • authToken - このパラメータを、get-compute-auth-token呼び出しに応答して返されるトークンに設定します。

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

    ベストプラクティスとして、webSocketUrl、、hostIdfleetIdをローカルコンピューティングの環境変数authTokenとして設定します。コンピューティングで実行されるすべてのサーバープロセスは、これらの値を使用します。

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

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

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

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

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

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

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

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

同じAnywhereフリートとコンピューティングを使用して、ゲームサーバービルドの他のバージョンをテストできます。

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

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

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

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

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

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

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

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

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

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

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

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