本指南帮助开发人员使用 Amazon GameLift 测试工具包测试、可视化和优化他们的多人游戏。借助该工具包,开发人员可以对他们的 Amazon GameLift 基础设施进行故障排除、调试和优化。该指南提供了一种可选功能,即使用与真实玩家运行相同代码的虚拟玩家,这样开发人员就可以在游戏投产前测试其成功与否。
架构图
第 1 步
Amazon CloudFront 提供对工具包 Web 控制台 [位于Amazon Simple Storage Service(Amazon S3)上] 的访问权限。工具包控制台用户使用 Amazon Cognito 用户池进行身份验证。
第 2 步
Web 控制台与 Amazon API Gateway WebSocket API 连接,后者调用 AWS Lambda 函数来处理请求并将数据存储在 Amazon DynamoDB 中。
第 3 步
Lambda 函数可以直接查询和更新 Amazon GameLift 基础设施。
第 4 步
游戏侦听器通过 Amazon EventBridge 接收 GameLift 事件,并使用 AWS Step Functions 轮询和接收来自 GameLift 和 Amazon CloudWatch 的基础设施更新。
第 5 步
游戏侦听器通过自定义 EventBridge 事件总线调度聚合的事件数据。 这些事件由 Lambda 函数接收,该函数将数据存储在 DynamoDB 中,并调用 API Gateway 将数据发送给连接的 Web 控制台用户以供显示。
第 6 步
Web 控制台用户还可以在 AWS Fargate 上启动虚拟玩家任务,模拟真实的游戏客户端。
第 7 步
每个虚拟玩家任务都会请求一个 Amazon Cognito 访客身份,并连接到游戏客户端服务 API Gateway 以请求配对。
第 8 步
Lambda 函数调用 GameLift FlexMatch 来启动配对流程,并使用游戏会话队列将成功的匹配放到实例集中。
第 9 步
虚拟玩家任务与 GameLift 实例集实例连接以启动游戏会话。
Well-Architected 支柱
当您在云中构建系统时,AWS Well-Architected Framework 可以帮助您了解所做决策的利弊。框架的六大支柱使您能够学习设计和操作可靠、安全、高效、经济高效且可持续的系统的架构最佳实践。使用 AWS 管理控制台中免费提供的 AWS Well-Architected Tool,您可以通过回答每个支柱的一组问题,根据这些最佳实践来检查您的工作负载。
上面的架构图是按照 Well-Architected 最佳实践创建的解决方案示例。要做到完全的良好架构,您应该遵循尽可能多的 Well-Architected 最佳实践。
-
卓越运营
该工具包和示例游戏均使用基础设施即代码服务进行全面部署,这减少了手动流程造成的错误,并减少了部署变更的工作量。
-
安全性
API Gateway 上的无服务器 Web 控制台 API 受到基于 AWS 身份和访问管理(IAM)的身份验证保护,针对 Amazon Cognito 用户池进行身份验证。
API Gateway 上的无服务器示例游戏后端受到基于 IAM 的身份验证保护,可对玩家的访客身份进行安全验证。
GameLift 上的游戏服务器仅允许访问用于客户端与服务器通信的端口。后端 Lambda 函数只能访问其所需的服务。
-
可靠性
数据存储在 DynamoDB 表中,利用按需容量分配,根据需求变化自动扩展。
解决方案后端服务使用的 Lambda 可自动扩展实例。
示例游戏后端支持基于 GameLift Target 的自动扩缩,以应对需求的变化。
-
性能效率
通过利用 API Gateway、Lambda、DynamoDB 和 Fargate 等托管无服务器技术,您只需为使用的资源付费,并可减少维护解决方案所需的运营工作量。
该解决方案可部署到您选择的区域,并利用 CloudFront 来减少 Web 控制台最终用户的延迟。
-
成本优化
虚拟玩家任务可以通过 Fargate Spot 启动,以降低测试成本。
Web 控制台和示例游戏后端采用无服务器技术,因此您只需为使用的资源付费。
Web 控制台后端利用 Lambda 和 API Gateway 的原生扩展功能,DynamoDB 表则使用按需容量分配,以确保资源与需求相匹配。
示例游戏后端支持基于 GameLift Target 的自动扩缩,可最大限度减少所需的资源。
-
可持续性
该指南广泛使用托管服务,将维持高平均利用率的责任转移到了 AWS。
示例游戏后端支持基于 GameLift Target 的自动缩放,可最大限度减少所需的资源。通过将游戏会话打包到最少数量的服务器实例上,可让资源利用率始终保持在较高水平。
该指南通过广泛使用托管服务,减少了个人对环境的影响。
您可以通过在竞价型实例集上启动游戏服务器,在 Fargate Spot 上启动虚拟玩家任务,从而进一步减少闲置资源对可持续性的影响。
免责声明
示例代码;软件库;命令行工具;概念验证;模板;或其他相关技术(包括由我方人员提供的任何前述项)作为 AWS 内容按照《AWS 客户协议》或您与 AWS 之间的相关书面协议(以适用者为准)向您提供。您不应将这些 AWS 内容用在您的生产账户中,或用于生产或其他关键数据。您负责根据特定质量控制规程和标准测试、保护和优化 AWS 内容,例如示例代码,以使其适合生产级应用。部署 AWS 内容可能会因创建或使用 AWS 可收费资源(例如,运行 Amazon EC2 实例或使用 Amazon S3 存储)而产生 AWS 费用。