

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

# Amazon GameLift Servers FlexMatch の仕組み
<a name="gamelift-match"></a>

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

Amazon GameLift Servers は、FlexMatch マネージドホスティングを利用するゲームや、他のホスティングソリューションを利用するゲームの両方で使用できます。Amazon GameLift Servers 上でホストされるゲーム (Amazon GameLift Servers Realtime を含む) は、統合された Amazon GameLift Servers サービスを使用して、利用可能なゲームサーバーを自動的に検出し、マッチのゲームセッションを開始します。Amazon GameLift Servers FleetIQ を含め、FlexMatch をスタンドアロンサービスとして利用するゲームは、既存のホスティングシステムと連携して、ホスティングリソースの割り当てやマッチのゲームセッションの開始を行う必要があります。

ゲーム向けに FlexMatch を設定する詳細な手順については、「[FlexMatch の開始方法](match-getting-started.md)」を参照してください。

## マッチメーキングコンポーネント
<a name="gamelift-match-components"></a>

FlexMatch マッチメーキングシステムには、以下のいずれか、またはすべてのコンポーネントが含まれます。

**Amazon GameLift Servers コンポーネント**

これらは、FlexMatch サービスがゲームのマッチメーキングをどのように実行するかを管理するAmazon GameLift Servers リソースです。これらは、コンソールや AWS CLI などのAmazon GameLift Serversツールを使用して作成および保守するか、または AWS SDK for をプログラムで使用しますAmazon GameLift Servers。
+ **FlexMatch マッチメーキング設定 (マッチメーカーとも呼ばれます)** — マッチメーカーとは、ゲームのマッチメーキングプロセスをカスタマイズする設定値のセットです。ゲームには、複数のマッチメーカーがあり、それぞれが異なるゲームモードまたはエクスペリエンスに応じて構成されます。ゲームが FlexMatch にマッチメーキングリクエストを送信するときに、使用するマッチメーカーを指定します。
+ **FlexMatch マッチメーキングルールセット** - ルールセットには、プレイヤーの潜在的なマッチを評価し、承認または拒否するために必要なすべての情報が含まれています。ルールセットは、試合のチーム構造を定義し、評価に使用されるプレーヤー属性を宣言し、受け入れ可能な試合の条件を記述するルールを提供します。ルールは、個別のプレイヤー、チーム、または試合全体に適用できます。例えば、ルールによって、試合内のすべてのプレイヤーが同じゲームマップを選択することを要求したり、すべてのチームが同程度のプレイヤースキル平均を有していることを要求する場合があります。
+ **Amazon GameLift Servers ゲームセッション キュー (Amazon GameLift Servers マネージドホスティング専用のFlexMatch 向け)** — ゲームセッションキューでは、利用可能なホストリソースを検索し、試合の新しいゲームセッションをスタートします。キューの設定は、Amazon GameLift Servers が利用可能なホスティングリソースをどこで探すか、そしてマッチに最適なホストをどのように選択するかを決定します。

**カスタムコンポーネント**

以下のコンポーネントは、ゲームのアーキテクチャに基づいて実装する必要がある、完全な FlexMatch システムに必要な機能を網羅しています。
+ **マッチメーキング用のプレイヤーインターフェース** - このインターフェースにより、プレイヤーは試合に参加できます。少なくとも、クライアントマッチメーキングサービスコンポーネントを通じてマッチメーキングリクエストを開始し、マッチメーキングプロセスに必要なスキルレベルやレイテンシー データなどのプレイヤー固有のデータを提供します。
**注記**  
ベストプラクティスとして、FlexMatch サービスとの通信はゲームクライアントからではなく、バックエンドサービスを通じて行うべきです。
+ **クライアントマッチメーキングサービス** - このサービスは、プレイヤーインターフェースからのプレイヤー参加リクエストを受け取り、マッチメーキングリクエストを生成して FlexMatch サービスに送信します。処理中のリクエストについては、マッチメーキングイベントをモニタリングし、マッチメーキングステータスを追跡し、必要に応じてアクションを実行します。ゲームでのゲームセッションホスティングの管理方法によっては、このサービスはゲームセッションの接続情報をプレイヤーに返す場合があります。このコンポーネントは、 AWS SDK と Amazon GameLift Servers API を使用して FlexMatchサービスと通信します。
+ **マッチプレースメントサービス (スタンドアロンサービスとしての FlexMatch の場合のみ)** — このコンポーネントは、既存のゲームホスティングシステムと連携して、利用可能なホスティングリソースを見つけ、試合の新しいゲームセッションをスタートします。コンポーネントは、マッチメーキング結果を取得し、新しいゲームセッションのスタートに必要な情報 (試合内のすべてのプレイヤーのプレイヤー ID、属性、チーム割り当てなど) を抽出する必要があります。

