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

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

亚马逊是如何GameLiftFlexMatch运作的

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

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

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

配对组件

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

亚马逊GameLift组件

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

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

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

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

自定义组件

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

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

    注意

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

  • 客户配对服务 —此服务从玩家界面接收玩家加入请求,生成配对请求,然后将其发送到FlexMatch服务。对于处理中的请求,它会监控配对事件,跟踪配对状态,并根据需要采取行动。根据您在游戏中管理游戏会话托管的方式,此服务可能会将游戏会话连接信息返回给玩家。此组件使用带有 Amazon 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服务会提示游戏服务器启动新的游戏会话,传递配对结果和其他可选游戏数据。

将玩家与比赛联系起来

游戏会话开始后,玩家连接到会话,领取队伍任务,然后开始游戏。

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

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