

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 如何Amazon GameLift Servers FlexMatch運作
<a name="gamelift-match"></a>

本主題提供 Amazon GameLift ServersFlexMatch服務的概觀，包括FlexMatch系統的核心元件及其互動方式。

您可以FlexMatch搭配使用Amazon GameLift Servers受管託管的遊戲使用 ，或是搭配使用其他託管解決方案的遊戲使用 。託管在 上的遊戲Amazon GameLift Servers，包括Amazon GameLift Servers Realtime，使用整合Amazon GameLift Servers服務來自動尋找可用的遊戲伺服器，並為配對啟動遊戲工作階段。使用 FlexMatch做為獨立服務的遊戲，包括 Amazon GameLift Servers FleetIQ，必須與現有的託管系統協調，為配對指派託管資源並啟動遊戲工作階段。

如需FlexMatch設定遊戲的詳細指引，請參閱 [FlexMatch 入門](match-getting-started.md)。

## 配對元件
<a name="gamelift-match-components"></a>

FlexMatch 配對系統包含以下部分或全部元件。

**Amazon GameLift Servers 元件**

這些Amazon GameLift Servers資源可控制FlexMatch服務如何為您的遊戲執行配對。它們是使用 Amazon GameLift Servers工具建立和維護，包括 主控台和 AWS CLI，或者，以程式設計方式使用適用於 的 AWS SDKAmazon GameLift Servers。
+ **FlexMatch 配對組態 （也稱為配對建構器）** – 配對建構器是一組組態值，可自訂遊戲的配對程序。遊戲可以有多個配對建構器，每個配對建構器會視需要針對不同的遊戲模式或體驗進行設定。當您的遊戲將配對請求傳送至 時FlexMatch，它會指定要使用的配對建構器。
+ **FlexMatch 配對規則集** – 規則集包含評估玩家潛在配對以及核准或拒絕所需的所有資訊。規則集會定義配對的團隊結構、宣告用於評估的玩家屬性，並提供描述可接受配對條件的規則。規則可以套用到個別玩家、隊伍或整個配對。例如，規則可能需要配對中的每個玩家都選擇相同的遊戲地圖，或者可能需要所有隊伍都有類似的玩家技能平均值。
+ **Amazon GameLift Servers 遊戲工作階段佇列 （僅限FlexMatch具有Amazon GameLift Servers受管託管的 )** – 遊戲工作階段佇列會尋找可用的託管資源，並為配對啟動新的遊戲工作階段。佇列的組態會決定在何處Amazon GameLift Servers尋找可用的託管資源，以及如何為配對選取最佳的可用主機。

**自訂元件**

下列元件包含完整FlexMatch系統所需的功能，您必須根據遊戲的架構實作這些功能。
+ **配對的玩家界面** – 此界面可讓玩家加入配對。它至少會透過用戶端配對服務元件啟動配對請求，並視需要提供玩家特定的資料，例如技能水準和延遲資料。
**注意**  
最佳實務是，與 FlexMatch服務的通訊應該由後端服務完成，而不是從遊戲用戶端完成。
+ **用戶端配對服務** – 此服務會從玩家界面將玩家聯結請求建立欄位、產生配對請求，並將請求傳送至FlexMatch服務。對於處理中的請求，它會監控配對事件、追蹤配對狀態，並視需要採取行動。視您在遊戲中管理遊戲工作階段託管的方式而定，此服務可能會將遊戲工作階段連線資訊傳回給玩家。此元件使用 AWS SDK 搭配 Amazon GameLift Servers API 來與服務通訊FlexMatch。
+ **配對置放服務 （僅適用於 FlexMatch做為獨立服務）** – 此元件可與現有的遊戲託管系統搭配使用，以尋找可用的託管資源，並為配對啟動新的遊戲工作階段。元件必須取得配對結果，並擷取啟動新遊戲工作階段所需的資訊，包括配對中所有玩家的玩家 IDs、屬性和隊伍指派。

# FlexMatch 配對程序
<a name="gamelift-match-howitworks"></a>

