> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 配對的運作方式

> 了解 PlayFab 配對迴圈：票證如何作為種子、依距離分數排名、根據佇列規則驗證，以及組成完整的比賽。

本文說明 PlayFab Matchmaking 如何評估票證、套用規則及組成比賽。了解配對程序有助於您設計能有效率地產生高品質比賽的佇列設定。

## 比賽組成概觀

當您將票證提交至佇列時，配對服務會將其與其他等候中的票證放在一起。服務會持續執行**配對迴圈**，嘗試將相容的票證組成比賽。以下是每個步驟發生的情況：

1. **移除過期的票證。** 超過其 `GiveUpAfterSeconds` 逾時的票證會被取消。
2. **依等候時間排序票證：** 等候最久的票證會成為可能比賽的**種子**，也就是起點。
3. **依相容性為候選票證排名：** 其餘每張票證都會根據佇列的規則，依其屬性與種子票證的吻合程度獲得**距離分數**。
4. **以貪婪方式建立群組：** 從最接近的候選票證開始，一次將一張票證加入群組，最多達到 `MaxMatchSize`。
5. **驗證每次新增：** 新增票證時，每個規則都會檢查候選票證是否仍與目前的群組相容。如果有任何規則拒絕，就會略過該候選票證。
6. **驗證完整的群組：** 一旦群組達到至少 `MinMatchSize`，最後的驗證階段會確認群組符合所有規則。如果通過，就會建立比賽。
7. **回溯：** 如果無法組成有效的群組，服務會移除最後新增的票證，並嘗試下一個候選票證。此程序會在放棄目前的種子之前探索其他的分組方式。

接著，服務會移至下一張等候最久的票證作為新種子，並重複此程序。

<Note>
  此演算法會優先處理等候最久的票證。此優先順序可確保等候最久的玩家最先獲得比賽。
</Note>

## 規則如何影響配對

在比賽組成期間，規則有兩個用途：**篩選**和**排序**。

### 篩選

規則可以阻止票證加入群組。例如，針對遊戲組建版本的 `StringEqualityRule` 會拒絕任何組建與群組組建不符的票證。配對服務每次考慮候選票證時都會檢查篩選條件，而不只是在開始時檢查一次。

### 排序 (距離)

規則也會提供**距離分數**，決定先嘗試哪些候選票證。距離越低表示相容性越高。

* 屬性值完全相同的票證，距離分數通常為 **0**。
* 位於規則允許範圍邊緣的票證，距離分數接近 **1**。
* 超出允許範圍的票證會被篩除 (實際上為無限距離)。

當佇列有多個規則時，每個規則的距離會乘以其[權數](/zh-TW/services/playfab/multiplayer/matchmaking/config-queues)並加總。票證會依總距離由低至高的順序嘗試，因此會先嘗試相容性最高的候選票證。

<Tip>
  使用規則權數來表示相對重要性。例如，如果技能相似度比區域偏好更重要，請為技能規則指定較高的權數。
</Tip>

### 驗證

有些限制只能在組成完整群組後才能檢查。例如，隊伍平衡規則 (`TeamDifferenceRule`、`TeamSizeBalanceRule`) 需要看到完整的群組，才能評估隊伍是否平衡。這些規則會作為最後的驗證步驟執行。

## 擴充與放寬

當票證等候時，規則會**放寬**其限制以擴大搜尋範圍。有兩種機制可控制此程序：

* **擴充**：規則會隨時間逐步調整其閾值。例如，技能閾值為 0.2 的 `DifferenceRule` 可能每 5 秒擴充 0.1，最終允許 0.5 的差異。
* **變成選用前的秒數**：經過設定的時間後，規則會完全停止篩選。規則仍會參與排序 (距離)，但不再阻止比賽。

擴充一律是**以時間為基礎**。它會根據票證已等候的時間，一致地套用至所有票證。等候較久的票證自然會達到更廣的擴充階段，並能與更廣泛的候選票證群配對。

<Note>
  放寬並不表示忽略比賽品質。即使規則變成選用，它仍會在排序步驟中提供距離。符合規則的候選票證會比不符合的候選票證先被嘗試。
</Note>

如需設定擴充的詳細資訊，請參閱[設定配對佇列](/zh-TW/services/playfab/multiplayer/matchmaking/config-queues)。

## 調整規模與分割

當佇列收到大量票證時，服務會將票證**分割**成可獨立評估的群組。分割會使用自然區分群體的規則屬性。例如，針對遊戲模式的 `StringEqualityRule` 會建立清楚的分割界限。

隨著負載降低，分割區會重新合併。此程序可讓服務擁有更大的候選票證池，並改善比賽品質。

如需設計能良好調整規模之佇列的詳細資訊，請參閱[配對規模調整](/zh-TW/services/playfab/multiplayer/matchmaking/matchmaking-partition)。

## 針對不對稱偏好進行設計

有些配對案例涉及不對稱的偏好，也就是玩家 A 願意與玩家 B 配對，但玩家 B 不願意與玩家 A 配對。跨平台遊玩設定是最常見的範例。如需建議的設定模式和實作範例，請參閱[處理不對稱的跨平台遊玩偏好](/zh-TW/services/playfab/multiplayer/matchmaking/config-examples#handling-asymmetric-cross-play-preferences)。

## 另請參閱

* [設定配對佇列](/zh-TW/services/playfab/multiplayer/matchmaking/config-queues)
* [配對案例與設定範例](/zh-TW/services/playfab/multiplayer/matchmaking/config-examples)
* [配對規模調整](/zh-TW/services/playfab/multiplayer/matchmaking/matchmaking-partition)


## Related topics

- [配對](/zh-TW/services/playfab/multiplayer/matchmaking/index.md)
- [了解 PlayFab Party 聊天的運作方式](/zh-TW/services/playfab/community/voice-communications/concepts-chat.md)
- [了解配對中的規則權數](/zh-TW/services/playfab/multiplayer/matchmaking/rule-weights.md)
- [多人遊戲工作階段瀏覽](/zh-TW/services/xbox-services/multiplayer/concepts/live-session-browse.md)
- [Playtest 概觀](/zh-TW/publishing/game-publishing/concepts/playtest.md)
