メインコンテンツまでスキップ

Introduction to Matchmaking

Last updated on November 6, 2023

概要

マッチメイキングサービスは、参加するグループにプレイヤーを割り当てるためにデベロッパーが使用できる一連の機能を提供します。グループは、バランスの取れた対戦を提供するために、ゲームモードや言語などの選択された設定、MMR などの保存されたプレイヤーの属性に基づいています。

これらの設定と属性を使用して、サービスはマッチチケットを生成し、そのチケットを評価するマッチプールのキューに入れます。

このサービスは、デフォルトで 3 タイプの主要なマッチメイキングをサポートしていますが、2 つ以上のタイプを組み合わせた複雑なシナリオを処理するように設定することもできます。主要なマッチメイキングタイプは次のとおりです。

  • チームベースのマッチメイキング:互いに対戦するチームにプレイヤーをマッチングします。チームの規模と最小プレイヤー数の要件は、ルールセットの一部として定義できます。
  • スキルベースのマッチメイキング:定義された属性を比較して適切なマッチを判断し、スキルレベルに基づいてプレイヤーをマッチングします。比較する属性と基準は、ルールセットの一部として定義できます。
  • ロールベースのマッチメイキング:ゲームセッション中にプレイすることを選択したゲーム内ロールに基づいて、多くの場合チームの一員としてプレイヤーをマッチングします。ゲームセッションとチームのロール要件は、ルールセットの一部として定義できます。

さらに、gRPC プラグインを使用してサービスを拡張できます。これにより、デベロッパーはニーズに応じて実装をカスタマイズできます。

このセクションでは、マッチメイキングサービスに関連するキーコンセプト、 マッチング時のプレイヤーのフロー、サービスを使用する際のベストプラクティスを確認します。 また、この後で、サービスを統合および設定する方法に関する一連のガイドを参照できます。

キーコンセプト

マッチメイキングサービスを統合する前に、サービスの設計全体で使用されているいくつかの コンセプトを理解することが重要です。

ゲームモード

ゲームモードにはプレイヤー対プレイヤー (PvP)、フリーフォーオール、協力などがあり、プレイヤーにさまざまなゲームプレイ体験を提供します。 マッチメイキングサービスは、各モードの個別のマッチメイキングロジックなど、複数のゲームモード定義をサポートしています。これにより、プレイヤーをグループ化するためのスキルランキングやチーム構成など、独自の基準を定義できます。ゲームモードを定義するには、セッションテンプレートの設定方法に関する セッション サービスドキュメントを参照してください。

ゲームセッション

ゲームセッションはゲームモードのインスタンスであり、マッチしたプレイヤーは接続されて互いにやり取りし、指定されたゲームモードの目標を達成します。ゲームセッションは、専用サーバー にデプロイするか、ピアツーピアプレイのためにゲームクライアントコンピュータでローカルにホストすることができます。

チーム構成

チームベースのゲームモードでは、チーム構成は、チームの一員として参加できるプレイヤーの数と、ゲームセッションのバランスを取るために必要なロール固有の要件を指します。さらに、参加に必要なチーム数、各チームのプレイヤーの最小数などは、マッチルールセットの一部として設定できます。

マッチチケット

マッチチケットは、マッチメイキング中のプレイヤーまたはパーティを表します。マッチルールセットがマッチの適合性を比較し、最適に判断するために必要となる属性とパラメータを含んでいます。

マッチプール

キューとも呼ばれるマッチプールは、ゲームモード、地域、言語などの選択された設定に基づいて、チケットとして表されるプレイヤーとパーティのセグメントを定義します。プールに入ると、チケットは順番に評価され、ゲームモードについて定義されたマッチルールセットに基づいて組み合わされ、ゲームセッションに接続されます。

マッチルールセット

マッチルールセットは、マッチメイキング中にチケットを比較するために使用されるロジックを定義し、ゲームモードごとに必要な体験に基づいて最適にグループ化されるようにします。マッチメイキングサービスは、対応するプールのキューに入っているチケットをレビューして、マッチの適合性を判断します。

マッチ関数

マッチ関数は、キューで待機しているチケットを評価するためにサービスが使用する動作を定義します。デフォルトで、マッチルールセットで定義されたロジックを使用しますが、gRPC プラグインを使用することで、サービスの機能を拡張する新しい関数を実装できます。

バックフィル

ゲームプレイ中、場合によっては、ゲームセッションが新しいプレイヤーの追加をリクエストする必要が生じます。バックフィルは、ゲームセッションがマッチメイキングサービスにチケットを送信して、新しいプレイヤーの提案を受け取り、それを承諾または拒否できるプロセスです。セッションテンプレート でゲームセッションに自動バックフィルを設定できるほか、ゲームサーバーにゲームセッションの直接管理を任せることもできます。

マッチメイキングフロー

このセクションでは、ソロプレイヤーまたはパーティの一員としてゲームセッションにマッチングするために、プレイヤーが体験するフローを確認します。

  1. プレイヤー (パーティリーダー) がパーティを作成し、必要に応じてフレンドを招待します。そして目的のゲームモードを選択し、設定を行います。
  2. プレイを開始する準備ができたら、パーティリーダーはマッチメイキングを開始します。これによりマッチチケットが作成されてマッチプールのキューに入ります。
  3. サービスは、最適なマッチを見つけるために、マッチルールセットで定義されたロジックに基づいてチケットを評価します。
  4. マッチが見つかると、サービスはセッションサービスからゲームセッションをリクエストし、チケット情報をセッションに添付します。
  5. このサービスは、ゲームセッションのバックフィルチケットも作成するため、希望する数のプレイヤーが見つかるまで、追加のマッチを見つけることができます。
  6. プレイヤーは、マッチとして選択されると、ゲームセッションに参加するための招待を受け取り、それに同意すると接続されます。
  7. ゲームセッションが満員になると、ゲームプレイが開始可能になります。