Unity 用プラグイン: Amazon でローカルテストをセットアップする GameLift Anywhere - Amazon GameLift

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

Unity 用プラグイン: Amazon でローカルテストをセットアップする GameLift Anywhere

このワークフローでは、Amazon GameLift 機能のクライアントとサーバーのゲームコードを追加し、プラグインを使用してローカルワークステーションをテストゲームサーバーのホストとして指定します。統合タスクが完了したら、プラグインを使用してゲームクライアントとサーバーのコンポーネントを構築します。

Amazon GameLift Anywhere ワークフローを開始するには:
  • Unity エディタのメインメニューで Amazon GameLift を選択し、Host with Anywhere を選択します。このアクションにより、@Anywhere フリートでゲームを設定するためのプラグインページが開きます。このページには、ゲームコンポーネントを統合、構築、起動するための 5 ステップのプロセスが表示されます。

プロファイルを設定する

このワークフローに従うときに使用したいプロファイルを選択します。選択したプロファイルは、ワークフローのすべてのステップに影響します。作成するすべてのリソースは、プロファイルの AWS アカウントに関連付けられ、プロファイルのデフォルト AWS リージョンに配置されます。プロファイルユーザーのアクセス許可によって、 AWS リソースとアクションへのアクセスが決まります。

  1. 使用可能なプロファイルのドロップダウンリストからプロファイルを選択します。まだプロファイルがない場合、または新しいプロファイルを作成する場合は、Amazon GameLift メニューに移動し、 AWS アカウントプロファイルの設定 を選択します。

  2. ブートストラップステータスが「アクティブ」でない場合は、[ブートストラップのプロファイル] を選択し、ステータスが「アクティブ」に変わるまで待ちます。

ゲームを Amazon と統合する GameLift

注記

サンプルゲームをインポートした場合は、このステップをスキップできます。サンプルゲームアセットには、必要なサーバーとクライアントコードが既に用意されています。

ワークフローのこのステップでは、ゲームプロジェクトのクライアントコードとサーバーコードを更新します。

  • * ゲームサーバーは、ゲームセッションの開始、ゲームセッション接続情報の提供、ステータスの報告を求めるプロンプトを受信するには、Amazon GameLift サービスと通信できる必要があります。

  • ゲームクライアントは、ゲームセッションに関する情報の取得、ゲームセッションへの参加または開始、ゲームに参加するための接続情報の取得が可能である必要があります。

サーバーコードの統合

カスタムシーンで独自のゲームプロジェクトを使用している場合は、提供されたサンプルコードを使用して、必要なサーバーコードをゲームプロジェクトに追加します。

  1. ゲームプロジェクトファイルで、 Assets/Scripts/Serverフォルダを開きます。存在しない場合は、作成します。

  2. GitHub リポジトリ aws/ amazon-gamelift-plugin-unityに移動し、パス を開きますSamples~/SampleGame/Assets/Scripts/Server

  3. ファイル GameLiftServer.cs. を見つけ、ゲームプロジェクトのサーバーフォルダにコピーします。サーバー実行可能ファイルを構築するときは、このファイルをビルドターゲットとして使用します。

サンプルコードには、Amazon GameLift C# サーバー SDK (バージョン 5) を使用するこれらの最低限必要な要素が含まれています。

  • Amazon GameLift API クライアントを初期化します。サーバーパラメータを使用したInitSDK()呼び出しは、Amazon GameLift Anywhere フリートに必要です。これらの設定は、プラグインで使用できるように自動的に設定されます。

  • 、、OnStartGameSessionOnProcessTerminateおよび を含む Amazon GameLift サービスからのリクエストに応答するために必要なコールバック関数を実装しますonHealthCheck

  • サーバープロセスがゲームセッションをホストする準備ができたら、指定されたポートProcessReady()で を呼び出して Amazon GameLift サービスに通知します。

サンプルサーバーコードをカスタマイズする場合は、以下のリソースを参照してください。

