亚马逊是如何 GameLift FlexMatch 运作的 - 亚马逊 GameLift
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

亚马逊是如何 GameLift FlexMatch 运作的

本主题概述了 Amazon GameLift FlexMatch 服务,包括 FlexMatch 系统的核心组件及其交互方式。

您可以 FlexMatch 与使用亚马逊托管托 GameLift 管的游戏或使用其他托管解决方案的游戏一起使用。托管在亚马逊 GameLift 服务器上的游戏,包括实时服务器,使用集成的亚马逊 GameLift 服务自动找到可用的游戏服务器并为比赛启动游戏会话。用 FlexMatch 作独立服务的游戏,包括 Amazon GameLift FleetIQ,必须与现有托管系统协调以分配托管资源并为比赛启动游戏会话。

有关游戏设置 FlexMatch 的详细指南,请参阅入 FlexMatch

配对组件

FlexMatch 配对系统包括以下部分或全部组件.

亚马逊 GameLift 组件

这些是亚马逊 GameLift 资源,用于控制 FlexMatch 服务如何为您的游戏进行配对。它们是使用亚马逊 GameLift 工具(包括控制台和Amazon CLI)创建和维护的,或者使用亚马逊的Amazon SDK 以编程方式创建和维护 GameLift。

  • FlexMatch 配对配置 (也称为媒人) —匹配器是一组配置值,用于自定义游戏的配对过程. 一个游戏可以有多个媒人,每个配对器都根据需要配置不同的游戏模式或体验。当您的游戏向发送配对请求时 FlexMatch,它会指定要使用哪个媒人。

  • FlexMatch 配对规则集 —规则集包含评估玩家潜在比赛以及批准或拒绝所需的所有信息. 规则集定义比赛的球队结构,声明用于评估的球员属性,并提供描述可接受比赛标准的规则。规则可以适用于单个玩家、球队或整场比赛。例如,规则可能要求比赛中的每位玩家选择相同的游戏地图,或者可能要求所有队伍的球员平均技能相似。

  • 亚马逊 GameLift 游戏会话队列(仅适用于 FlexMatch 亚马逊托 GameLift 管主机)— 游戏会话队列会找到可用的托管资源并为比赛启动新的游戏会话。队列的配置决定了亚马逊在哪里 GameLift 寻找可用的托管资源以及如何为比赛选择最佳可用主机。

自定义组

以下组件包含完整 FlexMatch 系统所需的功能,您必须根据游戏架构实现这些功能。

  • 用于配对的玩家界面—此界面使玩家可以参加比赛. 它至少通过客户端配对服务组件启动配对请求,并根据配对过程的需要提供玩家特定的数据,例如技能等级和延迟数据。

    注意

    作为最佳实践,与 FlexMatch 服务的通信应由后端服务完成,而不是来自游戏客户端。

  • 客户配对服务 — 该服务接收来自玩家界面的玩家加入请求,生成配对请求并将其发送到 FlexMatch 服务。对于正在处理的请求,它会监控配对事件,跟踪配对状态,并根据需要采取行动。根据您在游戏中管理游戏会话托管的方式,此服务可能会将游戏会话连接信息返回给玩家。此组件使用带有亚马逊 GameLift API 的Amazon SDK 与该 FlexMatch 服务进行通信。

  • 比赛投放服务(仅限 FlexMatch 作为独立服务)— 此组件可与您现有的游戏托管系统配合使用,以查找可用的托管资源并启动新的比赛会话进行比赛。组件必须获得配对结果并提取开始新游戏会话所需的信息,包括比赛中所有玩家的玩家 ID、属性和队伍分配。

FlexMatch 配对过程

本主题描述了基本的配对场景以及各种游戏组件与 FlexMatch 服务之间的交互.

要求为玩家配对

使用您的游戏客户端的玩家单击 “加入游戏” 按钮。此操作会导致您的客户配对服务将配对请求发送给 FlexMatch. 该请求确定了满足请求时要使用的 FlexMatch 媒人. 该请求还包括您的自定义匹配器所需的玩家信息,例如技能等级、游戏偏好或地理延迟数据。您可以为一个或多个玩家提出配对请求。

将请求添加到配对池

FlexMatch 收到配对请求时,它会生成配对票证并将其添加到媒人的票池中。彩票将一直留在池中,直到匹配或达到最大时限。您的客户配对服务会定期收到有关配对活动的通知,包括门票状态的变化。

构建

您的 FlexMatch 媒人会持续对其池中的所有门票执行以下流程:

  1. 媒人按门票年龄对彩池进行排序,然后从最老的门票开始构建一场潜在的比赛。

  2. 媒人为潜在的比赛添加第二张门票,并根据您的自定义配对规则评估结果. 如果潜在比赛通过评估,则彩票的玩家将被分配到一支球队。

  3. 媒人按顺序添加下一张票并重复评估过程。当所有玩家的空位都填满后,比赛就准备好了。

大型比赛(41至200名玩家)的配对使用上述流程的修改版本,因此可以在合理的时间范围内进行比赛。匹配器不是单独评估每张彩票,而是将预先排序的彩票池分成潜在的对局,然后根据你指定的玩家特征平衡每场比赛。例如,媒人可能会根据相似的低延迟位置对门票进行预先排序,然后使用赛后平衡来确保队伍在玩家技能上均衡匹配。

报告配对结果

找到可接受的匹配项后,将更新所有匹配的票证,并为每张匹配的票证生成成功的配对事件。

  • FlexMatch 作为独立服务:您的游戏在成功的配对活动中收到比赛结果. 结果数据包括所有匹配的球员及其队伍分配的列表。如果您的比赛请求包含玩家延迟信息,则结果还会建议比赛的最佳地理位置。

  • FlexMatch 使用亚马逊 GameLift 托管解决方案:比赛结果会自动传递到亚马逊 GameLift 队列以进行游戏会话投放。匹配器决定游戏会话置放通知。

开始比赛的游戏会话

成功组建一场拟议的比赛后,新的游戏会话就开始了。在为比赛设置游戏会话时,你的游戏服务器必须能够使用配对结果数据,包括玩家 ID 和队伍分配。

  • FlexMatch 作为独立服务:您的自定义比赛投放服务从成功的配对活动中获取比赛结果数据,并连接到您现有的游戏会话放置系统以找到比赛的可用托管资源。找到托管资源后,比赛投放服务会与您现有的托管系统进行协调,以启动新的游戏会话并获取连接信息。

  • FlexMatch 使用亚马逊 GameLift 托管解决方案:游戏会话队列为比赛找到可用的最佳游戏服务器。根据队列的配置方式,它会尝试将游戏会话置于成本最低的资源以及玩家将体验低延迟的地方(如果提供了玩家延迟数据)。成功启动游戏会话后,亚马逊 GameLift 服务会提示游戏服务器开始新的游戏会话,传递配对结果和其他可选的游戏数据。

Connect 玩家参与比赛

游戏会话开始后,玩家会连接到会话,申领队伍分配,然后开始游戏。

  • FlexMatch 作为独立服务:您的游戏使用现有的游戏会话管理系统向玩家提供连接信息。

  • FlexMatch 使用亚马逊 GameLift 托管解决方案:成功放置游戏会话后,使用游戏会话连接信息和玩家会话 ID FlexMatch 更新所有匹配的门票。