本指南帮助游戏开发人员使用 Amazon GameLift 和无服务器后端组件,在 AWS 上构建持久世界游戏并托管虚拟世界。该架构使用托管和无服务器组件来减少运营工作量,并根据玩家需求进行扩展。开发人员可以使用这种架构在 macOS 和 Windows 上开始进行持久的虚拟世界游戏开发。本指南包括基础设施即代码(IaC)自动化、用于设置依赖关系的配置脚本以及 Unity 客户端/服务器实施示例。

架构图

请注意:步骤 A-C 代表系统的后端,步骤 1-9 代表前端。

下载架构图 PDF 

Well-Architected 支柱

当您在云中构建系统时,AWS Well-Architected Framework 可以帮助您了解所做决策的利弊。框架的六大支柱使您能够学习设计和操作可靠、安全、高效、经济高效且可持续的系统的架构最佳实践。使用 AWS 管理控制台中免费提供的 AWS Well-Architected Tool,您可以通过回答每个支柱的一组问题,根据这些最佳实践来检查您的工作负载。

上面的架构图是按照 Well-Architected 最佳实践创建的解决方案示例。要做到完全的良好架构,您应该遵循尽可能多的 Well-Architected 最佳实践。

  • AWS Cloud Development Kit(AWS CDK)使用 AWS CloudFormation 控制资源更新和回滚,从而处理部署和更新。这样可以减少手动更改配置造成的错误。

    对于 Amazon GameLift 实例集的更新,CloudFormation 将创建替代实例集。在终止旧实例集之前,该服务将等待替代实例集完全激活以接受流量。

    阅读卓越运营白皮书 
  • 游戏客户端使用 Amazon Cognito 身份池身份来确保对后端服务的访问安全。这通过使用身份池提供的 AWS 身份和访问管理(IAM)凭证签署请求来实现。只有经过身份验证的请求才能访问 API Gateway 托管的 API。此外,游戏客户端只能访问自己账户的数据。

    阅读安全性白皮书 
  • 如果游戏服务器(以及随之而来的游戏世界)崩溃,该架构将自动用一个新的世界替换该世界,新的世界可以访问该特定世界的相同持久化数据。

    阅读可靠性白皮书 
  • Amazon GameLift 可以实现客户端与服务器的直接通信,以优化近乎实时的性能。使用该架构,开发人员就可以在多个 AWS 区域托管游戏服务器,从而减少游戏客户端和服务器之间的延迟。

    阅读性能效率白皮书 
  • 该架构采用了包括 API GatewayLambdaDynamoDB 在内的无服务器组件,可根据玩家流量支付精确的资源量费用,从而降低成本。此外,Amazon GameLift 可根据需求进行扩展配置,这样您在任何时候都可以确保未使用资源的资源处于最低水平。

    阅读成本优化白皮书 
  • 这种架构使用托管和无服务器服务,仅运行当前玩家负载所需的资源,从而减少您个人对环境的影响。
    阅读可持续性白皮书 

实施资源

示例代码为起点。它经过行业验证,是规范性但不是决定性的,可以帮助您开始。

[内容类型]

[标题]

此[博客文章/电子书/指南/示例代码]演示了如何 [插入简短描述]。

免责声明

示例代码;软件库;命令行工具;概念验证;模板;或其他相关技术(包括由我方人员提供的任何前述项)作为 AWS 内容按照《AWS 客户协议》或您与 AWS 之间的相关书面协议(以适用者为准)向您提供。您不应将这些 AWS 内容用在您的生产账户中,或用于生产或其他关键数据。您负责根据特定质量控制规程和标准测试、保护和优化 AWS 内容,例如示例代码,以使其适合生产级应用。部署 AWS 内容可能会因创建或使用 AWS 可收费资源(例如,运行 Amazon EC2 实例或使用 Amazon S3 存储)而产生 AWS 费用。

本指南中提及第三方服务或组织并不意味着 Amazon 或 AWS 与第三方之间存在认可、赞助或从属关系。AWS 的指导是一个技术起点,您可以在部署架构时自定义与第三方服务的集成。

此页内容对您是否有帮助?