次の方法で共有


ゲーム サーバーの割り当てと Visual Studio デバッグ ツールの接続

マルチプレイヤー セッションの割り当て

PlayFab マルチプレイヤー サーバー2.0 では、RequestMultiplayerServer API を使用して、マルチプレイヤー サーバー アプリケーションのインスタンスを割り当てることができます。

通常、この API は、特定のタイトル用に構成された PlayFab 開発者秘密鍵を使用して、独自のサービス (マッチメイキング サービスまたはロビー サービスなど) から呼び出されます。 秘密鍵については、「秘密鍵の管理」を参照してください。

プレイヤーの統合と、サーバーの割り当ての一般的なパターン:

  1. クライアントはネットワーク QoS の情報を収集します。
  2. クライアントは、カスタム マッチメイキング サービスと対話するか、ソーシャルへの招待によってアセンブルします。
  3. カスタムのマッチメイキング サービスは、地域の優先順位の一覧を使用して、グループにセッションを割り当てます。

RequestMultiplayerServer には重要なパラメーターがいくつかあります。

  • BuildID - 特定のサーバー ビルドが割り当てられます。
  • SessionID:- セッション向けの識別子。 これは、呼び出し元によって生成された GUID 文字列です。 同じ論理セッションに対して、この API を再試行する場合は、同じ識別子を再利用する必要があります。 これにより、呼び出し側の再試行によって不要なサーバーが作成される可能性が軽減されます。
  • SessionCookie - 起動時にゲーム サーバー SDKを介して割り当てられたセッションに伝達される任意のデータ。 このフィールドの一般的な使用方法は、ゲーム サーバーがクライアントを認証するために使用する共有キーの通信です。 データは 4 キロバイト未満である必要があります
  • PreferredRegions - サーバーを割り当てるために使用する領域のランキングのリスト。 領域をランク付けする主な要因として、クライアント デバイスから収集したネットワーク QoS 測定値を使用することをお勧めします。

割り当てが成功すると、次の情報が返されます。

注意

MpsAllocatorSample (ここを参照) を使用すると、ゲームの開発中にゲーム サーバーを簡単に割り当てることができます

クライアントの割り当て

マルチプレイヤー サーバーは、高価で強力です。 既定では、PlayFab デベロッパーの秘密鍵を使用して、独自の信頼されたサービスからのみマルチプレイヤー サーバーをリクエストできます。

ただし、プレイヤー デバイスから直接サーバーを割り当てることができるため、サービス間の呼び出しを実装するためのコストを節約することができ、状況によっては便利です。

クライアントの割り当てを有効にする場合:

  • 左側のメニューの [設定] を選択します。
  • [API 機能] タブを選択します。
  • その後、[クライアントがゲームを始めるのを許可する]オプションを有効にします。

[ゲーム マネージャー] - [API 機能] - [クライアントがゲームを始めるのを許可する]

この設定を有効にすると、タイトルに関連付けられているすべてのプレイヤーのエンティティ トークンを使用して、RequestMultiplayerServerを呼び出すことができます。

展開済みのマルチプレイヤー サーバーのデバッグ

Azure に展開中に、ゲーム サーバーをリモートでデバッグすることをお勧めします。 Visual Studio では、現時点ではコンテナーに Visual Studio リモート デバッグ ツールをインストールして設定する必要があります。

注意

以下の手順は、非セキュアで認証されていないデバッグを可能にします。

次の手順は開発とテスト用のサーバー ビルドにのみ適用します。プレイヤー向けの環境では、次の手順は、一般的には回避します。

  1. VS2017 リモート デバッグ ツールを取得する:
Invoke-WebRequest -OutFile rtools_setup_x64.exe -Uri
https://aka.ms/vs/15/release/RemoteTools.amd64ret.enu.exe
  1. ゲーム サーバー、アセット パッケージに、これらのツールを含めます。
  2. Game Manager または Entity API を使用してサーバー ビルドを作成する一環として、デバッグ ポートとしてポート 4022 TCP を設定します。
  3. リモート デバッグを有効にするには、コンテナー内で、msvsmonを実行する必要があります。 一般的なパターンとして、CMD スクリプトを Game Start コマンドとして指定し、コマンド ライン引数を使用して、msvsmonと、ゲーム サーバーの実行可能ファイルを起動します。
  4. msvsmonを 1 回実行します。
/prepcomputer /quiet
  1. フラグを使用して、msvsmonを実行します (以下に示します)。
/nostatus /noauth /nosecuritywarn /anyuser /nofirewallwarn /nodiscovery /port 4022

注意

開いていないランダムなポートにバインドするのではなく、ポートが既に使用中の場合は、プログラムがプロセスの終了コードを処理できるように、ポートを具体的にリスト化し、プログラムがプロセスの終了コードを処理できるようにすることを推奨します。

  1. ゲーム サーバーを割り当てます。
  2. 割り当て呼び出しから返された外部デバッグ ポートを使用して、VS を介したデバッグを試行します。