本文介绍如何将 PlayFab 多人游戏服务器 SDK (GSDK) Unreal Online 子系统 (OSS) 插件与 Unreal 项目集成。
此插件同时提供蓝图 API 和 C++ API。 蓝图 API 仍要求 Unreal 项目是 C++ 项目,并且不适用于仅蓝图项目。 如果它当前是仅蓝图项目,则需要在添加插件之前事先转换为 C++ 项目。
它最初使用 Unreal Engine 4.26、4.27、5.0 和 5.1 进行了测试。 此插件将主动维护,以使用最新的 3 - 4 版本的 Unreal。 如果使用这些版本时出现问题,请在此处打开一个问题: Unreal Engine GSDK 存储库。
若要使用这些指南,请将 ThirdPersonMP 的所有实例替换为项目名称(如果不同)。
要求
- 下载 Visual Studio。
社区版本免费。
- 所需的工作负载:.NET 桌面版开发,以及使用 C++ 进行桌面版开发
- 下载 Unreal Engine 源代码。 有关说明,请参阅 下载 Unreal Engine 源代码(外部)。
- 如果尚未这样做,请执行 git 将此存储库克隆到本地计算机
git clone https://github.com/PlayFab/gsdk.git
- 后续步骤将涉及将此存储库中的文件集成到项目
- [可选]下载 LocalMultiplayerAgent
- [可选]或者,下载 LocalMultiplayerAgent 源。
- [可选] PlayFab 市场插件 或 GitHub 上的源版本. GSDK 不需要此插件,但许多 PlayFab 服务(包括登录名)都是必需的。
创建项目
Unreal 服务器项目必须是已启用网络的多人游戏 Unreal 项目,且具有专用服务器模式。 如果没有满足这些先决条件的项目,请按照 Unreal 先决条件设置指南 进行设置。 启用了网络的多人游戏项目和专用服务器后,返回到此步骤并继续。
准备就绪后,打开已启用网络的多人游戏 Unreal 服务器项目,并继续执行下一步以安装 Unreal GSDK。
Project GSDK 设置
- GSDK 项目先决条件详细信息
- 专用服务器:
- 项目应具有单独的 {ProjectName}Server.Target.cs 文件
- 此文件应包含
Type = TargetType.Server;
以启用专用服务器模式 - 在 Win64 的“开发服务器”配置中内置时,输出包含 {ProjectName}Server.exe
- 已启用网络:
- 有多种满足此要求的方法,但简单的答案是:客户端可以在单独的计算机上与游戏服务器建立网络连接,并进行有意义的通信
- 我们的说明指导你完成 Unreal 的内置数据复制系统,该系统可为你处理大部分此要求
- 可以更直接地与套接字建立此连接,例如通过 ISocketSubsystem(这是更高级的主题)
- 多人游戏:
- 游戏服务器可以接受多个传入客户端连接,并与两者正确通信
- 同样,使用 Unreal 的内置数据复制,此要求主要为你处理
- 专用服务器:
使用正确配置的多人游戏项目,可以 安装 GSDK。 此插件将允许服务器在 PlayFab 多人游戏服务上运行。
Unreal 项目生成配置
在项目中安装和配置 GSDK 后,可以 生成 Unreal 项目。 在将来的步骤中,需要执行所有测试的多个生成配置。
测试本地服务器部署
拥有任何客户端生成和“开发服务器”生成后,可以 本地测试 MPS 部署过程,并验证服务器是否正常工作。
部署到 PlayFab
现在可以使用 PlayFab 多人游戏服务在云中创建游戏服务器。 PlayFab MPS 支持 Windows 服务器 和 Linux 服务器。
连接到已部署的服务器
最后,你已准备好连接到已部署的服务器。
致谢
感谢 Stefan Jenkinsmann 创建并提交此插件。
感谢 Nick Arthur 提供令人惊叹的 Dockerfile。
感谢 Adam Rehn 处理 Unreal 和 Docker 的所有工作,包括代码、示例、示例和教程。