クライアントコードの統合

カスタムシーンで独自のゲームプロジェクトを使用している場合は、基本的な機能をゲームクライアントに統合する必要があります。また、プレイヤーがサインインしてゲームセッションに参加できるように、UI 要素を追加する必要があります。Amazon GameLift サービス APIs ( AWS SDK 内) を使用して、ゲームセッション情報の取得、新しいゲームセッションの作成、または既存のゲームセッションへの参加を行います。

Anywhere フリートを使用してローカルテスト用のクライアントを構築する場合、Amazon GameLift サービスに直接呼び出しを追加できます。クラウドホスティング用のゲームを開発する場合、または本番ホスティングに Anywhere フリートを使用する予定の場合は、ゲームクライアントと Amazon サービス間のすべての通信を処理するクライアント側のバックエンド GameLift サービスを作成する必要があります。

Amazon GameLift をクライアントコードに統合するには、以下のリソースをガイドとして使用します。

  • クライアントを repo aws/ の GameLiftCoreApi GitHub クラスと統合しますamazon-gamelift-plugin-unity。このクラスは、プレイヤー認証とゲームセッション情報の取得のコントロールを提供します。

  • GitHub リポジトリ aws/、 で利用可能なサンプルゲーム統合amazon-gamelift-plugin-unityを表示しますSamples~/SampleGame/Assets/Scripts/Client/GameLiftClient.cs

  • 「Amazon GameLift を Unity ゲームクライアントに追加する」の手順に従います。

Anywhere フリートに接続するゲームクライアントの場合、ゲームクライアントには次の情報が必要です。プラグインは、プラグインで作成したリソースを使用するようにゲームプロジェクトを自動的に更新します。

  • FleetId - Anywhere フリートの一意の識別子。

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

  • AwsRegion - Anywhere フリートがホストされている AWS リージョン。これは、ユーザープロファイルで設定したリージョンです。

  • ProfileName - AWS SDK for へのアクセスを許可するローカルマシンの AWS 認証情報プロファイル GameLift。ゲームクライアントは、これらの認証情報を使用して Amazon GameLift サービスへのリクエストを認証します。

注記

認証情報プロファイルはプラグインによって生成され、ローカルマシンに保存されます。そのため、ローカルマシン (または同じプロファイルのマシン) でクライアントを実行する必要があります。

Anywhere フリートに接続する

このステップでは、使用する Anywhere フリートを指定します。Anywhere フリートは、ゲームサーバーをホスティングするための、どこにでも配置できる一連のコンピューティングリソースを定義します。

  • 現在使用している AWS アカウントに既存の Anywhere フリートがある場合は、フリート名ドロップダウンフィールドを開き、フリートを選択します。このドロップダウンには、現在アクティブなユーザープロファイルの AWS リージョン内の Anywhere フリートのみが表示されます。

  • 既存のフリートがない場合、または新しいフリートを作成する場合は、新しい Anywhere フリートを作成してフリート名を指定します。

プロジェクトに Anywhere フリートを選択すると、Amazon はフリートのステータスがアクティブであることを GameLift 検証し、広告にフリート ID が表示されます。このリクエストの進行状況は、Unity エディタの出力ログで追跡できます。

コンピューティングを登録する

このステップでは、ローカルワークステーションを新しい Anywhere フリートのコンピューティングリソースとして登録します。

  1. ローカルマシンのコンピューティング名を入力します。フリートに複数のコンピューティングを追加する場合、名前は一意でなければなりません。

  2. コンピューティングの登録 を選択します。このリクエストの進行状況は Unreal エディタの出力ログで追跡できます。

プラグインは、IP アドレスを localhost (127.0.0.1) に設定してローカルワークステーションを登録します。この設定は、ゲームクライアントとサーバーを同じマシンで実行することを前提としています。

このアクションに応答して、Amazon はコンピューティングに接続できる GameLift ことを確認し、新しく登録されたコンピューティングに関する情報を返します。

