検出と PlayFab パーティーの統合

検出とは、ユーザーが互いを見つけて一緒に再生するためのプロセスです。 PlayFab パーティーでは、検出メカニズムは提供されませんが、ユーザー間の通信を提供する既存のメカニズムと共に使うことができます。

基本的な作成と参加のフロー

PlayFab パーティーネットワークは、1つのクライアントでユーザーによって作成され、アドバタイズされた後、異なるクライアントで他のユーザーによって参加されます。

ネットワークの作成

ゲームセッションで PlayFab パーティーネットワークを使う際の最初の考慮事項は、どのクライアントとユーザーがネットワークを作成PartyManager::CreateNewNetwork()するか () を選択することです。 PlayFab パーティーの視点から見ると、どのユーザーがこれを行うかは関係ありません。すべてのユーザーがネットワークを作成できます。 作成者には、ネットワーク内で特別な権限が与えられていません。 ただし、ネットワークを作成するクライアントは、次のことを行う必要があります。

  • 不変ネットワーク構成の設定PartyNetworkConfiguration()
  • 最初の招待状のPartyInvitationConfiguration決定 ()
  • 他のユーザーへのネットワークのアドバタイズ

最初の招待状には識別子とネットワークへの参加が許可されているユーザーの一覧が含まれています。 ユーザーはtitle_player_account エンティティ idの一覧として指定されます。 または、リストを空にして、ネットワーク記述子と招待識別子を持つすべてのユーザーが参加できるようにすることもできます。

ネットワークのアドバタイズ

既存の PlayFab パーティーネットワークに参加するために、クライアントには2つの情報が必要です。

  • ネットワーク記述子
  • 招待の識別子

PlayFab パーティーネットワークは、ネットワーク記述子 (PartyNetworkDescriptor) によって識別されます。 これは、ネットワークへの接続を確立するために必要な情報をエンコードする、ほとんどの非不明瞭な構造です。 ネットワーク記述子は、ネットワークの作成が完了した後に、作成PartyCreateNewNetworkCompletedStateChangeクライアントPartyNetwork::GetNetworkDescriptor()に提供されます (、)。 開発を簡単にするために、PlayFab パーティーには、web 対応の文字列 (PartyManager::SerializeNetworkDescriptor(), PartyManager::DeserializeNetworkDescriptor()) に対するネットワーク記述子のシリアル化と逆シリアル化のためのメソッドが用意されています。

招待識別子は、招待を一意に識別する文字列です。 これは、明示的に、またはネットワークの作成時に最初の招待状を作成するときに、クライアントによって提供されます。 クライアントが招待の識別子を指定していない場合は、一意に生成されます。

新しいネットワークを他のユーザーにアドバタイズするには、適切な通信メディアを使用して、次の2つの情報を送信します。

ネットワークへの参加

ネットワークへの参加は、2段階のプロセスです。 ネットワークに参加しようとしているクライアントは、最初に逆シリアル化されたネットワークPartyManager::ConnectToNetwork()記述子を指定してネットワークに接続し、招待識別子PartyNetwork::AuthenticateLocalUser()を指定してユーザーを認証する必要があります。

シナリオの例

ソーシャル招待状

最も簡単なシナリオは、1人のユーザーがゲームセッションを作成し、その他の既知のユーザーを共有のソーシャルプラットフォームを使って招待することです。 フローは次のようになります。

  • 残っによって、開かれた招待状を使ってネットワークが作成されます。または、残っがプレイする必要があるすべてのユーザーを含む招待状が作成されます。
  • ネットワークが作成されると、残っはソーシャルプラットフォームの招待メカニズムを使って、ネットワーク記述子と招待識別子を他のユーザーに送信します。
  • 招待されたユーザーはそれぞれ、ネットワーク記述子と招待識別子を使ってネットワークに接続します。

注意

招待状にユーザーを指定すると、ユーザー title_player_accountエンティティ idが使用されます。 これらのエンティティ Id は、PlayFab パーティーの帯域外で入手する必要があります。

ロビー

クライアント間でデータを送信できるようにするロビーがゲームに用意されている場合は、ネットワーク接続情報を交換するための通信媒体として使うことができます。 フローは次のようになります。

  • 複数のユーザーが一緒にゲームをプレイできるように選択されています。
  • いずれかのユーザーが作成者として選択されます。
  • セットの各ユーザーは、 title_player_account エンティティ IDを作成者に送信します。
  • 作成者は、最初の招待状構成でユーザーのエンティティ Id を指定して、ネットワークを作成します。
  • ネットワークの作成が完了すると、作成者は、参加する必要があるユーザーのセットにネットワーク記述子と最初の招待識別子を送信します。
  • 各ユーザーは、ネットワーク記述子と招待識別子を使ってネットワークに接続します。

マッチメイキング

Playfab マッチメイキングなどのマッチメイキングサービスを使って、プレイするユーザーのリストを見つけることができます。 フローは次のようになります。

  • ユーザーがサービスとの照合要求を開始します。 title_player_account検索結果には各ユーザーのエンティティ id が含まれている必要があるため、エンティティ idは要求の一部である必要があります。
  • ユーザーには、ネットワークの一部となる必要がある一連のユーザーが含まれている結果が返されます。
  • 事前に定義されたアルゴリズムを使用して、作成者になるユーザーを選択します。
  • 作成者は、ネットワークを作成し、最初の招待状構成で、一致する他のユーザーのエンティティ Id を指定します。
  • ネットワークの作成が完了すると、creator は帯域外通信メディアを使って、ネットワーク記述子と最初の招待の識別子を他の一致するユーザーに送信します。
  • 一致した各ユーザーは、ネットワーク記述子と招待識別子を使ってネットワークに接続します。

注意

帯域外通信メディアは、作成者から他の一致したユーザーに接続情報を送信するために必要です。