

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 设计 FlexMatch 对战构建器
<a name="match-configuration"></a>

本主题提供有关如何设计适合您游戏的对战构建器的指导.

**Topics**
+ [配置一个对战构建器。](#match-configuration-elements)
+ [为对战构建器选择一个区域](match-configuration-regions.md)
+ [添加可选元素](match-configuration-options.md)

## 配置一个对战构建器。
<a name="match-configuration-elements"></a>

对战构建器至少需要具备三个元素：
+ **规则集**可确定对战团队的规模和范围并定义用于评估玩家是否参加对战的规则集。每个对战构建器均配置为使用一个规则集。请参阅[构建 FlexMatch 规则集](match-rulesets.md)和[FlexMatch 规则集示例](match-examples.md)。
+ **通知目标**接收所有对战事件通知。您需要设置 Amazon Simple Notification Service (SNS) 主题，然后将主题ID添加到对战构建器中。有关设置通知的更多信息，请参阅[设置 FlexMatch 事件通知](match-notification.md)。
+ **请求超时**可确定对战请求留在请求池中以及被评估为潜在对战游戏的时长。一旦请求超时，则无法进行对战，并将从池中删除。
+ 将 FlexMatch 与 Amazon GameLift Servers 托管式托管资源配合使用时，**游戏会话队列**会找到最佳可用资源来托管对战的游戏会话，然后开始新的游戏会话。每个队列都配置了一系列位置和资源类型（包括竞价型实例或按需型实例），用于确定游戏会话的放置位置。有关队列的更多信息，请参阅[使用多位置队列](https://docs.aws.amazon.com/gamelift/latest/developerguide/queues-intro.html)。

# 为对战构建器选择一个区域
<a name="match-configuration-regions"></a>

确定您希望进行对战活动的位置，并在该位置创建对战配置和规则集。Amazon GameLift Servers 会为您的游戏对战请求维护票证池，并在其中对这些请求进行排序和评估是否有可行的匹配。匹配完成后，Amazon GameLift Servers 会发送对战详细信息，以便放置游戏会话。您可以在托管解决方案支持的任何位置运行匹配的游戏会话。

请参阅[FlexMatch 支持的 AWS 区域](match-regions.md)，了解可以创建 FlexMatch 资源的位置。

在 AWS 区域 为你的媒人选择比赛时，要考虑位置会如何影响表现，以及它如何优化玩家的比赛体验。我们建议您遵循以下最佳实操：
+ 将对战构建器放置在离您的玩家和发送 FlexMatch 对战请求的客户端服务很近的位置。这种方法可以减少对对战请求工作流程的延迟影响，并提高其效率。
+ 如果您的游戏吸引了全球观众，可以考虑在多个位置创建对战构建器，并将匹配请求发送给离玩家最近的对战构建器。除了提高效率外，这还会导致在地理位置上彼此靠近的玩家形成票证池，从而提高了对战构建器根据延迟要求匹配玩家的能力。
+ 将 FlexMatch 与 Amazon GameLift Servers 托管式托管资源配合使用时，请将您的对战构建器及其使用的游戏会话队列放在同一位置。这有助于最大程度地减少对战构建器和队列之间的通信延迟。

# 添加可选元素
<a name="match-configuration-options"></a>

除了这些最低要求，您还可以为对战构建器配置以下附加选项。如果您与Amazon GameLift Servers托管解决方案FlexMatch一起使用，则内置了许多功能。如果您使用 FlexMatch 作为独立的对战服务，则可能需要在系统中内置这些功能。

**玩家接受**  
您可以将对战构建器配置为要求选定参加对战的所有玩家都必须接受参与游戏。如果要求玩家接受，所有玩家都必须选择接受或拒绝建议的对战游戏。对战游戏必须收到建议对战游戏的所有玩家的接受信息，才能完成。如果任何玩家拒绝或未接受对战游戏，将会丢弃建议的对战游戏。对于所有玩家都接受对战游戏的票证，系统会将其状态返回到池中以继续处理。至少有一名玩家拒绝对战或未能回复的票证将进入失败状态，不再处理。玩家接受需要设置时间限制，您可以定义此限制；所有玩家都必须在限制时间内接受建议的对战游戏才能继续对战。

**回填模式**  
FlexMatch 回填非常实用，可以在游戏会话的整个生命周期内，让游戏会话始终有良好匹配的新玩家。在处理回填请求时，FlexMatch 使用与匹配原始玩家相同的对战构建器和相同的过程来查找新玩家。您可以使用新对战的票证自定义回填票证的优先顺序，将回填票证放在排队的前面或末端。这意味着，当新玩家进入对战池时，他们被放置在现有游戏中的可能性大于或小于在新组建的游戏中。

无论您的游戏在托管式 Amazon GameLift Servers 托管上使用 FlexMatch 还是与其他托管解决方案搭配使用 FlexMatch，都可以进行手动回填。手动回填让您能够灵活地决定何时触发回填请求。例如，您可能不希望在游戏的某些阶段或仅存在某些条件时添加新玩家。

自动回填仅适用于使用托管式 Amazon GameLift Servers 托管的游戏。启用此功能后，如果游戏会话以开放的玩家席位开始，Amazon GameLift Servers 会开始自动为其生成回填请求。此功能允许您设置对战，以便以最少的玩家人数开始新游戏，然后在新玩家进入对战池时快速填满。在游戏会话生命周期内，您可以随时关闭自动回填功能。

**游戏属性**  
对于使用 FlexMatch 和 Amazon GameLift Servers 托管式托管的游戏，您可以提供其他信息，以便在请求新的游戏会话时传递给游戏服务器。这可能是传递游戏模式配置的有用方法，这些配置是为正在创建的匹配类型启动游戏会话所必需的。由对战构建器创建的对战的所有游戏会话都将获得相同的游戏属性集。您可以通过创建不同的对战配置来更改游戏属性信息。

**预留玩家位置**  
您可以指定为每个对战游戏预留的特定玩家位置，然后在日后占用这些位置。这可以通过配置对战配置的“额外玩家数量”属性完成。

**自定义事件数据**  
使用此属性可在对战构建器的所有对战相关事件中包含一组自定义信息。此功能可用于跟踪您游戏独有的特定活动，包括跟踪对战构建器的性能。