虚幻引擎插件:将你的游戏部署到托管EC2队伍中 - Amazon GameLift

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

虚幻引擎插件:将你的游戏部署到托管EC2队伍中

在此工作流程中,您可以使用插件修改您的游戏,使其托管在 Amazon 管理的基于云的计算资源上 GameLift。您可以为亚马逊 GameLift 功能添加客户端和服务器游戏代码,然后将您的服务器版本上传到亚马逊 GameLift 服务以部署到基于云的资源。此工作流程完成后,您将拥有一个可以连接到云端游戏服务器的游戏客户端。

要启动亚马逊 GameLift 托管亚马逊EC2工作流程,请执行以下操作:
  • 在虚幻编辑器主工具栏中,选择Amazon GameLift 菜单,然后选择托管主机EC2。此操作将打开插件页面 Deploy Amazon F EC2 leet,其中提供了集成、构建、部署和启动游戏组件的六步流程。

步骤 1:设置配置文件

选择您要在遵循此工作流程时使用的配置文件。您选择的配置文件会影响工作流程中的所有步骤。您创建的所有资源都与个人资料的 AWS 账户相关联,并放置在个人资料的默认 AWS 区域中。个人资料用户的权限决定了您对 AWS 资源和操作的访问权限。

设置用户个人资料
  1. 从可用配置文件的下拉列表中选择一个配置文件。如果您还没有个人资料或想要创建新的个人资料,请前往 Amazon GameLift 菜单并选择 “设置 AWS 用户资料”。

  2. 如果引导状态不是 “激活”,请选择 Bootstrap 配置文件并等待状态变为 “活动”。

步骤 2:设置游戏代码

在此步骤中,您将对客户端和服务器代码进行一系列更新,以添加托管功能。如果你还没有设置虚幻编辑器的源代码版本,该插件会提供指向说明和源代码的链接。

如果您已将游戏与 Anywhere 实例集一起使用,则无需对游戏代码进行任何更改。如果你使用的是启动游戏地图,这也适用于EC2部署。

构建游戏服务器后,请完成以下任务,为将其上传到 Amazon 做好准备 GameLift。

打包服务器构建以进行云部署

在 Unreal 编辑器默认打包服务器构建文件的 WindowsServer 文件夹中,添加以下内容

  1. 将插件下载中包含的安装脚本复制到 WindowsServer 文件夹的根目录中。查找文件 [project-name]/Plugins/Resources/CloudFormation/extra_server_resources/install.bat。Amazon GameLift 使用此文件在每个EC2托管资源上安装服务器版本。

  2. 将 Visual Studio 安装中包含的 VC_redist.x64.exe 文件复制到 WindowsServer 文件夹的根目录中。此文件通常位于 C:/Program Files (x86)/Microsoft Visual Studio/2019/Professional/VC/Redist/MSVC/v142

  3. 将 Open SSL DLLs for 你的游戏服务器版本复制到该文件夹WindowsServer/MyGame/Binaries/Win64。DLLs确保与服务器版本中使用的版本相同。复制以下文件:

    • libssl-3-x64.dll

    • libcrypto-3-x64.dll

步骤 3:选择部署方案

在此步骤中,您可以选择此时要部署的游戏托管解决方案。使用任何方案,您都可以对游戏进行多个部署。

  • 单区域队列:将您的游戏服务器部署到活动配置文件默认 AWS 区域中的单个托管资源队列。此方案是测试服务器与 AWS 集成和服务器构建配置的良好起点。它部署了以下资源:

    • 已安装并运行游戏服务器构建的AWS 实例集(按需型)。

    • Amazon Cognito 用户群体和客户端,使玩家能够进行身份验证和开始游戏。

    • API将用户池链接到的网关授权器。APIs

    • W ebACl 用于限制过多的玩家对网关的呼叫。API

    • APIgateway + Lambda 函数供玩家申请游戏老虎机。如果两者都不可用,则此函数调用 CreateGameSession()

    • APIgateway + Lambda 函数供玩家获取游戏请求的连接信息。

  • FlexMatch 舰队:将你的游戏服务器部署到一组舰队中,并设置一个带有规则的 FlexMatch 匹配器来创建玩家对战。此场景使用低成本 Spot 托管和多舰队、多地点结构,以实现持久可用性。当您准备开始为托管解决方案设计匹配器组件时,这种方法非常有用。在这种情况下,您将为此解决方案创建基本资源,以后可以根据需要对其进行自定义。它部署了以下资源:

    • FlexMatch 配对配置和配对规则设置为接受玩家请求和表单匹配。

    • 三个 AWS 实例集,安装了游戏服务器构建,并在多个位置运行。包括两个竞价型实例集和一个按需型实例集作为备份。

    • AWS 游戏会话放置队列,通过寻找尽可能好的托管资源(基于可行性、成本、玩家延迟等)并启动游戏会话来满足对提议对战的请求。

    • Amazon Cognito 用户群体和客户端,使玩家能够进行身份验证和开始游戏。

    • API将用户池链接到的网关授权器。APIs

    • W ebACl 用于限制过多的玩家对网关的呼叫。API

    • APIgateway + Lambda 函数供玩家申请游戏老虎机。此函数调用 StartMatchmaking()

    • APIgateway + Lambda 函数供玩家获取游戏请求的连接信息。

    • Amazon DynamoDB 表用于存储玩家的配对门票和游戏会话信息。

    • SNS主题 + 用于处理 GameSessionQueue 事件的 Lambda 函数。

步骤 4:设置游戏参数

在此步骤中,您将描述要上传到的游戏 AWS;

  • 服务器版本名称:为您的游戏服务器版本提供一个有意义的名称。 AWS 使用此名称来指代已上传并用于部署的服务器版本的副本。

  • 服务器构建操作系统:输入构建服务器以在其中运行的操作系统。这将告诉 AWS 使用哪种类型的计算资源来托管您的游戏。

  • 游戏服务器文件夹:确定本地服务器构建文件夹的路径。

  • 游戏服务器构建:确定游戏服务器可执行文件的路径。

  • 游戏客户端路径:确定游戏客户端可执行文件的路径。

  • 客户端配置输出:此字段需要指向您的客户端版本中包含您的 AWS 配置的文件夹。在以下位置寻找:[client-build]/[project-name]/Content/CloudFormation

步骤 5:部署方案

在此步骤中,您将根据所选的部署方案将游戏部署到云托管解决方案。此过程可能需要几分钟才能 AWS 验证您的服务器构建、配置托管资源、安装游戏服务器、启动服务器进程以及让它们做好托管游戏会话的准备。

要开始部署,请选择部署 CloudFormation。您可以在此处跟踪您的游戏托管状态。要了解更多详细信息,您可以登录 AWS 管理控制台查看 AWS 和查看事件通知。请务必使用与插件中活跃用户个人资料相同的账户、用户和 AWS 地区登录。

部署完成后,您的游戏服务器已安装在 AWS EC2实例上。至少有一个服务器进程正在运行并准备开始游戏会话。

步骤 6:启动客户端

至此,您已经完成了启动和玩由Amazon托管的多人游戏所需的所有任务 GameLift。要玩游戏,请启动您的游戏客户端实例。

如果您部署了单个实例集方案,则可以用一个玩家打开一个客户端实例,进入服务器地图并四处移动。打开游戏客户端的其他实例,将第二个玩家添加到同一个服务器游戏地图中。

如果您部署了 FlexMatch 场景,则解决方案会等待至少两个客户端排队等候游戏会话放置,然后玩家才能进入服务器地图。