マッチメイキング キューを構成する
概要
チケットが互いに一致するのを待つ場所であるキューを中心に、マッチを構成します。 各キューには、マッチに必要なものに関する一般的な設定がいくつかあります。 さらに、チケットのマッチの方法を制限する一連のルールを含めることもできます。
キュー構成
キュー レベルでは、チケットがキュー内でどのように照合されるのか、および、キューに関する統計情報を取得する方法に関して、構成が基本的な要件を示します。
キューの名前
特定のキューの名前。 長さは 1 〜 64 文字 (1 と 64 を含む) で、大文字と小文字が区別されます。 これは、英数字、アンダースコア、ハイフンで構成され、文字または数字で始まります。 通常、キュー名は「4v4CaptureTheFlag」または「UnrankedRace」など、ゲームをプレイする方法を表します。 マッチメイキング チケットを作成する場合は、どのキューに入るべきかを識別するために、キュー名を指定する必要があります。
マッチ サイズ
マッチで許可されているプレイヤーの範囲です。 最小のマッチ サイズは 2 人以上、最大マッチ サイズは 100 人以下でなければなりません (チームを使用する場合、制限数は 32 です)。
さらに、チケットだけで、すでにマッチの最小要件を満たしている場合でも、少なくとも 1 つの他のチケットと一致するまで、マッチは返されません。 チケットがすでにマッチの最大数の要件を満たしている場合、拒否されます。
プレイヤーへの統計情報の公開
これにより、GetQueueStatistics API を通じてプレイヤーに公開されるキューの統計が決まります。 サーバーは、常に、すべての統計情報にアクセスできます。 詳細については、「タイトルにキューの統計情報を表示する」チュートリアルを参照してください。
この中で制御する 2 つのオプションがあります。
- マッチするプレイヤーの数を表示する- マッチを待機しているプレイヤーの数がプレイヤーに公開されているかどうか。 タイトルはこれを使ってモードの相対的な人気を隠したり、ビジネス上の理由からプレイヤーの数を隠したりすることができます。
- 統計を一致させる時間を表示 - 統計 (平均とパーセンタイル) を一致させる時間がプレイヤーに公開されているかどうか。
チーム
マッチ サービスがプレイヤーをチームに割り当てるように、キューにチーム構成を含めることができます。 チームの割り当て方法を制御するために、チーム固有の追加ルールを使用できます。 さらに、マッチ サービスは、同じチケットで一緒に対戦するプレイヤーが異なるチームに割り当てられないようにします。
キューには 2 つ以上のチームを定義できます。
- チーム名 - このチームに使用される名前。 チーム名は 1 文字から 64 文字 (1 と 64 を含む) の長さで、大文字と小文字が区別されます。 これは、英数字、アンダースコア、ハイフンで構成され、文字または数字で始まります。 さらに、チーム名はキュー内で一意である必要があります。
- チーム サイズ- チームに参加できるプレイヤーの最小数と最大数。 マッチメイキングは、可能な限り多くのプレイヤーとチームを結成しようとします。
チームとサイズを定義するだけでなく、マッチメイキングでチームを処理する方法を支援するために、追加のルールを有効にすることができます。 チーム固有のルールの情報については、以下を参照してください。
ルールの構成
ルールは、キューに対してオプションで定義できます。 設定すると、マッチメイキング アルゴリズムがどのチケットをマッチさせるかを決定するのに役立ちます。 各ルールは、プレイヤー メタデータ内の単一の属性に適用されます。 1 つのキューに対して最大 20 個のルールを定義できます。
多くの種類のルールがあります。 それぞれ特定の種類のルールに固有の要素と同様に、いくつかの共通の設定可能な要素が含まれています。 さらに、多くのルールで拡張が許可されており、ルールは時間の経過とともに制限が緩和されます。
共通ルールの要素
以下の要素は、すべてのルールでよく使われます。
ルール名 - 名前は 1 文字から 255 文字の長さ (1 と 255 を含む) でなければならず、英数字に下線とハイフンを加えたもので、英字または数字で始める必要があります。 ルール名はキュー内で一意である必要があります。
重み付け- ルールの重要度を変更する方法。 一般にルールは、制限と、適格な残りのチケットをソートする方法の両方を提供します。 重みは乗数であり、ソートを行うために、ルールの重要性を変更します。
属性のソース- ルールは、多くの場合、提供される情報に基づいて適用されます。 このフィールドでは、この情報のソースの 2 つのオプションについて説明します。
- ユーザー - 属性は、チケットの作成要求または参加要求でプレイヤーと一緒に送信されます。
- プレイヤー エンティティ- 属性は、プレイヤーに関連付けられているプレイヤー エンティティから取得します。 属性は、SetObjects API で設定できます。
属性パス- 属性に到達するパス。 ユーザー属性ソースを使用する場合は、単に属性の名前となります。 プレイヤー エンティティの属性ソースを使用する場合、
$.playerSkill.Mean
のような、エンティティから特定の項目を取得する JSONPath となります。属性が指定されていない場合の動作 - ルールが属性を必要としているものの何も指定されていない場合、ルールは 2 つの動作のうちの 1 つで設定される場合があります。
- 属性の既定値を提供する場合があります。
- チケットがルールによって提供される制限を満たしていることを示すシグナルとして、属性パスを使用することもできます。 たとえば、何人かのプレイヤーが好みを提示し、他のプレイヤーが誰とでも対戦することを望んでいる場合に役立ちます。 好みのないプレイヤーは、属性を提示せず他のプレイヤーと対戦することができます。
標準的なルールの種類
目的、一般的な用途、およびルールで必要となる可能性のある特定の構成と共に、ルールの種類のそれぞれを以下に示します。
ルールの種類 | 説明 | 一般的な用途 | ルール特有のフィールド |
---|---|---|---|
文字列等価 | 文字列属性がマッチ内のすべてのチケットで同じであることを確認します。 | ビルド バージョンまたはその他の特定の項目を一致させる必要があります | なし |
相違点 | マッチの任意の 2 つのチケット間の番号属性の絶対差が、設定されている最大差よりも小さいことを確認します。 | スキル、経験、またはその他の数値の比較によってプレイヤーをグループ化します。 | マージ機能 - 複数のプレイヤーの値を、チケットを表す 1 つの値にマージする方法を選択します。 許容される値は、min、max、および average です。 既定値は average です。 |
交差の設定 | 文字列のリストである特定の属性に対して、マッチのすべてのチケットが、少なくとも設定されているのと同じ数の値を共有するようにします。 | DLC またはマップの選択 | 最小交差数 - マッチで共有されるアイテムの最小数。 |
マッチ合計 | マッチに出場する全プレイヤーの人数属性の合計が設定範囲内になるようにします。 | ロールの選択、ホスト/サーバーのマッチメイキングのエミュレート、時間の経過に伴うプレイヤー数制限の調整 | 最小/最大合計 - 属性の合計は、包含する範囲内である必要があります。 |
地域の選択 | マッチのすべてのユーザーに共通のデータ センターへの待ち時間が、設定された最大値よりも小さいことを確認します。 | マルチプレイヤー サーバーの統合に必須 | 最大遅延時間 - この最大遅延時間内のデータ センターのみがマッチに適合します。 |
チームのルールの種類
チームのルールは、チームがキュー構成に存在する場合にのみ設定できます。 チーム間のバランスをとるための追加の方法を提供します。 次のチーム ルールも使用できます。
ルールの種類 | 説明 | 一般的な用途 | ルール特有のフィールド |
---|---|---|---|
チームの違い | マッチに含まれるチームが特定の属性 (スキルなど) に対して設定された差異内に収まるようにします。 これは、比較される値が各チームの平均値である点を除けば、標準の差異ルールと非常によく似ています。 | チーム間でのスキルのバランス | なし |
チーム サイズのバランス | 最大チームと最小チームの間のプレイヤー数の差がしきい値を超えないようにします。 たとえば、このルールを使用して、3v3 と 4v4 のマッチが許可されるキューを作成できますが、3v4 のマッチは許可されません。 | チーム間でのプレイヤー数のバランス | 許可されたチーム サイズの差異 - 各チームに割り当てられているプレイヤーの数の違いによって測定される、チームの不均衡の程度。 |
チーム チケット サイズの類似性 | すべてのチームが大規模なパーティーを持つか、または大規模なパーティーを持たないようにします。 大規模なパーティーは、最大チーム サイズの少なくとも半分の数で定義されます。 | パーティー (既成のチーム) がソロ プレイヤーのグループと対戦するのを防ぎます。 | なし |
拡張とオプション化
ルールは、時間が経過するにつれてオプションになったり、制限が緩和されたりする可能性があり、しばらく待機していたチケットでは、マッチの可能性を広く検索することができます。 この動作を制御する方法は 2 つあります。
オプションまでの秒数- ルールがアクティブである時間の長さだけを示します。 このルールは、今回待機したチケット間のマッチを制限しなくなりました。
展開プロセス - ルールは、時間をかけて構成されたしきい値を徐々に調整します。 たとえば、差異ルールでは、特定の最大差異内でのマッチが要求される場合があります。 チケットが待機中は、ルールは最大差を拡大し、チケットの広い範囲への拡大を可能にし、完全な対戦相手が利用できない場合でも、マッチを可能にすることができます。
展開は、線形またはカスタムのどちらでもかまいません。 線形展開では、各時間間隔の後に固定された変化を使用して、値が、時間とともに増加するようにします。 線形展開でカスタマイズされた項目は次のとおりです。
- 展開間の秒数- 制限を変更するルールの各インスタンス間の長さ。
- デルタ - 値の変更。
- 制限 - 終了値。 この点を超えてルールが拡大することはありません。
カスタム展開では、ルールが制限を変更するたびに、ルールは任意の値を使用できます。 次のフィールドを使用できます。
- 展開間の秒数- 制限を変更するルールの各インスタンス間の長さ
- 展開中にルールを変更する1 つ以上のカスタムフィールド。 各フィールドはセミコロンで区切られ、各展開の間隔で使用される異なる値を表します。 この期間中はルールがアクティブでないことを示すために、値の代わりに「null」という語を使用できます。
変更される正確なフィールドはルールによって異なります。 次のチャートは、どの規則にどの種類の展開があるか、および展開によって、どのフィールドが変更されるかを示しています。
ルールの種類 | 線形展開が許可されているか | カスタム展開が許可されているか | 拡張中に変更された属性 |
---|---|---|---|
文字列等価 | × | ○ | ユーザーがアクティブかどうか? |
相違点 | ○ | ○ | 最大許容差 |
交差の設定 | ○ | ○ | 最低限必要な交差 |
マッチ合計 | × | ○ | 最小必須数および最大必須数の合計 |
地域の選択 | ○ | ○ | 最大許可待機時間 |
チームの違い | ○ | ○ | 許可されたチーム値の差異 |
チーム サイズのバランス | ○ | ○ | 許可された各チームのプレイヤー数の差異 |
チーム チケット サイズの類似性 | × | × | 該当なし |
構成事例の詳細については、 「マッチメイキングのシナリオと設定例」を参照してください。