Amazon GameLift
开发人员指南 (版本 )
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

游戏架构与 实时服务器

下图说明了使用 实时服务器 时 Amazon GameLift 托管游戏架构的关键组件。

游戏架构与 实时服务器

关键组件定义如下:

游戏客户端

要加入在 Amazon GameLift 上托管的游戏,您的游戏客户端必须首先找到可用的游戏会话。游戏客户端通过与 Amazon GameLift 服务进行通信来搜索现有游戏会话、请求对战或启动新游戏会话。此通信通过后端客户端服务完成,以便帮助游戏所有者保持其游戏服务器和托管资源的安全控制。客户端服务向 Amazon GameLift 服务发出请求,并作为响应接收游戏会话信息(包括连接详细信息),客户端服务将这些信息中继回游戏客户端。然后,游戏客户端使用此信息(通过实时客户端软件开发工具包)直接连接到游戏服务器。连接后,游戏客户端便可加入游戏并与游戏中的其他玩家交换游戏状态更新。绿色箭头表示游戏过程中游戏客户端和游戏服务器之间的直接连接。

客户端服务

后端客户端服务通过调用 AWS 软件开发工具包中的 Amazon GameLift 服务 API 来处理游戏客户端与 Amazon GameLift 服务之间的通信。客户端服务也可用于其他游戏特定任务,例如玩家身份验证和授权、库存或货币控制。例如,当玩家加入游戏时,游戏客户端可能会首先调用身份验证客户端服务来验证玩家的身份,并在通过验证后才向 Amazon GameLift 服务发送游戏会话请求。客户端服务从 Amazon GameLift 服务接收的相关信息(例如,连接详细信息)将中继回游戏客户端。

外部服务

您的游戏可以依赖外部服务,如用于验证订阅成员资格。如架构图所示,来自外部服务的信息可以不通过游戏客户端而传递到游戏服务器(通过客户端服务和 Amazon GameLift 服务)。

实时服务器

要托管游戏会话,您可创建为游戏配置的 实时服务器 队组。Realtime Server 取代了集成的成熟游戏服务器,而是改为运行脚本,您可以针对游戏进行定制并上传到 Amazon GameLift。Realtime Server 跟踪玩家与游戏会话的连接,并在玩家之间中继游戏数据,以保持每个玩家的游戏状态同步。它们还与 Amazon GameLift 服务进行通信,以开始新的游戏会话,验证新连接的玩家以及报告游戏会话、玩家连接和可用资源的状态。加入游戏时,游戏客户端在收到来自 Amazon GameLift 服务的连接详细信息后将直接连接到 Realtime Server。

Amazon GameLift 服务

Amazon GameLift 服务是一项核心服务,它部署和管理资源队组以托管 Realtime Server,协调游戏会话在可用资源中的布置方式,启动和停止游戏会话,以及跟踪游戏服务器运行状况和活动,以便在玩家流量波动时保持游戏可用性。设置和管理托管资源时,游戏所有者使用 AWS 软件开发工具包和 CLI 中的 Amazon GameLift 服务 API 上传游戏服务器生成包和脚本,创建和配置队组并管理队组容量。客户端服务通过调用 AWS 软件开发工具包中的 Amazon GameLift 服务 API 启动新游戏会话、请求对战以及将玩家放入游戏会话。

托管管理工具

AWS 软件开发工具包中的 Amazon GameLift 工具集为您提供了多种方式来配置您的游戏托管资源,扩展容量以满足玩家需求,监控当前资源状态以及跟踪游戏服务器性能和游戏及玩家活动的指标。此外,您还可以远程访问任一游戏服务器以进行故障排除。