翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
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 フリートを作成するには
ローカルワークステーションのカスタムロケーションを作成します。(AWS CLI またはコンソール)。カスタムロケーションは、Anywhereフリートに含める予定のコンピューティングリソースのラベルにすぎません。カスタムロケーション名は で始まる必要があります
custom-
。例:custom-my_laptop
。カスタムロケーションを作成する を参照してください。Anywhereフリート (AWS CLI またはコンソール) を作成します。このステップでは、ローカルワークステーションのカスタムロケーションを使用してフリートリソースを作成します。フリートを作成する を参照してください。
新しいフリートの ID または ARN 値を書き留めます。この値は次のステップで必要になります。
ローカルワークステーションをフリートコンピューティングとして登録します (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 フリート用にゲームサーバーを準備するには
認証トークンを取得します。ゲームサーバーには、Amazon GameLift サービスとのすべての通信に認証トークンが含まれている必要があります。Amazon GameLift 認証トークンは有効期間が短く、定期的に更新する必要があります。
ベストプラクティスとして、次のタスクを完了するためのスクリプトを作成します。
AWS CLI アクション を呼び出します
get-compute-auth-token
。ゲームサーバープロセスがローカルコンピューティングの環境変数など、返されたトークン値を取得できる場所に保存します。
スクリプトをゲームサーバーと共にコンピューティングにインストールします。最初のゲームサーバープロセスを開始する前に実行するスクリプトを設定します。ゲームサーバープロセスがアクティブな間は、スクリプトを定期的に実行して有効な認証トークンを維持します。コンピューティング上のすべてのゲームサーバープロセスは、同じ認証トークンを使用できます。
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
、、hostId
、fleetId
をローカルコンピューティングの環境変数authToken
として設定します。コンピューティングで実行されるすべてのサーバープロセスは、これらの値を使用します。-
ローカルコンピューティングにゲームサーバービルドをインストールします。ゲームサーバーの実行に必要なすべての依存関係を含めます。
ローカルコンピューティングで実行されている 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フリートとコンピューティングを使用して、ゲームサーバービルドの他のバージョンをテストできます。
-
既存の をクリーンアップします
GameSession
。ゲームサーバープロセスがクラッシュするか、 を呼び出さない場合ProcessEnding()
、Amazon はゲームサーバーがヘルスチェックの送信を停止GameSession
した後、 を GameLift クリーンアップします。 -
新しいゲームサーバービルドを生成します。ゲームサーバーに変更を加え、改訂されたビルドをパッケージ化します。
-
ローカルコンピューティングでゲームサーバービルドを更新します。以前の Anywhere フリートはまだアクティブで、ラップトップはフリート内のコンピューティングリソースとして登録されたままです。
-
更新された認証トークンを取得します。get-compute-auth-token
CLI コマンドを呼び出し、トークンをローカルコンピューティングに保存します。 -
ローカルコンピューティングで実行されている 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 フリートにエイリアスを追加する「」を参照してください。