構文
メンバー
maxUserCount uint32_t
ネットワーク内で許可されるユニーク ユーザーの最大数。
この値は 0 より大きい必要があります。クライアントが PartyNetwork::AuthenticateLocalUser() の呼び出しによってこの制限に違反する場合、操作は非同期的に失敗し、PartyAuthenticateLocalUserCompletedStateChange::result は PartyStateChangeResult::NetworkLimitReached に設定されます。
maxDeviceCount uint32_t
ネットワークに接続を許可されるデバイスの最大数。
PlayFab Party ネットワークは、2 ~ 128 デバイスをサポートするようにスケーリングできます。サービスは、シナリオに合わせて最適化されたネットワーク リレー構成を選択するため、PartyNetworkConfiguration の maxDeviceCount をネットワーク内で予想される最大デバイス数と一致するように構成することが重要です。クライアントが PartyManager::ConnectToNetwork() の呼び出しによってこの制限に違反する場合、操作は非同期的に失敗し、PartyConnectToNetworkCompletedStateChange::result は PartyStateChangeResult::NetworkLimitReached に設定されます。
maxUsersPerDeviceCount uint32_t
デバイスごとに許可されるユーザーの最大数。
この値は 1 以上 c_maxLocalUsersPerDeviceCount 以下である必要があります。クライアントが PartyNetwork::AuthenticateLocalUser() の呼び出しによってこの制限に違反する場合、操作は非同期的に失敗し、PartyAuthenticateLocalUserCompletedStateChange::result は PartyStateChangeResult::NetworkLimitReached に設定されます。
maxDevicesPerUserCount uint32_t
ユーザーごとに許可されるデバイスの最大数。
この値は 0 より大きい必要があります。クライアントが PartyNetwork::AuthenticateLocalUser() の呼び出しによってこの制限に違反する場合、操作は非同期的に失敗し、PartyAuthenticateLocalUserCompletedStateChange::result は PartyStateChangeResult::NetworkLimitReached に設定されます。
maxEndpointsPerDeviceCount uint32_t
デバイスごとに許可されるエンドポイントの最大数。
この値は 0 以上 c_maxNetworkConfigurationMaxEndpointsPerDeviceCount 以下である必要があります。ネットワーク構成が利用可能になった後、クライアントが PartyNetwork::CreateEndpoint() の呼び出しによってこの制限に違反する場合、PartyNetwork::CreateEndpoint() の呼び出しは同期的に失敗します。ネットワーク構成が利用可能になった時点でクライアントが既に違反する数のエンドポイント作成をキューイングしていた場合、クライアントはネットワークから追放され、PartyNetworkDestroyedStateChange が生成されます。
directPeerConnectivityOptions PartyDirectPeerConnectivityOptions
ネットワーク内のデバイス間の直接ピアツーピア接続試行をサポートするかどうか、およびその方法。
初期ユーザーがネットワークに正常に認証される過程の一部として、これらのフラグで許可されていれば、デバイスは既にネットワークに参加している他のデバイスと直接ピアツーピア接続を確立しようとする場合があります。試行が成功した場合、デバイス間のエンドポイント メッセージやチャット データは、そうした直接接続を使用して送信されます。デバイス間の環境の非互換性により試行が失敗した場合、それらのデバイス間のすべての通信は、代わりに透過型クラウド リレー サーバー経由で送信されます。デバイスがこれらのフラグによって直接ピア接続の試行を許可されていない場合、IP アドレス情報は決して交換されず、エンドポイント メッセージやチャット データは常に透過型クラウド リレー サーバー経由で送信されます。ローカル デバイスが特定のリモート デバイスに実際に直接ピアツーピア接続を確立したかどうかは、PartyNetwork::GetDeviceConnectionType() を呼び出すことで判別できます。
直接ピア接続が成功すると、一部のデバイス間のレイテンシが低下する場合がありますが、それを確立しようとするには、ユーザーが自分のデバイスの IP アドレスを他のユーザーに開示する必要があります。これはプライバシー上の懸念になったり、悪意のあるユーザーがタイトル外でピアのデバイスやインターネット接続を攻撃する可能性があります。また、ポリシー上の理由から、特定のプラットフォームでは許可されていない場合もあります。パフォーマンスとセキュリティの目標に合わせて適切なフラグを使用してください。
ここで構成される特定のネットワークの値に加えて、PartyManager::SetOption() を使用して PartyOption::LocalDeviceDirectPeerConnectivityOptionsMask を設定することで、デバイスが認証するすべてのネットワークに対してフラグをさらに制約することもできます。すべてのフラグはビット単位の AND 演算を使用して評価されます。つまり、特定のフラグが特定のネットワークのデバイス ペアに対して実際に有効となるのは、3 か所すべてで有効な場合のみです: ネットワークのこのフィールドと、両方の デバイスのそれぞれのローカル マスク オプションです。このフィールドが該当の形式の直接ピア接続を許可している場合でも、いずれかのデバイスは、ローカル デバイス マスク オプションでフラグを有効にしないことによって、両者間の IP アドレス開示と直接接続試行から一方的にオプトアウトできます。PartyOption::LocalDeviceDirectPeerConnectivityOptionsMask の値の既定は、ネットワークで有効化されるすべての直接ピア接続を許可することです。したがって、それに関する一部またはすべての直接ピア接続を防ぐデバイス固有の要件がある場合にのみ、これを構成する必要があります。
過剰なリソース消費を防ぐため、Party ライブラリは、これらのフラグで許可されている場合でも、特定のデバイスが現在参加しているすべてのネットワークにわたって構成された最大数を超える直接ピア接続を確立しようとすることを、内部的に防ぎます。これは、デバイスが追加のリモート デバイスを含む大規模なネットワークまたは複数のネットワークに参加する能力に影響しません。追加のデバイスとの通信は、単に透過型クラウド リレー サーバー経由で送信されます。この最大直接ピア接続数を変更するには、PartyManager::SetOption() を使用して PartyOption::LocalDeviceMaxDirectPeerConnections を設定してください。
特定のデバイス ペアに対して直接ピアツーピア接続の可用性を積極的に強制することはお勧めしません (つまり、PartyNetwork::GetDeviceConnectionType() が PartyDeviceConnectionType::DirectPeerConnection 以外の値を報告する場合に PartyNetwork::LeaveNetwork() を呼び出さないでください)。使用中の特定の基盤となる送信方法は、通信の全体的な論理的能力を変えないためです。ゲーム デザインが、直接ピア接続を推奨する厳格な最大メッセージ レイテンシ要件を持つ場合、送信メカニズムに基づいて抽象的な仮定を立てるよりも、PartyEndpointStatistic::AverageDeviceRoundTripLatencyInMilliseconds 統計によって報告される、現在のそのレイテンシに関する具体的な観測に基づいて行動する方が良いでしょう。そうでない場合、環境要因が制御外にあるために近隣の透過型クラウド リレー サーバーを常に使用する必要のある、同じ友達グループでプレイしようとするユーザーの妨げになる可能性があります。
要件
ヘッダー: Party.h関連項目
Party メンバーPartyNetwork::AuthenticateLocalUser
PartyAuthenticateLocalUserCompletedStateChange
PartyManager::ConnectToNetwork
PartyConnectToNetworkCompletedStateChange
PartyNetwork::CreateEndpoint
PartyNetworkDestroyedStateChange
PartyStateChangeResult
PartyDirectPeerConnectivityOptions
