如何将专用服务器添加到虚幻多人游戏中

对于寻求专用("权威")服务器解决方案的开发人员,EOS 推荐与诸如 Edgegap 等第三方服务集成。

-> 本文基于 入门文档。如果您遇到问题或不一致,请确保参考 原始指南,因为它们更新频率更高。

0. 准备

对您的服务器构建自信吗? 跳到 ✏️ 自定义服务器镜像高级功能

在 Edgegap 上部署您的第一个专用服务器

在本指南结束时,您将能够以零成本在 Edgegap 上部署专用服务器。

1. 连接您的 Edgegap 账户

☑️ 要开始,我们需要您 创建一个免费的 Edgegap 账户。无需信用卡。

☑️ 登录后,创建一个 Edgegap API 令牌 以连接您的插件。

✅ 现在您可以继续下一步。

2. 配置游戏服务器构建

无论您使用的是 Windows、Mac 还是 Linux 机器,您都需要为 Linux 运行时构建服务器,因为现在大多数云服务提供商(包括 Edgegap)都运行在 Linux 上。别担心,使用我们的插件完成此操作不需要 Linux 知识。

☑️ 从源代码构建您的虚幻引擎版本 在您的开发机器上,

安装 特定发布分支(例如 5.5) 来在稳定基础上构建,

使用固态硬盘(SSD) 加速构建(从 ~12+ 小时到 ~2+ 小时),

这只在第一次和每次升级您的虚幻引擎版本时需要。

使用 git 客户端下载分支! 使用 github UI 将始终下载不稳定的 release 分支。

☑️ 安装虚幻交叉编译工具链 以为 Linux 构建游戏服务器。

☑️ 重启您的开发机器,否则您在后续会遇到错误!

☑️ 禁用专用服务器的虚幻引擎版本兼容性检查,在您的 DefaultEngine.ini 中添加以下内容:

[ConsoleVariables]

net.IgnoreNetworkChecksumMismatch=1

net.CurrentHandshakeVersion=2

net.MinHandshakeVersion=2

net.VerifyNetSessionID=0

net.VerifyNetClientID=0

☑️ 验证您的 服务器正在使用 OnlineSubsystemUtils.IpNetDriver 作为默认驱动程序或备用驱动程序DefaultEngine.ini 中。

☑️ 重启虚幻引擎 以重新加载最新更改。

☑️ 通过复制您的 <PROJECT>Editor.Target.cs 文件并将副本重命名为 <PROJECT>Server.Target.cs 来创建一个专用服务器目标脚本。

☑️ 将任何对 单词 Editor 的引用替换为 Server 在您的服务器目标脚本中。

在使用 Lyra Starter Game 示例时,请确保复制并重命名您的 LyraGameEOS.Target.cs 文件和包含的类名以匹配您的项目名称.

☑️ 通过在您的服务器目标脚本中添加覆盖来启用标准输出服务器日志:

复制

☑️ 为了减少服务器外传和资源使用,在 [/Script/OnlineSubsystemUtils.IpNetDriver] 中设置 MaxNetTickRate 和 NetServerMaxTickRate,然后重建:

复制

✅ 现在您可以继续下一步。

3. 构建并上传到 Edgegap

在开发者团队中工作意味着共享您的代码。当事情出现问题时,您最不想听到的话就是“在我的机器上可以运行”。游戏服务器必须在任何机器上可靠运行,因为成功的游戏服务器将运行在全球数千台服务器上。

为了帮助使您的服务器可靠,我们使用 Docker - 虚拟化软件,确保您的所有服务器代码依赖项到操作系统级别都会始终完全相同,无论服务器如何或在哪里启动。

☑️ 验证 Docker 已安装并正在运行。

☑️ 为您自定义的从源构建的虚幻引擎版本重建我们的插件

☑️ 将编译后的插件 复制到您的 Plugins 文件夹 在虚幻项目的根目录中(而不是引擎)。

☑️ 从 Visual Studio 启动您的新虚幻引擎,并打开工具栏项目 编辑 / 插件

☑️ 在 已安装 / 其他 中启用我们的插件。

