构建基于云的测试环境 - Amazon GameLift

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

构建基于云的测试环境

注意

本主题介绍与 Amazon GameLift 服务器 SDK 版本 5.x 集成的游戏的迭代测试。如果您的游戏使用服务器 SDK 版本 4.x 或更早版本,请参阅使用 Amazon L GameLift ocal 测试您的集成

使用 Amazon GameLift Anywhere 队列在基于云的托管环境中迭代构建和测试您的游戏组件。创建包含托管资源和与 Amazon GameLift 服务的连接的Anywhere舰队,在其上运行游戏服务器,并根据需要测试游戏功能。

使用 Amazon GameLift 代理部署Anywhere舰队

如果您的游戏服务器版本与 Amazon GameLift SDK 5.x 或更高版本集成,则可以使用 Amazon A GameLift gent 将其部署到基于云的Anywhere队列中。代理是一个后台进程,用于管理游戏服务器生命周期以及队列中每台计算机上的其他任务。这些任务包括在 Amazon 上注册计算 GameLift、获取身份验证令牌以及根据一组指令启动/停止游戏服务器进程。代理由队列的运行时配置控制,在队列生命周期内,您可以随时更新这些配置。(代理会自动部署到托管的 EC2 队列。) 要了解更多信息并下载代理,请参阅 Amazon GameLift GitHub 存储库

使用 Amazon EC2 设置迭代测试

使用此 Amazon GameLift Toolkit 解决方案中的指导式工作流程来设置基于云的托管环境,该环境反映了 Amazon 的托管体验 GameLift。

该 GitHub 存储库提供了一组脚本,这些脚本可以自动执行使用 Amazon GameLift Anywhere 和 Amazon A GameLift gent 设置测试环境的大部分流程。它还为每当你有新的游戏服务器版本需要测试时更新环境提供了指导。您可以运行一个脚本来部署带有示例游戏服务器版本的测试环境,也可以逐步完成每个步骤,使用自己的游戏服务器版本进行设置。

在此工作流程中,您将完全使用 AWS CloudShell 来运行脚本和完成命令行任务。 AWS Management Console

注意

对于本教程中的任务,您需要具有以下服务权限的 AWS 账户用户:亚马逊 GameLift、Amazon S3 AWS CloudShell、 AWS Systems Manager、Amazon EC2 和 AWS Identity and Access Management。对 AWS 账户拥有管理员级别访问权限的用户已经拥有所需的权限。

该工作流程涵盖以下任务:

  • Package 为亚马逊打包游戏服务器版本 GameLift。该工作流程提供了构建示例 C++ 游戏服务器的脚本,该服务器已与 Amazon GameLift 服务器 SDK 5.x 集成,可以托管了。或者,如果您已完成集成,则可以处理自己的游戏项目。

  • 设置 Amazon 简单存储服务存储桶来存储游戏服务器版本和依赖项。当你制作游戏版本的新版本时,你可以将它们存储在 S3 中,然后使用脚本更新Anywhere队列以进行游戏测试。

  • 获取并构建 Amazon GameLift 代理。代理根据您的配置管理托管资源上的游戏服务器进程。它使用的逻辑和行为与 Amazon GameLift 托管 EC2 托管相同。

  • 为您的托管资源设置Anywhere队列。有了Anywhere队列,您可以使用 Amazon GameLift 服务来托管不由亚马逊管理的资源 GameLift。在此步骤中,您还将配置运行时配置,该配置指示 Amazon A GameLift gent 何时以及如何启动游戏服务器进程。

  • 设置一个 Amazon EC2 实例。这是用于迭代测试的测试环境。使用标准 EC2 实例比完全托管的 Amazon 实 GameLift 例(针对生产级使用进行了优化)要快得多。使用标准 EC2 实例,您可以根据需要快速持续地更新游戏服务器。

  • 将您的游戏服务器版本和 Amazon A GameLift gent 部署到 Amazon EC2 实例。该工作流程提供了一个脚本,用于获取最新版本的游戏版本和所有依赖关系,并将其安装到您的 EC2 实例上。在此工作流程中,依赖项包括 Amazon GameLift 代理和 CloudWatch 代理。

  • 启动亚马逊 GameLift 代理。安装后,代理会自动启动并开始执行指令。其中包括:

    • 在 Amazon GameLift Anywhere 队列中将 EC2 实例注册为计算实例。

    • 与 Amazon GameLift 服务建立 WebSocket 连接并获取最新的运行时配置。

    • 根据运行时配置中的说明启动游戏服务器进程。在此工作流程中,代理被指示启动游戏服务器可执行文件的单个进程。

  • 测试你的游戏场景。设置好测试环境并安装最新的游戏服务器版本后,就可以开始测试了。该工作流程介绍了几个测试步骤,包括启动游戏会话。访问 CloudWatch 游戏服务器日志以跟踪游戏会话启动并准备接受玩家时的进度。

    在开发游戏组件(包括游戏客户端和客户端后端服务)时,可以将其包含在测试场景中。使用游戏客户端请求游戏会话,从 Amazon GameLift 服务中检索连接信息,然后直接连接到游戏会话。

  • 部署新的游戏服务器版本并重复测试。在开发游戏时,您可以生成新的游戏服务器版本,然后将其快速部署到 EC2 测试环境中进行测试。将它们上传到 Amazon S3 存储桶,然后使用工作流程脚本更新测试环境。

将您的游戏过渡到 Amazon GameLift 托管队列

在您完成开发测试并准备好发布之后,现在是切换到 Amazon GameLift 托管队列的好时机。使用托管队列来微调和测试您的游戏托管资源。实施您的游戏会话放置解决方案(队列和匹配器),选择最佳的托管硬件(包括 Spot 队列)和位置,然后选择扩展容量的策略。您可能还想开始使用 AWS CloudFormation 来更有效地管理所有游戏托管资源的生命周期,包括舰队、队列和媒人。

从基于云的Anywhere测试队列过渡到 Amazon GameLift 托管队列只需很少的精力。您无需更改任何游戏代码,并且可以重复使用相同的队列和匹配器。执行以下任务:

  • 创建 Amazon GameLift 构建资源。使用Anywhere测试队列时,您必须手动将游戏服务器版本和依赖项部署到每个队列计算中。使用托管队列,将您的游戏构建包上传到 Amazon GameLift,亚马逊会自动将其部署到所有队列计算中。有关打包游戏编译文件和使用 Amazon S3 存储桶中的文件创建构建资源的详细信息,请参阅将自定义服务器构建上传到 Amazon GameLift

  • 创建托管舰队。使用控制台或 AWS CLI 创建队列,指定 EC2 托管队列。这种类型的队列需要额外的配置设置,包括指定构建资源和实例类型。您可以使用相同的运行时配置来管理每个队列计算上的游戏服务器生命周期。有关创建托管队列的详细信息,请参阅创建 Amazon GameLift 托管实例集

  • 重定向舰队别名(可选)。如果您设置了用于队列的别名,则可以为托管Anywhere队伍重复使用相同的别名。有关创建或更新别名的详细信息,请参阅向 Amazon GameLift 舰队添加别名