Amazon GameLift FlexMatch の仕組み - Amazon GameLift

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Amazon GameLift FlexMatch の仕組み

このトピックでは、FlexMatch システムのコアコンポーネントとそれらの相互作用方法を含む Amazon GameLift FlexMatch サービスの概要について説明します。

FlexMatch は、Amazon GameLift マネージドホスティングを使用するゲーム、または別のホスティングソリューションを使用するゲームで使用できます。リアルタイムサーバーを含む Amazon GameLift サーバーでホストされているゲームは、統合された Amazon GameLift サービスを使用して、利用可能なゲームサーバーを自動的に検索し、試合のゲームセッションをスタートします。FlexMatch をスタンドアロンサービスとして使用するゲーム(Amazon GameLift FleetIQ を含む)は、既存のホスティングシステムと調整して、ホスティングリソースを割り当てて、試合のゲームセッションをスタートする必要があります。

ゲームの FlexMatch の設定に関する詳細なガイダンスについては、FlexMatch の開始 を参照してください。

マッチメーキングコンポーネント

FlexMatch マッチメーキングシステムには、次のコンポーネントの一部またはすべてが含まれます。

Amazon GameLift コンポーネント

これらは、FlexMatch サービスがゲームのマッチメーキングを実行する方法を制御する Amazon GameLift リソースです。これらは、コンソールや AWS CLI を含んだ Amazon GameLift ツールを使用するか、または、その代わりにプログラムによる Amazon GameLift 用の AWS SDK を使用して、作成および保守されます。

  • FlexMatch マッチメーキング設定 (マッチメーカーとも呼ばれます)— マッチメーカーとは、ゲームのマッチメーキングプロセスをカスタマイズする設定値のセットです。ゲームには、複数のマッチメーカーがあり、それぞれが異なるゲームモードまたはエクスペリエンスに応じて構成されます。ゲームが FlexMatch にマッチメーキングリクエストを送信するときに、使用するマッチメーカーを指定します。

  • [FlexMatch matchmaking rule set](FlexMatch マッチメーキングルールセット— ルールセットには、潜在的な試合のプレイヤーを評価し、承認または却下するために必要なすべての情報が含まれています。ルールセットは、試合のチーム構造を定義し、評価に使用されるプレーヤー属性を宣言し、受け入れ可能な試合の条件を記述するルールを提供します。ルールは、個別のプレイヤー、チーム、または試合全体に適用できます。たとえば、ルールによって、試合内のすべてのプレイヤーが同じゲームマップを選択することを要求したり、すべてのチームが同程度のプレイヤースキル平均を有していることを要求する場合があります。

  • Amazon GameLift ゲームセッションキュー (Amazon GameLift マネージドホスティングでの FlexMatch の場合のみ) – ゲームセッションキューでは、利用可能なホストリソースを検索し、試合の新しいゲームセッションを開始します。キューの設定により、Amazon GameLift で利用可能なホストリソースを探す場所、および試合に利用できる最適なホストを選択する方法を決定します。

カスタムコンポーネント

次のコンポーネントには、ゲームのアーキテクチャに基づいて実装する必要がある完全な FlexMatch システムに必要な機能が含まれています。

  • [Player interface for matchmaking](マッチメーキング用のプレイヤーインターフェース)— このインターフェースにより、プレイヤーは試合に参加できます。少なくとも、クライアントマッチメーキングサービスコンポーネントを通じてマッチメーキングリクエストを開始し、マッチメーキングプロセスに必要なスキルレベルやレイテンシー データなどのプレイヤー固有のデータを提供します。

    注記

    ベストプラクティスとして、FlexMatch サービスとの通信は、ゲーム クライアントからではなく、バックエンドサービスによって行う必要があります。

  • [Client matchmaking service](クライアントマッチメーキングサービス)— このサービスは、プレイヤーインターフェイスからのプレイヤー参加リクエストをフィールド化し、マッチメーキングリクエストを生成し、FlexMatch サービスに送信します。処理中のリクエストについては、マッチメーキングイベントをモニタリングし、マッチメーキングステータスを追跡し、必要に応じてアクションを実行します。ゲームでのゲームセッションホスティングの管理方法によっては、このサービスはゲームセッションの接続情報をプレイヤーに返す場合があります。このコンポーネントでは FlexMatch サービスと通信するための Amazon GameLift API による AWS SDK を使います。

  • [Match placement service (for FlexMatch as a standalone service only)](マッチプレースメントサービス(スタンドアロンサービスとしての FlexMatch の場合のみ))— このコンポーネントは、既存のゲームホスティングシステムと連携して、利用可能なホスティングリソースを見つけ、試合の新しいゲームセッションをスタートします。コンポーネントは、マッチメーキング結果を取得し、新しいゲームセッションのスタートに必要な情報(試合内のすべてのプレイヤーのプレイヤー ID、属性、チーム割り当てなど)を抽出する必要があります。

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

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

プレイヤーのマッチメーキングのリクエスト

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

マッチメーキング プールにリクエストを追加

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

試合を構築する

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

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

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

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

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

マッチメーキングの結果の報告

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

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

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

試合のゲームセッションのスタート

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

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

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

プレイヤーを試合にConnectする

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

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

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