

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

# 适用于 Unreal 的插件：使用 Amazon GameLift Servers Anywhere 在本地托管游戏
<a name="unreal-plugin-anywhere"></a>

使用此工作流程将您的本地工作站设置为使用 Anywhere 实例集的游戏服务器主机。在部署到基于云的托管式实例集之前，您可以使用该流程来测试您的游戏服务器集成。它也可用于在迭代游戏开发期间进行本地测试。

**要启动 Amazon GameLift Servers Anywhere 工作流程，请执行以下操作：**
+ 在 Unreal 编辑器主工具栏中，选择 Amazon GameLift Servers 菜单，然后选择**通过 Anywhere 托管**。此操作将打开插件页面**部署 Anywhere**，其中提供了集成、构建和启动游戏组件的六步流程。

## 步骤 1：设置配置文件
<a name="unreal-plugin-anywhere-profile"></a>

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

**设置用户配置文件**

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

1. 如果引导状态不是“活动”，请选择**引导配置文件**并等待状态变为“活动”。

## 步骤 2：设置游戏代码
<a name="unreal-plugin-anywhere-integrate"></a>

在此步骤中，准备您的游戏服务器和游戏客户端生成包，使其能够与 Amazon GameLift Servers 搭配使用。如果您尚未集成游戏代码，请参阅[适用于 Unreal 的插件：集成游戏代码](unreal-plugin-integrate.md)。在本地工作站上输入游戏可执行文件的路径。
+ 游戏服务器：将您的游戏服务器与适用于 Amazon GameLift Servers 的服务器 SDK 集成，并打包您的游戏服务器生成包。有关说明，请参阅[适用于 Unreal 的插件：集成游戏代码](unreal-plugin-integrate.md)。游戏服务器必须与服务器 SDK 集成，才能与 Amazon GameLift Servers 服务建立通信，并响应启动新游戏会话和接受游戏客户端连接的提示。
+ 游戏客户端：您至少需要一个可以使用 IP 地址和端口信息连接到您的游戏服务器的游戏客户端。如果您尚未设置游戏客户端组件Amazon GameLift Servers，则可以使用该 AWS CLI 工具手动请求新的游戏会话、获取连接信息，然后使用该信息连接游戏客户端。

  有时，您需要借助后端服务向 Amazon GameLift Servers 服务发送新游戏会话请求，并将连接信息回传给游戏客户端。您可以使用插件附带的测试地图，将客户端 Amazon GameLift Servers 功能添加到您的游戏项目中。有关构建自定义解决方案的帮助，请参阅[集成 Amazon GameLift Servers 游戏客户端功能](gamelift-sdk-client-api.md)。

## 步骤 3：连接到 Anywhere 实例集
<a name="unreal-plugin-anywhere-fleet"></a>

在此步骤中，您将指定要使用的 Anywhere 实例集。Anywhere 实例集定义了一组计算资源，这些资源可以位于任何地方，用于托管游戏服务器。
+ 如果您当前使用的 AWS 账户已有 Anywhere 舰队，请打开舰队名称下拉字段并选择舰队。此下拉列表仅显示当前处于活动状态的用户配置文件 AWS 所在地区的 Anywhere 舰队。
+ 如果目前没有实例集，或者您想创建新实例集，请选择创建新的 Anywhere 实例集并提供实例集名称。

在您为项目选择 Anywhere 实例集后，Amazon GameLift Servers 会验证实例集状态是否处于活动状态并显示实例集 ID。您可以在 Unreal 编辑器的输出日志中跟踪此请求的进度。

## 步骤 4：注册工作站
<a name="unreal-plugin-anywhere-register"></a>

在此步骤中，您将本地工作站注册为新的 Anywhere 实例集中的计算资源。

**将您的工作站注册为 Anywhere 计算**

1. 输入本地计算机的计算名称。如果您在实例集中添加多个计算，则名称必须是唯一的。

1. 为您的本地计算机提供 IP 地址。此字段默认为您计算机的公有 IP 地址。您也可以使用 localhost（127.0.0.1），前提是在同一台计算机上运行游戏客户端和服务器。

1. 选择注册计算。您可以在 Unreal 编辑器的输出日志中跟踪此请求的进度。

作为对这一操作的响应，Amazon GameLift Servers 会验证它是否可以连接到计算并返回有关新注册的计算的信息。它还会创建游戏可执行文件在初始化与 Amazon GameLift Servers 服务的通信时所需的控制台参数。

## 步骤 5：生成身份验证令牌
<a name="unreal-plugin-anywhere-auth"></a>

基于 Anywhere 计算运行的游戏服务器进程需要身份验证令牌才能调用 Amazon GameLift Servers 服务。每当从插件启动游戏服务器时，该插件都会自动生成并存储 Anywhere 实例集的身份验证令牌。身份验证令牌值存储为命令行参数，您的服务器代码可以在运行时检索该参数。

上面提供的代码示例还可让您使用[适用于 API 请求的AWS 签名版本 4（SigV4）](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv.html)。Sigv4 是用于向 API 请求添加身份验证信息的 AWS 签名协议。

您无需在此步骤中执行任何操作。

## 步骤 6：启动游戏
<a name="unreal-plugin-anywhere-launch"></a>

至此，您已经完成了使用 Amazon GameLift Servers 在本地工作站上启动和玩多人游戏所需的所有任务。

**玩托管游戏**

1. 启动游戏服务器。游戏服务器将在准备好托管游戏会话时通知 Amazon GameLift Servers。

1. 启动您的游戏客户端，然后使用新功能启动新的游戏会话。此请求通过新的后端服务发送到 Amazon GameLift Servers。作为回应，Amazon GameLift Servers 会调用在本地计算机上运行的游戏服务器以启动新的游戏会话。当游戏会话准备好接受玩家时，Amazon GameLift Servers 会提供连接信息，供游戏客户端加入游戏会话。