翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon GameLift Servers Anywhereでローカルテストを設定する
注記
このトピックでは、サーバー SDK for Amazon GameLift Servers バージョン 5.x 用サーバー SDK と統合されたゲームのローカルテストについて説明します。ゲームでサーバー SDK バージョン 4.x 以前を使用している場合は、「Amazon GameLift Servers Local を使用して統合をテストする」を参照してください。
Amazon GameLift Servers Anywhere フリートと独自のハードウェアを使用して、シミュレートされたホスト環境でゲームコンポーネントを繰り返し構築およびテストします。フリートを設定し、ローカルデバイスを登録して、Amazon GameLift Servers サービスへの接続を確立します。ゲームサーバービルドをデバイスにインストールし、ゲームサーバープロセスを開始し、必要に応じてゲーム機能をテストします。ゲームサーバービルドは、新しいビルドのイテレーションをテストするために、必要な回数だけ更新できます。
Anywhere フリートでは、CLI AWS またはテストスクリプトを使用してテストできます。ゲームクライアントを Amazon GameLift Servers と統合した場合は、同じローカルデバイスまたは別のデバイスでクライアントを実行できます。
フリートによるローカルテストは、Amazon GameLift Servers とのゲームサーバー統合をテストするために特に役立ちます。ローカルマシンのすべてのホスティングアクティビティと、イベントとログデータを完全に可視化できます。
注記
Unreal Engine または Unity にAmazon GameLift Servers プラグインを使用していますか? これらのツールには、Anywhere フリートでローカルテストを設定するためのガイド付きワークフローが含まれています。Unity 用プラグイン: Amazon GameLift Servers Anywhere を使用してローカルテストを設定する または Unreal 用プラグイン: Amazon GameLift Servers Anywhere でゲームをローカルでホストする のドキュメントに従います。
トピック
ローカルの Anywhere フリートを設定する
ローカルワークステーションの Anywhere フリートを作成するには、次の手順を実行します。 AWS CLI または AWS マネジメントコンソール の を使用する詳細な手順についてはAmazon GameLift Servers、「」を参照してくださいAmazon GameLift Servers Anywhere フリートを作成する。
Anywhere フリートを作成するには
ワークステーション用のカスタムロケーションを作成します。(AWS CLI またはコンソール)。カスタムロケーションは、Anywhere フリートに含める予定のコンピューティングリソースのラベルにすぎません。カスタムロケーション名は
custom-で始まる必要があります。例:custom-my_laptop。「カスタムロケーションを作成する」を参照してください。Anywhere フリート (AWS CLI またはコンソール) を作成します。この手順では、ローカルワークステーションのカスタムロケーションを使用してフリートリソースを作成します。「Anywhere フリートを作成する」を参照してください。
新しいフリートの ID または ARN 値をメモします。この値は次のステップで必要になります。
ローカルワークステーションをフリートコンピューティングとして登録します (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 フリート用にゲームサーバーを準備する
認証トークンを取得します。ゲームサーバーには、 Amazon GameLift Serversサービスとのすべての通信に認証トークンを含める必要があります。Amazon GameLift Servers認証トークンは有効期間が短く、定期的に更新する必要があります。
ベストプラクティスとして、スクリプトを作成して次のタスクを完了します。
CLI AWS アクション を呼び出します
get-compute-auth-token。ローカルコンピューティングの環境変数など、ゲームサーバープロセスが取得できるトークンの戻り値を保存します。
ゲームサーバーと一緒にスクリプトをコンピューティングにインストールします。最初のゲームサーバープロセスを開始する前に、実行するスクリプトを設定します。ゲームサーバープロセスがアクティブな間は、スクリプトを定期的に実行して有効な認証トークンを維持します。コンピューティング上のすべてのゲームサーバープロセスは、同じ認証トークンを使用できます。
Amazon GameLift Servers ゲームサーバーコードを更新します。ゲームサーバーコードをサーバー SDK for Amazon GameLift Servers と統合すると、アクション
InitSdk()への呼び出しが追加されます。ゲームサーバーを Anywhere フリートで実行する場合、この呼び出しには、追加のサーバーパラメータが必要です。詳細については、開発言語に該当する「サーバープロセスを初期化する」および「サーバー SDK 5.x for Amazon GameLift Servers」を参照してください。サーバーパラメータは次のとおりです。-
webSocketUrl– このパラメータを、フリートにコンピューティングを登録したときに返されるGameLiftServiceSdkEndpoint値に設定します。 -
hostId– このパラメータを、Anywhere フリートにコンピューティング登録した時に指定されるコンピューティング名に設定します。 -
fleetId– このパラメータを Anywhere フリートの ID に設定します。 -
authToken– このパラメータを、コンピューティングの認証トークンを取得するリクエストに応答して返されるトークンに設定します。 -
processId– このパラメータを設定して、ローカルコンピューティングで実行されているゲームサーバープロセスを特定します。同時ゲームサーバープロセスごとに一意のプロセス ID が必要です。
各ゲームサーバープロセスが使用するサーバーパラメータ値は、プロセスが実行されている Anywhere フリートコンピューティングに固有である必要があります。コンピューティングに適切な値を取得する方法の詳細については、「フリートにコンピューティングを追加する」を参照してください。ベストプラクティスとして、
webSocketUrl、hostId、fleetId、およびauthTokenをローカルコンピューティングの環境変数として設定します。コンピューティングで実行されるすべてのサーバープロセスは、これらの値を使用します。-
ローカルコンピューティングにゲームサーバービルドをインストールします。ゲームサーバーの実行に必要なすべての依存関係を含めます。
ローカルコンピューティングで実行されている 1 つ以上のゲームサーバープロセスを開始します。ゲームサーバープロセスがサーバー SDK アクション
ProcessReady()を呼び出すと、プロセスはゲームセッションをホストする準備が整います。
ゲームセッションアクティビティをテストする
ゲームセッションを使用して、ゲームサーバーの統合をテストします。Amazon GameLift Servers機能と統合されたゲームクライアントがない場合は、 AWS CLI を使用するとゲームセッションを開始できます。次のシナリオを試行します。
ゲームセッションの作成。create-game-session
コマンド (または CreateGameSession API オペレーション) を呼び出します。 Anywhereフリートの ID とカスタムロケーションを指定します。この呼び出しは、新しいゲームセッションの一意の識別子を返します。 ゲームセッションステータスを確認します。 describe-game-sessions
コマンド (または DescribeGameSessions API アクション) を呼び出します。ゲームセッション ID を指定します。この呼び出しは、ゲームセッションステータスを含む詳細なゲームセッション情報を返します。アクティブ状態のゲームセッションは、プレイヤーによる接続ができることを示します。フリートのすべてのゲームセッションのリストを取得するには、list-game-sessions コマンド (または ListGameSessions API アクション) を呼び出します。 -
ゲームセッションに接続します。ゲームクライアントにゲームセッションに参加する機能がある場合は、ゲームセッション情報に含まれる接続情報を使用します。
ゲームサーバーでのイテレーション
同じ Anywhere フリートとコンピューティングを使用すると、ゲームサーバーぶり度の別のバージョンをテストできます。
-
既存の
GameSessionをクリーンアップします。ゲームサーバープロセスがクラッシュした場合または、ProcessEnding()を呼び出さない場合は、ゲームサーバーがヘルスチェックの送信を停止した後に、Amazon GameLift Servers がGameSessionをクリーンアップします。 -
新しいゲームサーバービルドを生成します。ゲームサーバーを変更し、改訂されたビルドをパッケージ化します。
-
ローカルコンピューティングでゲームサーバービルドを更新します。以前の Anywhere フリートはまだアクティブで、ラップトップはフリート内のコンピューティングリソースとして登録されたままです。
-
更新された認証トークンを取得します。get-compute-auth-token
CLI コマンドを呼び出し、トークンをローカルコンピューティングに保存します。 -
ローカルコンピューティングで実行されている 1 つ以上のゲームサーバープロセスを開始します。ゲームサーバープロセスが
ProcessReady()を呼び出すと、テストに使用する準備が整います。
ゲームを Amazon GameLift Servers マネージドフリートに移行する
開発テストを完了し、起動の準備が整ったら、Amazon GameLift Servers マネージドフリートに切り替える良いタイミングとなります。マネージドフリートを使用して、ゲームホスティングリソースをファインチューニングおよびテストします。ゲームセッションの配置ソリューション (キューとマッチメーカー) を実装し、最適なホスティングハードウェア (スポットフリートを含む) と場所を選択し、容量のスケーリング戦略を選択します。また、フリート、キュー、マッチメーカーなど、すべてのゲームホスティングリソースのライフサイクルをより効率的に管理 AWS CloudFormation するために、 の使用を開始することもできます。
ローカルテストフリートから 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 エイリアスの作成」を参照してください。