ゲームを起動する

このステップでは、ゲームコンポーネントを構築し、ゲームをプレイするために起動します。以下のタスクを実行します。

  1. ゲームクライアントを設定します。このステップでは、ゲームプロジェクトのGameLiftClientSettingsアセットを更新するようにプラグインに指示します。プラグインはこのアセットを使用して、ゲームクライアントが Amazon GameLift サービスに接続するために必要な特定の情報を保存します。

    1. サンプルゲームをインポートして初期化しなかった場合は、新しいGameLiftClientSettingsアセットを作成します。Unity エディタのメインメニューで、アセット、作成 GameLift、クライアント設定 を選択します。プロジェクト GameLiftClientSettings で の複数のコピーを作成すると、プラグインはこれを自動的に検出し、プラグインが更新するアセットを通知します。

    2. ゲームを起動 で、クライアントの設定: 任意の場所の設定を適用 を選択します。このアクションは、先ほど設定した Anywhere フリートを使用するようにゲームクライアント設定を更新します。

  2. ゲームクライアントを構築して実行します。

    1. 標準の Unity ビルドプロセスを使用して、クライアント実行可能ファイルを構築します。ファイル、ビルド設定 で、プラットフォームを Windows、Mac、Linux に切り替えます。サンプルゲームをインポートして設定を初期化すると、ビルドリストとビルドターゲットが自動的に更新されます。

    2. 新しく構築されたゲームクライアント実行可能ファイルの 1 つ以上のインスタンスを起動します。

  3. Anywhere フリートでゲームサーバーを起動します。「サーバー: エディタでサーバーを起動する」を選択します。このタスクは、Unity エディタが開いている限り、クライアントが接続できるライブサーバーを起動します。

  4. ゲームセッションを開始または参加します。ゲームクライアントインスタンスで、UI を使用して各クライアントをゲームセッションに参加させます。これを行う方法は、クライアントに機能をどのように追加したかによって異なります。

サンプルゲームクライアントを使用している場合、次の特性があります。

  • プレイヤーログインコンポーネント。Anywhere フリートのゲームサーバーに接続する場合、プレイヤーの検証はありません。任意の値を入力してゲームセッションに参加できます。

  • シンプルな参加ゲーム UI。クライアントがゲームに参加しようとすると、クライアントは利用可能なプレイヤースロットを持つアクティブなゲームセッションを自動的に検索します。利用可能なゲームセッションがない場合、クライアントは新しいゲームセッションをリクエストします。ゲームセッションが利用可能な場合、クライアントは利用可能なゲームセッションへの参加をリクエストします。複数の同時クライアントでゲームをテストする場合、最初のクライアントはゲームセッションを開始し、残りのクライアントは既存のゲームセッションに自動的に参加します。

  • 4 つのプレイヤースロットを持つゲームセッション。最大 4 つのゲームクライアントインスタンスを同時に起動でき、同じゲームセッションに参加します。

サーバー実行可能ファイルからの起動 (オプション)

Anywhere フリートでテストするためのゲームサーバー実行可能ファイルを構築して起動できます。

  1. 標準の Unity ビルドプロセスを使用してサーバー実行可能ファイルを構築します。ファイル、ビルド設定 で、プラットフォームを Dedicated Server に切り替えてビルドします。

  2. Anywhere フリート ID と AWS リージョンget-compute-auth-tokenで AWS CLI コマンドを呼び出して、短期認証トークンを取得します。フリート ID は、フリートの作成時に Anywhere フリートへの接続に表示されます。アクティブなプロファイルを選択すると、 AWS リージョンがプロファイルの設定に表示されます。

    aws gamelift get-compute-auth-token --fleet-id [your anywhere fleet ID] --region [your AWS region]
  3. コマンドラインから新しく構築されたゲームサーバー実行可能ファイルを起動し、有効な認証トークンを渡します。

    my_project.exe --authToken [token]