本主題說明基本配對案例中的事件順序，包括各種遊戲元件與 FlexMatch服務之間的互動。

**步驟 1：為玩家請求配對**  
使用遊戲用戶端的玩家按一下「加入遊戲」按鈕。此動作會導致您的用戶端配對服務將配對請求傳送至 FlexMatch。請求會識別滿足請求時要使用的FlexMatch配對建構器。請求也包含自訂配對建構器所需的玩家資訊，例如技能水準、播放偏好設定或地理延遲資料。您可以對一個玩家或多個玩家提出配對請求。

**步驟 2：將請求新增至配對集區**  
當 FlexMatch收到配對請求時，會產生配對票證，並將其新增至配對建構器的票證集區。票證會保留在集區中，直到相符或達到時間上限為止。您的用戶端配對服務會定期收到配對事件的通知，包括票證狀態的變更。

**步驟 3：建立配對**  
您的FlexMatch配對建構器會持續在其集區中的所有票證上執行下列程序：  

1. 配對建構器會依票證存留期排序集區，然後開始從最舊的票證開始建置潛在的配對。

1. 配對建構器會將第二個票證新增至潛在配對，並根據自訂配對規則評估結果。如果潛在配對通過評估，票證的玩家會指派給團隊。

1. 配對建構器會依序新增下一個票證，並重複評估程序。當所有玩家位置都填滿後，配對就會準備就緒。
大型配對的配對 (41 到 200 名玩家） 使用上述程序的修改版本，以便在合理的時間範圍內建置配對。配對建構器不會個別評估每個票證，而是將預先排序的票證集區分成潛在配對，然後根據您指定的玩家特性來平衡每個配對。例如，配對建構器可能會根據類似的低延遲位置預先排序票證，然後使用配對後平衡來確保隊伍平均地符合玩家技能。

**步驟 4：報告配對結果**  
找到可接受的相符項目時，所有相符的票證都會更新，並為每個相符的票證產生成功的配對事件。  
+ FlexMatch 作為獨立服務：您的遊戲會收到成功配對事件的配對結果。結果資料包含所有配對玩家及其團隊指派的清單。如果您的配對請求包含玩家延遲資訊，結果也會建議配對的最佳地理位置。
+ FlexMatch 使用Amazon GameLift Servers託管解決方案：比對結果會自動傳遞至 Amazon GameLift Servers佇列以進行遊戲工作階段放置。配對建構器會決定用於遊戲工作階段置放的佇列。

**步驟 5：啟動配對的遊戲工作階段**  
成功形成提議的配對後，就會啟動新的遊戲工作階段。設定配對的遊戲工作階段時，您的遊戲伺服器必須能夠使用配對結果資料，包括玩家 IDs 和團隊指派。  
+ FlexMatch 作為獨立服務：您的自訂配對置放服務會從成功的配對事件取得配對結果資料，並連接到現有的遊戲工作階段置放系統，以尋找配對的可用託管資源。找到託管資源後，配對置放服務會與您現有的託管系統協調，以啟動新的遊戲工作階段並取得連線資訊。
+ FlexMatch 使用Amazon GameLift Servers託管解決方案：遊戲工作階段佇列會尋找配對的最佳可用遊戲伺服器。根據佇列的設定方式，它會嘗試將遊戲工作階段放置在成本最低的資源，以及玩家會遇到低延遲的位置 （如果提供玩家延遲資料）。遊戲工作階段成功放置後，Amazon GameLift Servers服務會提示遊戲伺服器啟動新的遊戲工作階段，傳遞配對結果和其他選用的遊戲資料。

**步驟 6：將玩家連接到配對**  
遊戲工作階段開始後，玩家會連線至工作階段、宣告其團隊指派，並開始遊戲。  
+ FlexMatch 作為獨立服務：您的遊戲使用現有的遊戲工作階段管理系統，將連線資訊傳回給玩家。
+ FlexMatch 使用Amazon GameLift Servers託管解決方案：在成功的遊戲工作階段放置上， 會使用遊戲工作階段連線資訊和玩家工作階段 ID FlexMatch更新所有相符的票證。