设计 FlexMatch 对战构建器 - Amazon GameLift
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

设计 FlexMatch 对战构建器

本主题提供有关如何设计适合您的游戏的对战构建器的指导。

配置基本对战构建器

对战构建器至少需要以下元素:

  • 规则集可确定对战团队的规模和范围并定义用于评估玩家是否参加对战的规则集。每个对战构建器均配置为使用一个规则集。请参阅 构建 FlexMatch 规则集FlexMatch 规则集示例

  • 通知目标接收所有对战事件通知。您需要设置一个 Amazon Simple Notification Service (SNS) 主题,然后将主题 ID 添加到对战构建器。有关设置通知的更多信息,请参阅设置 FlexMatch 事件通知

  • 请求超时可确定对战请求留在请求池中以及被评估为潜在对战游戏的时长。一旦请求超时,则无法进行对战,并将从池中删除。

  • 将 FlexMatch 与 GameLift 托管托管托管托管结合使用时,游戏会话队列查找用于托管对战游戏会话的最佳可用资源,并启动新的游戏会话。每个队列配置了一个 AWS 区域和资源类型 (包括 Spot 或按需实例) 列表,用于确定游戏会话的放置位置。有关队列的更多信息,请参阅使用多区域队列

为对战构建器选择一个 AWS 区域

确定您希望对战活动发生的位置,并在该区域中创建对战构建器(对战配置和规则集)。对战构建器的所有请求都将发送到该处票证池,在该处,将对可行对战游戏进行排序和评估。在进行对战游戏后,玩家可以定向到支持您的托管解决方案的任何位置的游戏会话。

为对战构建器选择 AWS 区域时,请考虑位置对其性能的影响以及如何优化目标玩家的对战体验。我们建议使用以下最佳实践:

  • 将对战构建器放置在靠近玩家的 AWS 区域中 — 和发送 FlexMatch 对战请求的客户端服务。这种方法可减少对战请求工作流的延迟影响,并使其更高效。

  • 如果您的游戏面向全球受众,请考虑在多个区域中创建对战构建器,并将对战请求路由到最靠近玩家的对战构建器。除了提高效率外,这会导致票证池与地理接近的玩家一起形成,这改进了对战构建器根据延迟要求匹配玩家的能力。

  • 将 FlexMatch 与 GameLift 托管托管托管托管结合使用时,请将您的对战构建器和它使用的游戏会话队列放在同一个 AWS 区域中。这有助于最大程度地减少对战构建器和队列之间的通信延迟。

资源 FlexMatchMatchmakingConfiguration 和 MatchmakingRuleSet 可放置在以下 支持的 AWS 区域中:GameLift美国东部(弗吉尼亚北部)、美国西部(俄勒冈)、欧洲中部(法兰克福)、欧洲西部(爱尔兰)、亚太地区东部(悉尼)和亚太地区亚太地区亚太地区太平洋(首尔和东京)。

添加可选元素

除了这些最低要求,您还可以为对战构建器配置以下附加选项。如果您将 FlexMatch 与 GameLift 托管解决方案结合使用,则会内置许多功能。如果您使用 FlexMatch 作为独立的对战服务,您可能需要在系统中构建这些功能。

玩家接受

您可以将对战构建器配置为要求为对战游戏选择的所有玩家必须接受参与游戏。如果您的系统需要接受,则必须给所有玩家提供接受或拒绝建议的对战游戏的选项。对战游戏必须收到建议对战游戏的所有玩家的接受信息,才能完成。如果任何玩家拒绝或未接受对战游戏,则会丢弃建议的对战游戏,并处理票证如下所示。票证中所有玩家接受对战游戏的票证将返回到对战池以继续处理。如果票证中至少有一个玩家拒绝了对战游戏或未能响应,则会置于失败状态,并且不再进行处理。玩家接受需要具有时间限制;所有玩家都必须在时间限制内接受建议的对战游戏才能继续对战。

回填模式

使用 FlexMatch 回填来在游戏会话的整个生命期让游戏会话始终有良好匹配的新玩家。在处理回填请求时,FlexMatch 使用与匹配原始玩家相同的对战构建器。您可以自定义回填票证的优先级以及新对战游戏的票证,从而将回填票证放入线的前端或末尾。这意味着,当新玩家进入对战池时,他们被放到现有游戏中的可能性高于或低于新形成游戏中的可能性。

无论游戏将 FlexMatch 与托管 GameLift 托管还是与其他托管解决方案一起使用,手动回填都可用。手动回填让您能够灵活地决定何时触发回填请求。例如,您可能希望仅在游戏的某些阶段或仅存在某些条件时添加新玩家。

自动回填仅适用于使用托管 GameLift 托管的游戏。启用此功能后,如果游戏会话从开放的玩家位置开始,GameLift 将开始自动生成它的回填请求。此功能允许您设置对战,以便为新游戏启动最少数量的玩家,然后在新玩家进入对战池时快速填充。您可以在游戏会话生命周期内随时关闭自动回填。

游戏属性

对于将 FlexMatch 与 GameLift 托管托管托管托管托管结合使用的游戏,您可以提供其他信息,以便在请求新的游戏会话时传递到游戏服务器。这是一种非常有用的方法,用于传递要为创建的对战游戏类型启动游戏会话所需的游戏模式配置。对战构建器创建的对战游戏的所有游戏会话都将收到一组相同的游戏属性。您可以通过创建不同的对战配置来改变游戏属性信息。

预留玩家位置

您可以指定为每个对战游戏预留的特定玩家位置,然后在日后占用这些位置。这可以通过配置对战配置的“额外玩家数量”属性完成。

自定义事件数据

使用此属性可在对战构建器的所有对战相关事件中包含一组自定义信息。此功能可用于跟踪您游戏独有的特定活动,包括跟踪对战构建器的性能。