

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

# FlexMatch 对战过程


本主题描述了基本对战场景中的事件顺序，包括各种游戏组件与 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 更新所有匹配的门票。