请求玩家对战 - Amazon GameLift Servers

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

请求玩家对战

向游戏后端服务添加代码,以管理对FlexMatch媒人的配对请求。对于用于Amazon GameLift Servers托管的游戏和用作独立解决方案FlexMatch的游戏,请求FlexMatch配对的过程是相同的。FlexMatch

要创建配对请求,请执行以下操作:

调用 Amazon GameLift Servers API StartMatchmaking。每个请求都必须包含以下信息。

对战构建器

要用于请求的对战配置的名称。FlexMatch 将各个请求放置到指定对战构建器的池中,并将根据对战构建器的配置方式来处理请求。这包括强制施加时间限制,是否请求玩家接受匹配,在放置生成的游戏会话时使用哪个队列,等等。在 设计一个 FlexMatch 对战构建器 中了解有关对战构建器和规则集的更多信息。

票证 ID

分配给请求的唯一票证 ID。与请求相关的所有信息(包括事件和通知)都将引用票证 ID。

玩家数据

您要为其创建对战的玩家的列表。如果根据对战规则和延迟最低值,请求中的任意玩家不满足对战要求,则对战请求绝不会生成成功的对战。您可在一个对战请求中包括最多十位玩家。当一个请求中有多个玩家时,FlexMatch 尝试创建单个对战并将所有玩家分配到相同团队中(随机选择)。如果请求包含的玩家数太多,无法放在一个对战团队中,则对战请求失败。例如,如果您设置了对战构建器,以创建 2 对 2 对战(两个团队,每个团队两个玩家),您无法发送包含两个以上玩家的对战请求。

注意

一个玩家 (通过其玩家 ID 标识) 一次只能包括在一个有效对战请求中。在您为玩家创建新请求时,将自动取消任何具有相同玩家 ID 的有效对战票证。

对于每个列出的玩家,请提供以下数据:

  • 玩家 ID – 每个玩家必须具有一个唯一的玩家 ID,该 ID 由您生成。参见生成玩家 IDs

  • 玩家属性 – 如果所使用的对战构建器需要玩家属性,请求必须为每个玩家提供这些属性。必需的玩家属性在对战构建器的规则集中定义,同时还会指定属性的数据类型。玩家属性仅在规则集指定属性的默认值时是可选的。如果对战请求未提供所有玩家的必需玩家属性,对战请求可能永远无法成功。在建一个 FlexMatch 规则集FlexMatch规则集示例中了解有关对战构建器规则集和玩家属性的更多信息。

  • 玩家延迟 – 如果所使用的对战构建器有玩家延迟规则,请求必须报告每个玩家的延迟。玩家延迟数据是显示每个玩家的一个或多个值的列表。它表示对战构建器的队列中各个区域的玩家体验的延迟。如果请求中未包含延迟值,玩家将无法匹配,请求将失败。要获得准确的延迟测量值,请使用Amazon GameLift Servers的 UDP ping 信标。这些端点使您能够测量玩家设备和潜在托管位置之间的实际 UDP 网络延迟,从而比使用 ICMP ping 更准确地做出放置决策。有关使用 UDP ping 信标测量延迟的更多信息,请参阅 UDP ping 信标。

检索匹配请求详情

发送匹配请求后,您可以使用请求的票证 ID 致电DescribeMatchmaking查看请求详情。此调用将返回请求信息,包括当前状态。成功完成请求之后,票证还将包含游戏客户端连接到对战所需的信息。

取消配对请求

您可以随时使用请求的门票ID致电来取消StopMatchmaking配对请求。