适用于 Unreal 的插件:使用 Amazon GameLift Servers Anywhere 在本地托管游戏
使用此工作流程将您的本地工作站设置为使用 Anywhere 实例集的游戏服务器主机。在部署到基于云的托管式实例集之前,您可以使用该流程来测试您的游戏服务器集成。它也可用于在迭代游戏开发期间进行本地测试。
要启动 Amazon GameLift Servers Anywhere 工作流程,请执行以下操作:
在 Unreal 编辑器主工具栏中,选择 Amazon GameLift Servers 菜单,然后选择通过 Anywhere 托管。此操作将打开插件页面部署 Anywhere,其中提供了集成、构建和启动游戏组件的六步流程。
步骤 1:设置配置文件
选择您要在遵循此工作流程时使用的配置文件。您选择的配置文件会影响工作流程中的所有步骤。您创建的所有资源都与配置文件的 AWS 账户相关联,并放置在配置文件的默认 AWS 区域中。配置文件用户的权限决定了您对 AWS 资源和操作的访问权限。
设置用户配置文件
-
从可用配置文件的下拉列表中选择一个配置文件。如果您还没有配置文件或想要创建新的配置文件,请前往 Amazon GameLift 菜单并选择设置 AWS 用户配置文件。
-
如果引导状态不是“活动”,请选择引导配置文件并等待状态变为“活动”。
步骤 2:设置游戏代码
在此步骤中,准备您的游戏服务器和游戏客户端生成包,使其能够与 Amazon GameLift Servers 搭配使用。如果您尚未集成游戏代码,请参阅适用于 Unreal 的插件:集成游戏代码。在本地工作站上输入游戏可执行文件的路径。
游戏服务器:将您的游戏服务器与适用于 Amazon GameLift Servers 的服务器 SDK 集成,并打包您的游戏服务器生成包。有关说明,请参阅适用于 Unreal 的插件:集成游戏代码。游戏服务器必须与服务器 SDK 集成,才能与 Amazon GameLift Servers 服务建立通信,并响应启动新游戏会话和接受游戏客户端连接的提示。
游戏客户端:您至少需要一个可以使用 IP 地址和端口信息连接到您的游戏服务器的游戏客户端。如果您尚未针对 Amazon GameLift Servers 设置游戏客户端组件,可以使用 AWS CLI 工具手动请求新的游戏会话、获取连接信息,并使用这些信息连接游戏客户端。
有时,您需要借助后端服务向 Amazon GameLift Servers 服务发送新游戏会话请求,并将连接信息回传给游戏客户端。您可以使用插件附带的测试地图,将客户端 Amazon GameLift Servers 功能添加到您的游戏项目中。有关构建自定义解决方案的帮助,请参阅集成 Amazon GameLift Servers 游戏客户端功能。
步骤 3:连接到 Anywhere 实例集
在此步骤中,您将指定要使用的 Anywhere 实例集。Anywhere 实例集定义了一组计算资源,这些资源可以位于任何地方,用于托管游戏服务器。
如果您当前使用的 AWS 账户已有 Anywhere 实例集,请打开实例集名称下拉字段并选择实例集。此下拉列表仅显示当前处于活动状态的用户配置文件所在 AWS 区域的 Anywhere 实例集。
如果目前没有实例集,或者您想创建新实例集,请选择创建新的 Anywhere 实例集并提供实例集名称。
在您为项目选择 Anywhere 实例集后,Amazon GameLift Servers 会验证实例集状态是否处于活动状态并显示实例集 ID。您可以在 Unreal 编辑器的输出日志中跟踪此请求的进度。
步骤 4:注册工作站
在此步骤中,您将本地工作站注册为新的 Anywhere 实例集中的计算资源。
将您的工作站注册为 Anywhere 计算
输入本地计算机的计算名称。如果您在实例集中添加多个计算,则名称必须是唯一的。
为您的本地计算机提供 IP 地址。此字段默认为您计算机的公有 IP 地址。您也可以使用 localhost(127.0.0.1),前提是在同一台计算机上运行游戏客户端和服务器。
选择注册计算。您可以在 Unreal 编辑器的输出日志中跟踪此请求的进度。
作为对这一操作的响应,Amazon GameLift Servers 会验证它是否可以连接到计算并返回有关新注册的计算的信息。它还会创建游戏可执行文件在初始化与 Amazon GameLift Servers 服务的通信时所需的控制台参数。
步骤 5:生成身份验证令牌
基于 Anywhere 计算运行的游戏服务器进程需要身份验证令牌才能调用 Amazon GameLift Servers 服务。每当从插件启动游戏服务器时,该插件都会自动生成并存储 Anywhere 实例集的身份验证令牌。身份验证令牌值存储为命令行参数,您的服务器代码可以在运行时检索该参数。
上面提供的代码示例还可让您使用适用于 API 请求的 AWS 签名版本 4(SigV4)。SigV4 是将身份验证信息添加到 API 请求的 AWS 签名协议。
您无需在此步骤中执行任何操作。
步骤 6:启动游戏
至此,您已经完成了使用 Amazon GameLift Servers 在本地工作站上启动和玩多人游戏所需的所有任务。
玩托管游戏
启动游戏服务器。游戏服务器将在准备好托管游戏会话时通知 Amazon GameLift Servers。
启动您的游戏客户端,然后使用新功能启动新的游戏会话。此请求通过新的后端服务发送到 Amazon GameLift Servers。作为回应,Amazon GameLift Servers 会调用在本地计算机上运行的游戏服务器以启动新的游戏会话。当游戏会话准备好接受玩家时,Amazon GameLift Servers 会提供连接信息,供游戏客户端加入游戏会话。