PartyRegionQualityMeasurementConfiguration

リージョンの品質測定動作を制御するためにパーティー ライブラリによって使用される構成。

構文

struct PartyRegionQualityMeasurementConfiguration {  
    uint32_t totalMeasurementTimeoutInMilliseconds;  
    uint16_t highLatencyHintInMilliseconds;  
    uint16_t minRequiredSuccessfulResponses;  
    uint16_t idealNumberOfSuccessfulResponses;  
    uint16_t maxRetriesWithNoResponse;  
    uint16_t maxTimeoutsAfterResponse;  
}  

メンバー

totalMeasurementTimeoutInMilliseconds uint32_t

ホスト名を解決し、ローカル デバイスと PlayFab サービス品質ビーコン サーバー間のネットワーク状態を測定するための最大ミリ秒数。

この値は、パーティー ライブラリが利用可能なすべてのリージョンの PlayFab サービス品質ビーコン サーバーのホスト名を解決し、それらに対する接続品質を測定するために軽量メッセージを送信するために許容される最大時間 (ミリ秒) を制御します。 環境の問題が原因で一部のリージョンで名前解決が遅くなったり、待機時間が長くなったりパケットが失われたりする場合は、このタイムアウト内に少なくとも 1 回は正常に接続されたリージョンのみが PartyRegionsChangedStateChange の結果で報告されます。

この値には、パーティー ライブラリが PlayFab サービスから使用可能なリージョンのリストを取得するまでにかかる時間は含まれません。また、影響を与えることはありません。

アプリケーションでは、通常、技術的な前提に基づいて何らかの数値を導き出そうとするのではなく、ユーザー エクスペリエンスの目標や最悪のケースの観点からこのタイムアウトを定義する必要があります。 特定のリージョンまたはすべてのリージョンを測定するために必要な正確な時間は、使用可能なリージョンの数、現在のネットワーク環境の条件、観察された待機時間に基づいて動的に調整されたパーティー ライブラリのタイムアウトなどの要因によって大きく異なる場合があります。

この値は、完了または部分的な障害が発生したデバイスの場合、実質的に最悪の場合のタイムアウトです。 これは、典型的な成功例に関する現実世界の観察と対比するのに役立つかもしれません。 PartyRegionQualityMeasurementConfiguration の既定の値、リージョンの可用性、プレイヤーの使用パターンを使用して、現在、パーティー ライブラリは、世界中のほとんどのデバイスが測定プロセス全体を 2.3 秒以内に正常に完了し、デバイスの 97% が 6 秒未満で正常に完了したことを確認します。 この期間は、より多くのリージョンが導入されるにつれて、時間の経過と共に若干増加すると予想されます。

PartyOption::RegionQualityMeasurementConfiguration が構成されていない場合、既定値は 15000 (15 秒) です。

値 0 はタイムアウトがないことを意味し、すべての測定が成功または失敗するまでの時間に関係なく、すべての測定値の完了が許可されます。 それ以外の場合、最小値は 50 ミリ秒です。

highLatencyHintInMilliseconds uint16_t

アプリケーションがリージョンの遅延が大きすぎて詳細な測定を実行するのに時間を費やす可能性が高いと判断した最大待機時間のしきい値 (ミリ秒) を示すヒント。

このターゲット値は、リージョンの待機時間のソフトな上限を表します。 待機時間が長いと測定されたリージョンを含めることは直接妨げられませんが、この数よりも待機時間が短いリージョンに対して最適化されたタイムアウト値と再試行値がパーティー ライブラリによって選択されます。 また、最小応答数 ([minRequiredSuccessfulResponses] フィールドで構成) を受信した後、リージョンごとに検査されます。 リージョンの測定された待機時間の中央値がこのターゲットより大きい場合、理想的な応答数 ([idealNumberOfSuccessfulResponses] フィールドで構成) は使用されません。それ以上の測定試行は送信されません。

この値を 0 にすることはできません。

PartyOption::RegionQualityMeasurementConfiguration が構成されていない場合、既定値は 200 です。

minRequiredSuccessfulResponses uint16_t

基本評価のために各リージョンに必要な成功した測定メッセージ応答の最小数。

測定する可能性のある各リージョンは、品質測定の軽量メッセージ交換中に少なくともこの回数だけ正常に応答することが期待されます。その後、結果は [highLatencyHintInMilliseconds] フィールドのターゲットの待機時間に対して評価するのに十分な精度と見なされます。 より大きな最小要件を設定すると、より多くの測定サンプルが得られます。そのため、より多くの時間を費やして、外れ値のパケット変動に直面した場合の一貫性と精度が向上します。

