亚马逊AWS官方博客

推出 Amazon GameLift Anywhere – 在您自己的基础设施上运行游戏服务器

2016 年,我们推出了 Amazon GameLift,这是一种专用托管解决方案,可安全部署和自动扩展基于会话的多人游戏服务器队列,以满足全球玩家的需求。

借助 Amazon GameLift,您可以创建并上传一次游戏服务器版本,加以复制,然后在多个 AWS 区域AWS Local Zones 中进行部署,从而为世界各地的玩家提供低延迟体验。GameLift 还包括 GameLift FleetIQ 针对低成本游戏队列的独立功能以及使用 GameLift FlexMatch 进行玩家配对。

游戏开发者要求我们在开发阶段缩短每次需要测试和迭代游戏时将候选服务器版本部署到云端的等待时间。此外,客户向我们反馈,他们经常有持续的裸机合同或本地游戏服务器,希望能够灵活地将现有基础设施与云服务器搭配使用。

今天,我们宣布正式推出 Amazon GameLift Anywhere它将游戏会话管理与底层计算资源分离开来。此次发布后,您现在可以在名为 Anywhere Fleet 的逻辑构造下注册和部署任何硬件,包括您自己的本地工作站。

由于您的本地硬件现在可以成为 GameLift 托管服务器,因此您可以在熟悉的本地桌面环境中迭代服务器版本,任何服务器错误都可能在几秒钟内突然出现。您还可以在环境的调试程序中设置断点,从而消除试验和错误,并进一步加快迭代过程。

游戏开发者使用 GameLift Anywhere 主要可获得以下益处。

  • 加快游戏开发速度 – 即时在本地工作站上进行测试和迭代,同时仍可利用 GameLift FlexMatch 和 Queue 服务。
  • 混合服务器管理 – 部署、操作和扩展托管在云中或本地的专用游戏服务器,所有这些工作都可以在一个位置集中完成。
  • 简化服务器操作 – 通过在单个游戏服务器编排层下统一服务器基础设施,降低成本和操作复杂性。

在 GameLift Anywhere 的测试期间,许多客户提供了反馈。例如,自 2020 年以来,Nitro Games 一直是 Amazon GameLift 的客户,他们使用该服务进行玩家配对和管理云中的专用游戏服务器。Nitro Games 高级 DevOps 工程师 Daniel Liljeqvist 表示:“借助 GameLift Anywhere,我们可以轻松地在本地计算机上调试游戏服务器,从而节省时间,并在开发新游戏和功能时大大缩短反馈循环。”

GameLift Anywhere 资源(如位置、队列和计算)通过与所有 AWS 服务相同的高度安全的 AWS API 端点进行管理。这也适用于为游戏服务器进程生成身份验证令牌,这些令牌仅在有限的时间内有效,以提高安全性。您可以利用 AWS Identity and Access Management(AWS IAM)角色和策略,全面管理对所有 GameLift Anywhere 端点的访问权限。

GameLift Anywhere 入门
在本地硬件中创建 GameLift 队列之前,您可以创建自定义位置,以运行游戏版本或脚本。在 GameLift 控制台的左侧导航窗格中,选择 Locations(位置),然后选择 Create location(创建位置)。

您可以为硬件创建一个可用于 GameLift Anywhere 队列的自定义位置,以测试您的游戏。

从左侧导航窗格中选择 Fleets(队列),然后选择 Create fleet(创建队列),将 GameLift Anywhere 队列添加到所需位置。

Choose compute type(选择计算类型)步骤中,选择 Anywhere(任意位置)。

定义您的队列详细信息,例如队列名称和可选项目。有关设置的更多信息,请参阅 AWS 文档中的创建新的 GameLift 队列

Select locations(选择位置)步骤中,选择您创建的自定义位置。AWS 主区域会被自动选中,作为您在其中创建队列的区域。您可以使用主区域来访问和使用您的资源。

完成 Anywhere 队列的队列创建步骤后,您可以在托管 EC2 实例和 Anywhere 位置看到活跃队列。您还可以通过添加更多 GameLift Anywhere 位置来集成远程本地硬件,这样您就可以从一个位置管理游戏会话。要了解更多信息,请参阅 AWS 文档中的创建新的 GameLift 队列

您可以将笔记本电脑注册为所创建队列中的计算资源。使用在上一步中创建的队列 ID,添加 compute-name 和笔记本电脑的 ip-address

$ aws gamelift register-compute \
    --compute-name ChannyDevLaptop \
    --fleet-id fleet-12345678-abcdefghi \
    --ip-address 10.1.2.3

现在,您可以通过在创建的队列中检索笔记本电脑的身份验证令牌,启动游戏服务器的调试会话。

$ aws gamelift get-compute-auth-token \
    --fleet-id fleet-12345678-abcdefghi \
    --compute-name ChannyDevLaptop

要运行游戏服务器可执行文件的调试实例,您的游戏服务器必须调用 InitSDK()。在该进程准备好托管游戏会话后,游戏服务器将调用 ProcessReady()。要了解更多信息,请参阅 AWS 文档中的将游戏与定制游戏服务器集成测试集成

现已推出
Amazon GameLift Anywhere 已在所有提供 Amazon GameLift 的区域推出。 GameLift 提供分步开发者指南API 参考指南GameLift 软件开发工具包。您还可以亲眼看到,使用我们的示例游戏开始测试 Amazon GameLift 有多简单。

不妨尝试一下,并将反馈发送给 AWS re:Post for Amazon GameLift 或通过常见的 AWS Support 联系人发送。

Channy