# FlexMatch マッチメーキングプロセス
<a name="gamelift-match-howitworks"></a>

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

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

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

**ステップ 3: モデルを構築する**  
FlexMatch マッチメーカーは、プール内のすべてのチケットに対して次のプロセスを継続的に実行します。  

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

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

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

**ステップ 4: マッチメーキングの結果を報告する**  
受け入れ可能な試合が見つかると、一致したすべてのチケットが更新され、一致したチケットごとに成功したマッチメーキングイベントが生成されます。  
+ スタンドアロンサービスとしての FlexMatch: ゲームはマッチメーキングイベントで試合結果を受け取ります。結果データには、マッチングしたすべてのプレイヤーとそのチームの割り当てのリストが含まれます。試合リクエストにプレイヤーのレイテンシー情報が含まれている場合、結果には試合に最適な地理的位置が示されます。
+ FlexMatch Amazon GameLift Serversホスティングソリューションを使用する: ゲームセッション配置のために、一致結果が Amazon GameLift Serversキューに自動的に渡されます。マッチメーカーは、ゲームセッションの配置に使用されるキューを決定します。

**ステップ 5: マッチ用のゲームセッションを開始する**  
提案された試合が正常に形成されると、新しいゲームセッションが開始されます。ゲームサーバーは、試合のゲームセッションを設定する際に、プレイヤー ID やチーム割り当てなどのマッチメーキング結果データを使用できます。  
+ スタンドアロンサービスとしての FlexMatch: カスタムマッチプレースメントサービスは、正常なマッチメーキングイベントから試合結果データを取得し、試合に使用可能なホスティングリソースを割り当てるために既存のゲームセッションプレースメントシステムに接続します。ホスティングリソースが見つかると、マッチプレースメントサービスは既存のホスティングシステムと調整して、新しいゲームセッションをスタートし、接続情報を取得します。
+ FlexMatch Amazon GameLift Serversホスティングソリューションを使用する: ゲームセッションキューは、マッチングに最適なゲームサーバーを見つけます。キューの構成方法に応じて、ゲームセッションを最低コストのリソースで配置し、プレイヤーのレイテンシーが低い場所 (プレイヤーのレイテンシーデータが提供されている場合) を配置しようとします。ゲームセッションが正常に配置されると、Amazon GameLift Servers サービスは、マッチメーキング結果やその他のオプションのゲームデータを渡して、新しいゲームセッションをスタートするようにゲームサーバーに要求します。

**ステップ 6: プレイヤーをマッチに接続する**  
ゲームセッションが開始されると、プレイヤーはセッションに接続し、チームの割り当てをクレームし、ゲームプレイを開始します。  
+ スタンドアロンサービスとしての FlexMatch: ゲームは既存のゲームセッション管理システムを使用して、接続情報をプレイヤーに返します。
+ FlexMatch Amazon GameLift Serversホスティングソリューションを使用する: ゲームセッションの配置が成功すると、 はマッチングされたすべてのチケットをゲームセッション接続情報とプレイヤーセッション ID でFlexMatch更新します。