托管式 Amazon GameLift 解决方案架构
本主题中的示意图概述了使用 Amazon GameLift 的完整托管解决方案的结构。
带托管的游戏组件
下图说明了托管式 Amazon GameLift 托管解决方案的关键组件如何协同工作,以运行专用游戏服务器以及帮助玩家查找和连接到托管的游戏会话。您为游戏开发的托管解决方案将包含大部分或全部这些组件。

架构包含以下关键组件:
- 游戏客户端
-
游戏客户端是指玩家设备上运行的软件。玩家通过加入托管的游戏服务器上的游戏会话来玩游戏。游戏客户端通过后端服务请求加入游戏会话,接收游戏会话的连接信息,然后利用该信息直接与游戏会话连接。有关更多信息,请参阅为Amazon GameLift 准备游戏。连接到实时服务器时,游戏客户端将使用实时客户端 SDK 资源。
- 后端服务
-
后端服务是您创建的自定义服务,用于代表游戏客户端处理与 Amazon GameLift 服务的通信。后端服务也可用于游戏特定任务,例如玩家身份验证和授权、库存或货币控制。后端服务使用 AWS SDK 中的 API 操作与 Amazon GameLift 服务通信。
后端服务会发出获取现有游戏会话信息和启动游戏会话的请求。对新游戏会话的请求定义了某些特征,例如最大玩家数。这些请求会促使 Amazon GameLift 启动游戏会话放置流程。当游戏会话准备好接受玩家时,后端服务会检索连接信息并将其提供给游戏客户端。
- 外部服务
-
您的游戏可以依赖外部服务,例如用于验证订阅成员资格。外部服务可以通过后端服务和 Amazon GameLift 将信息传递给您的游戏服务器。
- 游戏服务器
-
游戏服务器是在一组托管资源上运行的游戏服务器软件。您将游戏服务器软件上传到 Amazon GameLift,然后 Amazon GameLift 将其部署到托管资源并开始运行服务器进程。每个游戏服务器进程都会与 Amazon GameLift 服务连接,表示已准备好托管游戏会话。它与该服务交互,以启动游戏会话、验证新连接的玩家以及报告游戏会话和玩家连接的状态。
自定义游戏服务器使用 Amazon GameLift 服务器软件开发工具包与 Amazon GameLift 通信。有关更多信息,请参阅将游戏与自定义游戏服务器集成。实时服务器是由 Amazon GameLift 提供的游戏服务器。您可以通过提供自定义脚本来自定义服务器逻辑。有关更多信息,请参阅将游戏与 Amazon GameLift 实时服务器集成。
- 托管管理工具
-
在设置和管理托管资源时,游戏所有者使用托管管理工具来管理游戏服务器构建或脚本、实例集、对战和队列。AWS软件开发工具包和控制台中设置的 Amazon GameLift 工具为您提供了多种管理托管资源的方式。您可以远程访问任一游戏服务器以进行问题排查。
托管解决方案资源
下图说明了构成托管式托管解决方案的 Amazon GameLift 资源。提供自定义服务器生成包或实时服务器脚本,部署一组计算来托管游戏服务器,然后设置游戏会话队列来查找可用托管资源和启动新游戏会话。对于使用 FlexMatch 对战的游戏,添加对战配置和对战规则集来生成玩家匹配项。

- 游戏服务器代码
-
-
构建 – 在 Amazon GameLift 上运行并为玩家托管游戏会话的自定义生成游戏服务器软件。游戏构建表示在特定操作系统上运行游戏服务器的一组文件,并且必须与 Amazon GameLift 集成。将游戏构建文件上传到计划设置实例集的 AWS 区域 中的 Amazon GameLift。有关更多信息,请参阅为 Amazon GameLift 托管部署自定义服务器生成包。
-
脚本 – 用于实时服务器的配置和自定义游戏逻辑。您可以使用 JavaScript 创建脚本,为游戏客户端配置实时服务器,并添加自定义游戏逻辑来托管玩家的游戏会话。有关更多信息,请参阅为实时服务器部署脚本。
-
- 实例集
-
运行游戏服务器并托管玩家的游戏会话的计算资源集合。有关可以在何处部署实例集的信息,请参阅 Amazon GameLift 服务位置。有关创建实例集的信息,请参阅使用 Amazon GameLift 设置托管实例集。
- 别名
-
实例集的抽象标识符,可用于随时更改玩家连接的实例集。有关更多信息,请参阅创建 Amazon GameLift 别名。
- 游戏会话队列
-
一种游戏会话放置机制,用于接收新游戏会话的请求并搜索可用的游戏服务器来托管新会话。有关游戏会话队列的更多信息,请参阅使用 Amazon GameLift 队列管理游戏会话放置。