概要
マッチ構成の中心はキューです。キューは、チケットが互いにマッチされるまで待機する場所を表します。各キューには、マッチに何が必要かに関する一般的な構成があります。さらに、チケット同士のマッチング方法についての追加の制約を提供する一連のルールを含めることができます。キュー構成
キュー レベルでは、構成にはキュー内でチケットがどのようにマッチされるかに関する基本要件と、キューに関する統計情報を取得する方法が記述されます。キュー名
特定のキューの名前です。1 文字以上 64 文字以下 (両端を含む) で、大文字と小文字が区別されます。英数字とアンダースコアおよびハイフンから構成され、文字または数字で始まります。通常、キュー名は “4v4CaptureTheFlag” や “UnrankedRace” などの、ゲームのプレイ方法を表します。マッチメイキング チケットを作成するときは、どのキューに入るかを識別するためにキュー名を指定する必要があります。マッチ サイズ
マッチに許可されるプレイヤーの範囲です。最小マッチ サイズは 2 以上でなければなりません。最大マッチ サイズは 100 以下でなければなりません。チームを使用する場合、この制限は 32 です。 さらに、1 つのチケットだけですでにマッチの最小要件を満たしている場合でも、少なくとも他の 1 つのチケットとマッチするまでマッチ発見は返されません。ただし、チケットがすでにマッチの最大要件を満たしている場合は拒否されます。プレイヤーが利用可能な統計
この機能は、GetQueueStatistics API を通じてプレイヤーに公開されるキュー統計を決定します。サーバーは常にすべての統計にアクセスできます。詳細については、タイトル内でのキュー統計の表示 を参照してください。 この構成内で制御できるオプションは 2 つあります。- マッチングするプレイヤー数を表示する - マッチを待っているプレイヤー数をプレイヤーに公開するかどうか。タイトルは、モードの相対的な人気を隠すため、またはビジネス上の理由でプレイヤー数を非表示にするために、このオプションを使用する場合があります。
- マッチまでの時間の統計を表示する - マッチまでの時間の統計 (平均およびパーセンタイル) をプレイヤーに公開するかどうか。
チーム
キューにはチーム構成を含めることができ、マッチ サービスがプレイヤーをチームに割り当てます。チーム割り当ての方法を制御するために、さらにチーム固有のルールを使用できます。さらに、マッチ サービスは、同じチケット内で一緒にマッチするプレイヤーが異なるチームに割り当てられないようにします。 キュー内に 2 つ以上のチームを定義できます。- チーム名 - このチームで使用される名前。チーム名は 1 文字以上 64 文字以下 (両端を含む) で、大文字と小文字が区別されます。英数字とアンダースコアおよびハイフンから構成され、文字または数字で始まります。さらに、キュー内で一意である必要があります。
- チーム サイズ - チームに参加できるプレイヤーの最小および最大数。マッチメイキングは、最大数までできる限り多くのプレイヤーでチームを形成しようとします。
ルール構成
ルールは、必要に応じてキューに定義できます。構成された場合、マッチメイキング アルゴリズムがどのチケットを一緒にマッチさせるべきかを判断するのに役立ちます。各ルールは、プレイヤー メタデータの単一の属性に適用されます。1 つのキューに最大 20 個のルールを定義できます。 多くの種類のルールがあります。それぞれ、一般的に構成可能な要素と、その特定の種類のルールに固有の要素を含みます。さらに、多くのルールでは拡張が許可されており、これによりルールは時間とともに制約が緩やかになります。一般的なルール要素
以下の要素は多くの場合、すべてのルールで使用されます。- ルール名 - 名前は 1 文字以上 255 文字以下 (両端を含む) で、英数字とアンダースコアおよびハイフンから構成され、文字または数字で始まる必要があります。ルール名はキュー内で一意である必要があります。
- 重み - ルールの重要度を変更する方法です。ルールは一般に、制約と、資格を満たす残りのチケットを並べ替える方法の両方を提供します。重みは乗数で、並べ替え目的のルールの重要度を変更します。詳細については、マッチメイキングにおけるルールの重みの理解 を参照してください。
-
属性ソース - ルールは、提供された情報に対して作用することがよくあります。このフィールドは、この情報のソースの 2 つのオプションを記述します。
- User - 属性は、チケットの作成または参加要求でプレイヤーとともに送信されます。
- Player Entity - 属性はプレイヤーに関連付けられた Player Entity から取得されます。これらの属性は SetObjects API を介して設定できます。外部エンティティ タイプを使用する場合は、このソースを使用しないでください。
-
属性パス - 属性に到達するためのパス。User Attribute Source を使用する場合は、単純に属性名です。Player Entity Attribute Source を使用する場合、
$.playerSkill.Meanなど、エンティティから特定の項目を取得する JSONPath です。 -
属性が指定されていないときの動作 - ルールが属性を必要とするが、指定されていない場合、ルールは以下の 2 つの動作のいずれかで構成できます。
- 属性のデフォルト値を提供する。
- このシグナルを、チケットがルールで提供される制約を満たすことを示す方法として使用する。この動作は、たとえば、一部のプレイヤーが好みを表明し、別のプレイヤーが誰とでもマッチする意思がある場合に有用です。好みのないプレイヤーは属性の指定を省略し、他のどのプレイヤーともマッチできます。
標準ルールの種類
以下のルールの種類のそれぞれについて、その目的、一般的な用途、およびルールに必要となる可能性のある特定の構成を示します。チーム ルールの種類
チーム ルールは、キュー構成にチームが存在する場合にのみ設定できます。これらは、チーム間のバランスを要求する追加の方法を提供します。以下のチーム ルールが利用可能です。拡張と任意化
ルールは時間とともに任意になったり、制約が緩やかになったりして、しばらく待機しているチケットがマッチの候補をより広く検索できるようになります。この動作を制御するには 2 つの方法があります。- Seconds until optional - ルールがアクティブな時間の長さを単純に示します。この時間待機しているチケット間ではルールはマッチを制約しなくなります。
- Expansion process - ルールは時間とともに構成されたしきい値を徐々に調整します。たとえば、Difference ルールは特定の最大差の範囲内でマッチを要求する場合があります。チケットが待機するにつれて、ルールは最大差を拡大することがあります。この拡張は、チケットにより大きな範囲を許可します。完全な対戦相手が利用できない場合でも、チケットがマッチされることを可能にします。
- Seconds between expansions - ルールが制約を変更する各インスタンス間の時間。
- Delta - 値の変化量。
- Limit - 終端値。ルールはこのポイントを超えて拡張されることはありません。
- Seconds between expansions - ルールが制約を変更する各インスタンス間の時間
- 拡張中にルールを変更する 1 つ以上のカスタム フィールド。各フィールドはセミコロンで区切られ、各拡張間隔で使用される異なる値を表します。値の代わりに “null” という単語を使用して、この間隔ではルールがアクティブでないことを示すことができます。
構成のユース ケースと例の詳細については、マッチメイキング シナリオと構成の例 を参照してください。
