Amazon GameLift FlexMatch 的工作原理 - Amazon GameLift
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

Amazon GameLift FlexMatch 的工作原理

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

您可以将 FlexMatch 用于使用 GameLift 托管托管的游戏或使用其他托管解决方案的游戏。在 GameLift 服务器(包括实时服务器)上托管的游戏使用集成的 GameLift 服务自动定位可用的游戏服务器并开始比赛的游戏会话。使用 FlexMatch 作为独立服务的游戏,包括 GameLift FleetIQ,必须与现有的托管系统协调,以分配主机资源并开始比赛的游戏会话。

有关为游戏设置 FlexMatch 的详细指导,请参阅开始使用 FlexMatch.

对战组件

FlexMatch 对战系统包括以下部分或全部组件。

GameLift 组件

这些是 GameLift 资源,用于控制 FlexMatch 服务如何为您的游戏执行匹配。它们是使用 GameLift 工具创建和维护的,包括控制台和AmazonCLI 或者,或者以编程方式使用Amazon适用于 GameLift 的 SDK。

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

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

  • GameLift 游戏会话队列(仅适用于带 GameLift 托管托管的 FlexMatch)— 游戏会话队列可查找可用的托管资源,并为对战游戏启动新的游戏会话。该队列的配置决定 GameLift 在何处查找可用托管资源,以及如何为对战选择最佳可用主机。

自定义组件

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

  • 用于匹配的玩家界面— 这个界面使玩家能够加入比赛。它至少通过客户匹配服务组件发起匹配请求,并根据匹配过程的需要提供玩家特定的数据,例如技能水平和延迟数据。

    注意

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

  • 客户对战服务— 此服务将从玩家界面输入玩家加入请求,生成匹配请求,然后将其发送到 FlexMatch 服务。对于处理中的请求,它监控配对活动,跟踪匹配状态,并根据需要采取行动。根据您管理游戏中的游戏会话托管方式,此服务可能会将游戏会话连接信息返回给玩家。此组件使用Amazon使用 GameLift API 的 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 托管解决方案:在成功放置游戏会话时,FlexMatch 将使用游戏会话连接信息和玩家会话 ID 更新所有匹配的票证。