Amazon GameLift 的工作原理
本主题介绍 Amazon GameLift 如何管理多人游戏服务器的专用主机并使其对玩家可用。它概述了核心功能的工作原理。
托管游戏服务器
利用 Amazon GameLift,您可以通过多种不同的方式托管游戏服务器:托管式 Amazon GameLift、Amazon GameLift FleetIQ 和 Amazon GameLift Anywhere。有关 Amazon GameLift FleetIQ 的更多信息,请参阅什么是 Amazon GameLift FleetIQ?
您可以设计一个适合游戏需求的实例集。有关设计实例集的更多信息,请参阅托管式实例集设计指南。
托管 Amazon GameLift
借助托管 Amazon GameLift,您可以将游戏服务器托管在 Amazon GameLift 虚拟计算资源(称为实例)上。通过创建实例实例集并将其部署到运行游戏服务器来设置托管资源。
Amazon GameLift Anywhere
借助 Amazon GameLift Anywhere,您可以在自己管理的计算机上托管游戏服务器。通过创建引用您的计算的 Anywhere 实例集来设置您的托管资源。
实例集别名
别名是可以在实例集之间进行传输的称号,从而方便地泛化实例集位置。使用别名,您可将游戏客户端从一个实例集切换到另一个实例集,而无需更改游戏客户端。您也可以创建指向内容的终端别名。
运行游戏会话
将游戏服务器构建部署到实例集并且 Amazon GameLift 在每个实例上启动游戏服务器进程后,实例集就可以托管游戏会话。当您的游戏客户端服务向后端服务或 Amazon GameLift 发送放置请求时,Amazon GameLift 会启动新的游戏会话。
游戏会话放置和 FleetIQ 算法
队列使用 FleetIQ 算法选择可用的游戏服务器托管新的游戏会话。游戏会话放置的关键组件是 Amazon GameLift 游戏会话队列。您可以为游戏会话队列分配队列一个实例集列表,该列表决定了队列可以将游戏会话放置在何处。有关游戏会话队列以及如何为您的游戏设计游戏会话队列的更多信息,请参阅设计游戏会话队列。
玩家与游戏的联系
作为游戏会话置放过程的一部分,队列或游戏会话提示选定的游戏服务器启动新的游戏会话。游戏服务器会对提示做出响应,并在准备好接受玩家连接时向 Amazon GameLift 报告。然后,Amazon GameLift 会向后端服务或游戏客户端服务提供连接信息。然后,游戏客户端使用此信息直接连接到游戏会话并开始游戏。
扩展实例集容量
当某个实例集激活并准备好托管游戏会话后,您可以调整实例集容量以满足玩家需求。我们建议您在所有新玩家快速找到游戏和超支闲置资源之间找到平衡。
Amazon GameLift 提供了一种高效的自动扩缩工具,您也可以手动设置实例集容量。有关更多信息,请参阅利用 Amazon GameLift 扩展游戏托管容量。
自动扩缩
Amazon GameLift 提供了两种自动扩缩方法:
其他扩展功能
-
游戏会话保护 – 防止托管活动的玩家的游戏会话在缩减事件期间被 Amazon GameLift 终止。
-
扩展限制 – 通过对实例集中的实例数设置最小和最大限制,控制总体实例使用情况。
-
暂停自动扩缩 – 在不更改或删除自动扩缩策略的情况下,在实例集位置级别暂停自动扩缩。
-
扩展指标 – 跟踪实例集的容量和扩展事件的历史记录。
监控 Amazon GameLift
在实例集设置完毕并开始运行后,Amazon GameLift 会收集各种信息,以帮助您监控已部署的游戏服务器的性能。此信息可用于优化资源使用、排除问题以及深入了解玩家在游戏中的活动情况。Amazon GameLift 收集以下信息:
-
实例集、位置、游戏会话和玩家会话详情
-
使用情况指标
-
服务器进程运行状况
-
游戏会话日志
有关在 Amazon GameLift 中监控的更多信息,请参阅监控 Amazon GameLift。
使用其他 AWS 资源
您的游戏服务器和应用程序可以与其他 AWS 资源通信。例如,您可能将一组 Web 服务用于玩家身份验证或社交网络。要让您的游戏服务器访问 AWS 账户管理的 AWS 资源,请明确允许 Amazon GameLift 访问您的 AWS 资源。
Amazon GameLift 提供了几个用于管理此类访问的选项。有关更多信息,请参阅与您的实例集中的其他 AWS 资源进行通信。