☑️ 通过打开工具栏中的项目设置项 编辑 / 项目设置 / Edgegap 来配置我们的插件:

编辑输入值后务必按下回车以 确保其正确保存

  • API 令牌 是将您的服务器上传到 Edgegap 的必要条件,您可以通过点击获取令牌来获取。

  • Edgegap 上的应用名称 可以与您的项目名称匹配或自定义,请确保仅使用小写字母、数字或字符破折号 - 和下划线 _

  • 镜像路径 可选地为您的游戏服务器提供自定义图标,暂时跳过。

  • 版本名称 对于跟踪客户端/服务器兼容性和在出现问题时恢复非常有用。时间戳是应用版本名称的一个不错选择,例如 2024.01.30-16.50.20-UTC。多个应用版本可以指向相同的镜像标签,例如 v1.1.0dev。稍后了解更多关于 应用程序和版本 的信息。

不要重复使用 latest 版本 以防止我们的系统部署过时的(缓存的)镜像。

☑️ 点击 创建应用程序。 完成此步骤后,将在 Edgegap 控制台 中出现 新的应用程序

☑️ 暂时跳过自定义容器注册表设置,如果您愿意,稍后可以使用第三方注册表。

☑️ 一旦您对配置满意,请点击 构建并推送,等待过程完成并验证您的虚幻控制台中没有新错误。完成此步骤将在您的项目根目录中出现一个 新文件夹 - Saved/LinuxServer。另外,您的 Edgegap 容器注册表仪表板页面下的 新镜像现在出现,并且您的 应用程序下的仪表板中出现新 🏷️ 应用版本

✅ 现在您可以继续下一步。

4. 在 Edgegap 上部署服务器

这是本指南中的最后一步,之后您将会在 Edgegap 云上部署一个服务器,来自世界各地的玩家可以连接到该服务器。

☑️ 打开 部署仪表板页面 并点击 创建部署

☑️ 您可以选择以下选项(或保留默认值):

  • 在之前步骤中选择的应用程序 在 Edgegap 上。

  • 在之前步骤中选择的应用程序版本 在 Edgegap 上。

  • 模拟多个试图一起玩的人数 的随机玩家数量。

  • 玩家区域 以模拟特定区域的匹配,仪表板中提供 3 个区域进行简单测试,API 提供 615+ 个区域,稍后了解关于 部署匹配 的更多信息。

☑️ 一旦您准备好,点击 部署到云,等待达到 #3-部署就绪。确保您的 容器日志 没有显示任何错误,并且您的 容器指标 没有指示 100% 的资源利用率(vCPU 或内存),否则新的玩家连接可能会被拒绝,或您的服务器卡在重启循环中。请参阅下面的故障排除步骤以解决任何问题。

☑️ 完成此步骤将导致 在您的 Edgegap 账户上启动新部署。在我们的 仪表板 中找到账户的新部署的详细信息。

☑️ 现在我们将进行最后的测试并将您的虚幻引擎游戏客户端连接到云部署。获取您的 部署主机 作为服务器 IP 以及部署的 外部端口,在游戏客户端的虚幻控制台中打开(波浪号 ~)并输入 open {host}:{port}

您在 Edgegap 云上部署的外部端口将随机选择,以便潜在的攻击者(黑客)在造成损害之前会被减慢和检测。

测试时禁用 VPN 以获得更真实的条件,并获得 低延迟部署

☑️ 一旦您验证可以无问题地连接到您的部署并完成测试,停止您的部署 以释放您账户中的容量以便下一个构建。如果您遇到问题,检查您部署的仪表板日志。如果您无法解决问题,我们在我们的 社区 Discord 中等着您,很乐意提供帮助。

🙌 恭喜您完成了在 Edgegap 上的第一个部署!如果您想了解更多,请继续阅读。确保查看我们的 匹配系统 以便在部署游戏服务器之前将玩家分组。

书写者

the Edgegap team

与来源和/或内容协作

Epic Online Services

Get your Game Online Easily & in Minutes

Get your Game Online Easily & in Minutes