QoS (Quality of Service)
Use Quality of Service results to match players in regions with acceptable connection quality.
読み終わるまでの所要時間 2 分最終更新 25日前
QoS サービスは、クライアントがオンラインセッションで最高の接続品質を期待できる利用可能地域を動的に判断するのに役立ちます。 Matchmaker では、ゲームクライアントがマッチメイキングチケット内の各プレイヤーの QoS 結果情報を提供できます。QoS 結果には、ゲームをホストする可能性のあるゲームサーバーに近い場所にある QoS サーバーに対するクライアントからの接続の品質に関する情報が含まれます。QoS 結果は地域別に定義され、待ち時間とパケット損失率の値を含みます。Matchmaker はこれらの結果を使用して、接続品質がゲームの要件を満たしている地域内でプレイヤーをマッチングします。
QoS ルール
QoS ルールは、チケット上の QoS 結果を使用して、それらのマッチに必要とされる良好な接続品質を定義します。 次の例では、マッチに参加するすべてのプレイヤーの待ち時間を 100 未満にする必要があります。"MatchRules": [ { "Name": "QoS", "Type": "LessThanEqual", "Source": "Players.QosResults.Latency", "Reference": 100, "Not": false, "EnableRule": true }]
Relaxations (緩和)
QoS ルールを使用する場合、地域内のプレイヤー数が少なくてもマッチメイキングが行われるように、何らかの緩和を適用することが重要です。 次の例では、30 秒後に待ち時間ルールを緩和します。"MatchRules": [ { "Name": "QoS", "Type": "LessThanEqual", "Source": "Players.QosResults.Latency", "Reference": 100, "Not": false, "EnableRule": true, "Relaxations": [ { "Type": "ReferenceControl.Replace", "AgeType": "Oldest", "Value": 150, "AtSeconds": 30 } ] }]
Unity QoS SDK の使用
Unity は、フリートの QoS の計算を容易にする SDK を提供しています。以下のコードスニペットは、ゲームクライアントから QoS 結果を取得する方法を示しています。HttpClient client = new HttpClient();client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", AuthenticationService.Instance.AccessToken);var fleetId = "Multiplay fleet id"; // Replace this with the fleet Id;// Fetch QoS result for the fleetvar qosResult = await GetSortedMultiplayQosResultsAsync(new List<string>{fleetId});
QoS に関する考慮事項
パーティマッチメイキングと QoS
複数のプレイヤーがチケットに追加されているパーティの場合、QoS 情報を提供するための戦略はいくつか考えられます。- パーティのさまざまなクライアントにそれぞれの QoS 結果を提供してもらい、それらの値をチケットに追加する。
- パーティのさまざまなクライアントにそれぞれの QoS 結果を提供してもらい、QoS 結果の平均値を作成して、その値をチケットに追加する。
- パーティリーダーの QoS 結果を提供する。
許容される QoS の上限の決定
ほとんどのリアルタイムゲームには待ち時間とパケット損失についてのしきい値があり、それを超えると、ゲームプレイの品質が低下 (ゲームプレイの品質が落ちるが、技術的にはまだプレイ可能である場合) または不可能 (プレイヤーが接続を維持できないか、ゲームロジックが正しく機能しない場合) と見なされます。マッチメイキングに QoS 結果を使用することで、プレイヤーが QoS の低い地域でプレイするのを防止できます。 これらの上限を決める際には、接続不良のプレイヤーの体験と、接続不良のプレイヤーと一緒にプレイしているときの他のプレイヤーの体験の両方を考慮することを忘れないでください。例えば、ゲームエンジンによっては、待ち時間が長くパケット損失が多いプレイヤーに比較的良い体験を提供できますが、他のプレイヤーにとってはそのプレイヤーと一緒にゲームをプレイすることが不可能になる程度まで、プレイヤーがテレポートしているように見える場合があります。これは実際には、クライアントによって収集された地域ごとの QoS 結果を処理し、許容範囲外の地域やプレイ不可能な地域を除外する必要があることを意味しています。- プレイヤーの利用可能な最良の QoS 結果がタイトルで許容される待ち時間や損失の範囲を超えているが、技術的には対応できる場合には、そのプレイヤーの最良の結果以外のすべての結果を除外することを検討してみてください。これにより、プレイヤーは接続品質が良くないマッチであっても、少なくともマッチを見つけられるようになります。このようなシナリオでは、接続品質に関する警告をプレイヤーに表示すると、ゲームプレイに問題が発生する可能性があることを事前に知ってもらうのに役立ちます。
- プレイヤーの利用可能な最良の QoS 結果がプレイ不可能のしきい値を超えている場合は、適切なエラーメッセージを表示し、プレイヤーがプレイできないようにすることをお勧めします。
QoS に関するベストプラクティス
Multiplay Hosting の QoS プロトコルを操作する際には、以下の有効な事例を考慮してください。- チケットに含まれる地域ごとの待ち時間とパケット損失の値は、通常、その地域内で接続される各 QoS サーバーのすべてのレスポンスを平均化または平坦化したものである必要があります。結果の加重平均によって直近の結果に比重を置くようにすると、現在のネットワーク品質をより正確に示すことができる可能性があります。
- パケット損失と遅延率の兼ね合いを考慮してください。例えば、接続の待ち時間が非常に短いと通常では標準的なゲームセッションとなりますが、リアルタイムゲームでは、最小限のパケット損失が生じただけでゲームセッションが影響を受ける可能性があります。