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

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

GameLift 工作原理

本主题概述了 GameLift 托管解决方案。概述涵盖了游戏托管的核心组件,并描述了如何 GameLift 让玩家可以使用您的多人游戏服务器。

准备好托管游戏了 GameLift吗? 退房开始使用 Amazon GameLift

关键组件

设置 GameLift 托管游戏需要使用以下组件。中的图表带托管的游戏架构 GameLift可视化了这些组件之间的关系。

  • 游戏服务器是在舰队上运行的游戏服务器软件。您将游戏服务器版本脚本上传到 GameLift 并告诉 GameLift. 当你使用 GameLift Anywhere或 GameLift FleetIQ 时,你可以将你的游戏服务器版本直接上传到你的硬件上。

  • 游戏会话是你正在与玩家一起玩的游戏。您定义游戏会话的基本特征,例如它的生命期和玩家数。然后,玩家连接到游戏服务器以加入游戏会话。

  • 游戏客户端是指玩家设备上运行的游戏软件。游戏客户端根据其从中接收的连接信息,通过后端服务连接到游戏服务器以加入游戏会话 GameLift。

  • 后端服务是额外的自定义服务,用于处理与之相关的任务 GameLift。作为最佳实践,您的后端服务应处理与的所有游戏客户端通信 GameLift。

托管游戏服务器

使用 GameLift,您可以通过三种不同的方式托管游戏服务器:托管 GameLift、 GameLift FleetIQ 和 GameLift Anywhere。托管 GameLift , GameLift Anywhere两者都使用 GameLift 舰队来管理您的游戏服务器。有关 GameLift FleetIQ 的更多信息,请参阅什么是 GameLift fleetIQ?

您可以设计一个适合游戏需求的队组。有关机群设计的更多信息,请参阅GameLift 舰队设计指南

托管 GameLift

借助托管 GameLift,您可以在 GameLift 虚拟计算资源(称为实例)上托管游戏服务器。通过创建一组实例并部署它们运行您的游戏服务器来设置您的托管资源。

GameLift Anywhere

使用 GameLift Anywhere,您可以在自己管理的硬件上托管游戏服务器。通过创建引用您的硬件的Anywhere队列来设置您的托管资源。您可以在Anywhere机队中使用队列和监控等 GameLift FlexMatch工具。

队组别名

别名是可以在舰队之间转移的名称,这使其成为获得通用舰队位置的便捷方式。您可以使用别名将游戏客户端从使用一支舰队切换到另一支舰队,而无需更改游戏客户端。你也可以创建终端别名,这样你就可以指向内容,而不是连接到服务器。您可以使用别名在托管和Anywhere队列之间进行传输。

正在运行游戏会话

将游戏服务器代码部署到队列并在每个实例上 GameLift 启动游戏服务器进程后,舰队可以托管游戏会话。 GameLift 当您的游戏客户端服务向后端服务或发送放置请求时,启动新的游戏会话 GameLift。

游戏会话布局和 FleetIQ 算法

游戏会话置放工作原理,即托管游戏服务器服务器以托管新游戏会话。游戏会话放置的关键组件是 GameLift游戏会话队列

您可以为游戏会话队列分配舰队列表,该列表决定队列可以在哪里放置游戏会话。作为最佳实践,您的队列的队列应因队列类型、位置和实例类型而异。这种多样性为队列提供了更大的灵活性,可以在对玩家最有意义的地方进行放置。有关游戏会话队列以及如何为您的游戏设计它们的更多信息,请参阅设计游戏会话队列

队列使用一种名为 FleetIQ 的算法来寻找每个游戏会话请求的最佳位置。FleetIQ 算法根据低玩家延迟、托管成本、地理位置或其他舰队特征,优先搜索可用的游戏服务器。有关 FleetIQ 的更多信息,请参阅 GameLift 队列的工作原理

玩家与游戏的联系

作为游戏会话置放过程的一部分,队列提示所选游戏服务器启动新的游戏会话。游戏服务器对提示做出响应,并在准备好接受玩家连接 GameLift 时向其报告。 GameLift 然后将连接信息作为 IP 地址或 DNS 名称以及端口传送到后端服务或游戏客户端服务。您的游戏客户端使用这些信息直接连接到游戏会话并开始游戏。

扩展队组容量

当舰队处于活动状态并准备好举办游戏会话时,您可以调整舰队容量以满足玩家的需求。您使用的容量决定了托管成本。我们建议您在所有新玩家快速找到游戏和超支闲置资源之间找到平衡。

您可以通过调整队组中的实例数量来扩展队组。通过扩展实例,您可以增加或减少游戏会话和玩家的可用性。对于在多个地点具有实例的队列,您可以按位置而不是整个队列调整容量。

GameLift 提供了一种高效的auto 缩放工具。您也可以选择手动设置机队容量。有关更多信息,请参阅扩展 GameLift 托管容量

Auto Scaling

启用auto 扩展后, GameLift 跟踪队列的托管指标,并根据您定义的准则确定何时添加或删除实例。 GameLift 可以根据玩家需求的变化直接调整容量。有关通过auto 扩展提高成本效率的信息,请参阅亚马逊 GameLift 定价

GameLift 提供了两种auto 缩放方法:

其他扩展功能
  • 游戏会话保护 — GameLift 防止在缩小规模活动期间结束接待活跃玩家的游戏会话。

  • 扩展限制-通过设置队列中实例数量的最小和最大限制来控制整体实例使用量。

  • 暂停auto 扩展-在队列位置级别暂停auto 扩展,无需更改或删除您的auto 扩展策略。

  • 扩展指标-跟踪机队的容量和扩展事件的历史记录。

监控 GameLift

当舰队启动并运行时, GameLift 会收集各种信息,以帮助您监控已部署的游戏服务器的性能。您可以使用这些信息来优化资源使用、解决问题并深入了解玩家在游戏中的活跃程度。 GameLift 收集以下内容:

  • 舰队、地点、游戏会话和玩家会话详情

  • 使用情况指标

  • 服务器进程运行状况

  • 游戏会话日志

有关监控的更多信息 GameLift,请参阅监控亚马逊 GameLift

使用其他Amazon资源

您的游戏服务器和应用程序可以与其他Amazon资源通信。例如,您可以使用一组 Web 服务进行玩家身份验证或社交网络。为了让您的游戏服务器访问您Amazon Web Services 账户管理的Amazon资源,请明确 GameLift 允许访问您的Amazon资源。

GameLift 为管理此类访问提供了几个选项。有关更多信息,请参阅 与舰队中的其他Amazon资源通信