十分な成功応答がない場合でも、次のいずれかが発生した場合、特定のリージョンの測定は完了と見なされます。成功した応答がまったく到着せず、試行回数が [maxRetriesWithNoResponse] フィールドに構成された値を超え、少なくとも 1 つの応答が到着し、試行回数が [maxTimeoutsAfterResponse] フィールドに構成された値を超え、またはすべての [totalMeasurementTimeoutInMilliseconds] フィールドで構成されているすべてのリージョンの全体的なタイムアウトが経過した場合。

この値を 0 にすることはできません。

PartyOption::RegionQualityMeasurementConfiguration が構成されていない場合、既定値は 3 です。

idealNumberOfSuccessfulResponses uint16_t

完全な評価を実現するために、各リージョンに必要な成功した測定メッセージ応答の数。

この値は、目的のリージョンの待機時間測定で望ましい精度を達成するために、成功した応答の推奨される合計数を表します。 この値は、[minRequiredSuccessfulResponses] フィールドの最小値以上である必要があります。 パーティー ライブラリは、[highLatencyHintInMilliseconds] フィールドで構成されたしきい値以下の待機時間の中央値が既に測定されている場合にのみ、リージョンの最小値とこの理想的な値の間の追加の応答数の差を取得しようとします。 このフィールドの理想的な応答数を使用すると、より長い待機時間のリージョンに時間を費やすことなく、ローカル デバイスにとって価値が高いと思われるリージョンの測定精度を引き続き調整できます。

リージョンの最小応答数が取得されなかった場合、この追加の理想的なターゲットは試行されません。 それ以外の場合、リージョンの maxTimeoutsAfterResponse 制限に達した場合、またはすべてのリージョンの [totalMeasurementTimeoutInMilliseconds] フィールドのタイムアウト全体が経過した場合、この理想的な数の成功した応答を受信しなくても、リージョンの測定は完了と見なされます。

PartyOption::RegionQualityMeasurementConfiguration が構成されていない場合、既定値は 4 です。

maxRetriesWithNoResponse uint16_t

リージョンに到達できないと考える前に、応答なしで最初の測定メッセージをリージョンに再送信する最大回数。

この値は、そのリージョンを使用できないと考える前に、最初の品質測定ライトウェイト メッセージをリージョンに再試行するときに、パーティー ライブラリが最初に実行した回数を超える追加試行の合計数を構成します。 リージョンのサービス品質ビーコン サーバーから少なくとも 1 つの成功した応答を受信した場合、この最大値は使用されなくなり、代わりに [maxTimeoutsAfterResponse] フィールドによってタイムアウトが許可される試行回数が制御されます。

最大リトライ回数が大きいほど、パケット損失のような一時的な環境問題に寛容になりますが、その代償として到達不可能な領域を放棄するのに時間がかかります。 すべての領域の測定に許可される絶対最大時間は、個別の [totalMeasurementTimeoutInMilliseconds] フィールド値によって制限されます。

PartyOption::RegionQualityMeasurementConfiguration が構成されていない場合、既定値は 3 です。

maxTimeoutsAfterResponse uint16_t

ネットワーク パスの信頼性が低すぎて測定を続行できないと考える前に、以前に応答したリージョンでタイムアウトできる測定メッセージ試行の最大数。

リージョンのサービス品質ビーコン サーバーから少なくとも 1 つの成功した応答を受信した場合、この値は、そのリージョンの minRequiredSuccessfulResponsesidealNumberOfSuccessfulResponses の測定値を取得しようとしているときにパーティー ライブラリが許可するタイムアウト試行の合計数を決定します。

最大タイムアウト値を大きくすると、パケットロスのような一時的な環境問題に対してより寛容になりますが、その代償として、そのような質の悪い特性を持つリージョンの測定を終了するのに時間がかかる可能性があります。 すべての領域の測定に許可される絶対最大時間は、個別の [totalMeasurementTimeoutInMilliseconds] フィールド値によって制限されます。

PartyOption::RegionQualityMeasurementConfiguration が構成されていない場合、既定値は 3 です。

解説

この構造体は、PartyOption::RegionQualityMeasurementConfiguration と共に使用して、それぞれ PartyManager::SetOption() または PartyManager::GetOption() を使用して、パーティー ライブラリの現在の構成をオーバーライドまたは照会できます。 PartyRegionsChangedStateChange 状態の変更に関連するリージョン品質測定プロセスの低レベルの動作を構成します。

要件

ヘッダー: Party.h

関連項目

パーティーのメンバー
PartyOption::RegionQualityMeasurementConfiguration
PartyRegionsChangedStateChange
PartyManager::SetOption
PartyManager::GetOption