FlexMatch マッチメーキングプロセス - Amazon GameLift Servers

FlexMatch マッチメーキングプロセス

このトピックでは、ベーシックなマッチメーキングシナリオと、さまざまなゲームコンポーネントと FlexMatch サービス間の相互作用について説明します。

ステップ 1: プレイヤーのマッチメーキングをリクエストする

ゲームクライアントを使用しているプレイヤーが「ゲームに参加」ボタンをクリックします。このアクションにより、クライアントのマッチメーキングサービスが FlexMatch にマッチメーキングリクエストを送信します。リクエストは、リクエストを実行する際に使用する FlexMatch マッチメーカーを識別します。リクエストには、スキルレベル、プレイ設定、地理的なレイテンシー データなど、カスタムマッチメーカーが必要とするプレイヤー情報も含まれます。1 人のプレイヤーまたは複数のプレイヤーに対してマッチメーキングリクエストを行うことができます。

ステップ 2: リクエストをマッチメーキングプールに追加する

FlexMatch がマッチメーキングリクエストを受信すると、マッチメーキングチケットを生成し、マッチメーカーのチケットプールに追加します。チケットは、試合が始まるか、それともマッチメーカーの制限時間に達するかまでプールに残ります。クライアントのマッチメーキングサービスには、チケットステータスの変更など、マッチメーキングイベントについて定期的に通知されます。

ステップ 3: モデルを構築する

FlexMatch マッチメーカーは、プール内のすべてのチケットに対して次のプロセスを継続的に実行します。

  1. マッチメーカーはチケット年齢でプールをソートし、最も古いチケットから潜在的な試合の構築を開始します。

  2. マッチメーカーは潜在的な試合に 2 番目のチケットを追加し、カスタムマッチメーキングルールに対して結果を評価します。潜在的な試合が評価に合格すると、チケットのプレイヤーはチームに割り当てられます。

  3. マッチメーカーは次のチケットを順番に追加し、評価プロセスを繰り返します。すべてのプレイヤーのスロットがいっぱいになると、試合は準備完了です。

大規模な試合 (41 〜 200 人) のマッチメーキングでは、合理的な時間枠で試合を構築できるように、上記プロセスの修正バージョンを使用します。マッチメーカーは、各チケットを個別に評価する代わりに、事前にソートされたチケットプールを潜在的な試合に分割し、指定したプレイヤーの特性に基づいて各試合のバランスをとります。例えば、マッチメーカーが類似する低レイテンシーの場所に基づいてチケットを事前にソートし、試合後のバランシングを使用して、チームがプレイヤーのスキルで均等に試合するようにします。

ステップ 4: マッチメーキングの結果を報告する

受け入れ可能な試合が見つかると、一致したすべてのチケットが更新され、一致したチケットごとに成功したマッチメーキングイベントが生成されます。

  • スタンドアロンサービスとしての FlexMatch: ゲームはマッチメーキングイベントで試合結果を受け取ります。結果データには、マッチングしたすべてのプレイヤーとそのチームの割り当てのリストが含まれます。試合リクエストにプレイヤーのレイテンシー情報が含まれている場合、結果には試合に最適な地理的位置が示されます。

  • Amazon GameLift Servers ホスティングソリューションを使用した FlexMatch: 試合の結果は、ゲームセッションの配置のために Amazon GameLift Servers キューに自動的に渡されます。マッチメーカーは、ゲームセッションの配置に使用されるキューを決定します。

ステップ 5: マッチ用のゲームセッションを開始する

提案された試合が正常に形成されると、新しいゲームセッションが開始されます。ゲームサーバーは、試合のゲームセッションを設定する際に、プレイヤー ID やチーム割り当てなどのマッチメーキング結果データを使用できます。

  • スタンドアロンサービスとしての FlexMatch: カスタムマッチプレースメントサービスは、正常なマッチメーキングイベントから試合結果データを取得し、試合に使用可能なホスティングリソースを割り当てるために既存のゲームセッションプレースメントシステムに接続します。ホスティングリソースが見つかると、マッチプレースメントサービスは既存のホスティングシステムと調整して、新しいゲームセッションをスタートし、接続情報を取得します。

  • Amazon GameLift Servers ホスティングソリューションを使用した FlexMatch: ゲームセッションキューは、試合に最適なゲームサーバーを特定します。キューの構成方法に応じて、ゲームセッションを最低コストのリソースで配置し、プレイヤーのレイテンシーが低い場所 (プレイヤーのレイテンシーデータが提供されている場合) を配置しようとします。ゲームセッションが正常に配置されると、Amazon GameLift Servers サービスは、マッチメーキング結果やその他のオプションのゲームデータを渡して、新しいゲームセッションをスタートするようにゲームサーバーに要求します。

ステップ 6: プレイヤーをマッチに接続する

ゲームセッションが開始されると、プレイヤーはセッションに接続し、チームの割り当てをクレームし、ゲームプレイを開始します。

  • スタンドアロンサービスとしての FlexMatch: ゲームは既存のゲームセッション管理システムを使用して、接続情報をプレイヤーに返します。

  • Amazon GameLift Servers ホスティングソリューションを使用した FlexMatch: ゲームセッションの配置が正常に行われると、FlexMatch はゲームセッション接続情報とプレイヤーセッション ID を使用して、一致したチケットをすべて更新します。