設計概要
MPA を PlayFab Lobby および Match または類似のサービスと統合するには、タイトルまたはタイトル サービスがロビーの状態から関連情報をクエリし、この情報を MPA サービスに移行する必要があります。MPA サービスは、ロビーやセッションの状態情報を対象としたものではありません。アクティビティ
MPA Activity の場合、ソース情報は基礎となるロビー情報である必要があります。タイトルまたはサービスは、以下のベスト プラクティスに従って MPA Activity のコンテンツ フィールドに関連情報を設定する必要があります。-
更新頻度
ロビー データからの状態移行は、
CurrentPlayers情報の更新のような変更を反映するために、適切な頻度で実行する必要があります。更新呼び出しは、きめ細かなレート制限 で概説されている呼び出し制限を超えてはいけません。また、情報を更新するために MPA Activity を削除/再作成しないでください。 -
XBOX User Identity (XUID)
プレイヤーの XUID は、通常、XBOX services 以外のサービスでは未検証の情報であり、クロス ネットワーク サービスの主要な識別子ではありません。PlayFab Lobby は、プレイヤーにクロス ネットワークの PlayFab User Entity ID を使用します。この ID は、API またはサービスの呼び出しによってアクティブ ユーザーの XUID に変換できます。詳細については、PlayFab の チュートリアル: プレイヤー プロファイルの取得 を参照してください。この方法で解決された XUID のみが安全と見なされます。
他のプレイヤーの XUID は、この方法では取得できません。解決策として、XUID を Lobby 内のプレイヤーのカスタム文字列プロパティとして提供できます。これらの文字列は安全と見なされるべきではなく、
PFAccountManagementClientGetPlayFabIDsFromXboxLiveIDsGetResultを使用して XUID に対して期待される PlayFab User Entity ID と実際の PlayFab User Entity ID を比較することにより、常に PlayFab サービスを介して検証する必要があります。不一致は、XUID が正しくないことを示します。 すべてのサービスにおいて、安全でない文字列として提供された XUID は安全ではなく、検証なしでは成りすまし攻撃につながる可能性があります。 -
接続文字列
PlayFab Lobby サービスと統合するには、MPA アクティビティの接続文字列を、
PFLobbyGetConnectionStringを通じて取得できる Lobby 接続文字列に設定する必要があります。他のサービスでは、同等の参加文字列を使用する必要があります。 -
ロビーの参加可能性の反映
アクティビティは、プレイヤーがゲームプレイ体験に参加できるようにすることを目的としており、基礎となるロビー状態の参加可能性と一致させる必要があります。アクティビティが満員 (
CurrentPlayersがMaxPlayersの値に達した場合) になると、アクティビティは自動的に参加不能になります。アクティビティを一時的に参加不能にしたいタイトルも、この動作を使用できます。今後の参加が不可能な場合にのみ、アクティビティを削除する必要があります。アクティビティのプライバシー設定を変更しても、すべての参加を制限するのみで、ブロックはできない点に注意してください。 アクティビティ参加のレイテンシのため、タイトルは満員または参加不能なセッションに対して参加が実行されるフローを常に考慮し、プレイヤーに適切なエラーを提供する必要があります。 - プライバシー変更の反映 Join Restrictions によるアクティビティ プライバシーの状態と変更は、基礎となる PlayFab Lobby に対して定義された Access Policy を反映する必要があります。同様のサービスにも同じことが当てはまり、プライバシー値のマッピングが必要になる場合があります。
招待
MPA Invites の場合、推奨されるソースも基礎となるロビー情報である必要があります。このベスト プラクティスのアプローチは、PlayFab Party のようなネットワーク メッシュへの招待より信頼性が高く、ロビー データを通じて状態情報を即座に提供できます。 PlayFab Lobby サービスと統合するには、MPA 招待の接続文字列を Lobby 接続文字列に設定する必要があります。この文字列は、PFLobbyGetConnectionString を通じて取得できます。さらに、招待に適切なクロス プラットフォーム参加値を設定する必要があります。
