For the complete documentation index, see llms.txt. This page is also available as Markdown.

更多构建方式

这些方法通常更慢,并且需要对 Unreal Engine 有更深入的理解。

探索适用于更高级 Unreal Engine 和 Edgegap 用户的替代构建方法:

  1. 更多构建方式 是一种快速且自动化的方法,适用于持续集成。

  2. ⚡ 从插件构建 是一种传统的构建方法,需要从源码构建 Unreal Engine。

⚡ 使用脚本构建

使用脚本构建是一种快速、全自动且简单的方法,适用于持续集成。

准备工作

在开始之前,请确保 在 Edgegap 创建一个免费账户 (无需信用卡)。

在你的开发机器上配置一些基本设置:

安装 Docker Desktop(或 Docker CLI)
在 GitHub 上获取对 Unreal Engine 资源的访问权限
生成 GitHub 个人访问令牌(经典)
  • 仅启用权限 [读取:软件包] ,

  • 生成令牌 - 请妥善保存此值,您将无法再次看到它.

1. 配置项目

无论您使用的是 Windows、Mac 还是 Linux 机器,您将 需要为 Linux 运行时构建您的服务器,因为如今大多数云提供商(包括 Edgegap)都运行在 Linux 上。别担心,不需要具备 Linux 知识。

☑️ 禁用 Unreal Engine 版本兼容性检查 用于专用服务器和 设置 IpNetDriver 作为默认驱动或备用驱动 用于复制网络:

☑️ 重启 Unreal Engine 以重新加载最新更改。

☑️ 创建专用服务器目标脚本 通过复制你的 <PROJECT>Editor.Target.cs 项目根文件夹中的文件并将副本重命名为 <PROJECT>Server.Target.cs.

☑️ 替换任何对 单词 Editor Server 在你的服务器目标脚本中。

☑️ 修改服务器构建默认设置 通过编辑你的服务器目标脚本:

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

可选:Steam 集成

集成 Steam,使用 IpNetDriver 作为默认网络驱动并确认 适用于 Linux 的 64 位 steamclient.so 已复制到镜像中的路径 /home/ubuntu/.steam/sdk64/ .

下载 steamclient.so

2. 构建并发布

在一个开发者团队中工作意味着要共享代码。当出现问题时,您最不想听到的就是“在我的机器上可以运行”。游戏服务器必须能够在任何机器上可靠运行,因为成功的游戏服务器会在世界各地成千上万台服务器机器上运行。

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

我们建议观看 “永远不要本地安装”(视频). 使用 Docker 不需要使用 Dockerhub。Docker ≠ Dockerhub。把 Docker 想象成一个编程引擎,把 Dockerhub 想成它的应用商店。

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

☑️ 下载我们的 Edgegap Build Utils 包括:

  • 平台特定的构建脚本:

    • BuildAndUpload.ps1 适用于 Windows,

    • BuildAndUpload.sh 适用于 macOS 和 Linux,

  • Dockerfile - 用于构建 Docker 镜像的配置文件,

  • dockerignore - 要移除以加快构建速度的非关键文件列表,

  • StartServer.sh - 在运行时管理 Unreal Engine 生命周期的实用脚本。

☑️ 移动 edgegap-unreal-buildutils 文件夹到你的项目根目录。

☑️ 编辑 BuildAndUpload 脚本,针对你的平台 以配置:

  • 用于拉取适用于 Linux 服务器的预构建 Unreal Engine 镜像的 GitHub 凭据,

  • 项目详情 - 引擎版本、服务器配置、.uproject 文件名,

  • Edgegap Registry 用于上传已完成构建的凭据。

☑️ 执行已编辑的脚本 以开始构建和上传流程。完成此步骤后,将会添加一个新的 镜像到你的 仓库中的 Edgegap Container Registry 仪表板页面.

☑️ 你将自动跳转到 创建一个新的 应用与版本控制台.

✅ 你现在可以继续下一步,跳到 更多构建方式.

故障排除和常见问题

错误:运行 Build 函数失败:Dockerfile 不能为空

  • 某些插件源可能缺失 Dockerfile 和/或 StartServer.sh ,请从你的插件的 GitHub 源版本中复制这些文件到本地插件中。


打开 //./pipe/dockerDesktopLinuxEngine:系统找不到指定的文件。

  • 请确认 Docker 正在你的开发机器上运行。


无效的引用格式 EdgegapLog:警告:OnContainerizeCallback:无法生成容器,消息:失败

  • 请确认你的应用名称已设置,并且不包含尾随空格。

  • 编辑完成后,请务必按 Enter 键确认输入值。


在构建项目时,找不到目标 ‘ProjectName’ 的目标规则文件?

  • 在你的 XYZServerTarget.cs 文件中更改构建配置:


403 禁止访问,无法推送容器,消息:失败

  • 请确认你的 Docker 凭据已正确设置。

  • 如果使用 Edgegap 容器注册表,请确保用户名不包含 app-version-pull ,这是一个仅允许拉取镜像的配置文件。你的配置文件应类似于你的账户电子邮件。

  • 请确认你在账户的 容器注册表中有足够的可用空间。我们建议尝试 更多构建方式,并使用 我们的 API 删除较旧的镜像。镜像会保存在你的本地机器上,直到被删除以用于备份。

⚡ 从插件构建

我们的传统插件包含高级实用工具,并且需要从源码构建 Unreal Engine。

准备工作

在开始之前,请确保 在 Edgegap 创建一个免费账户 (无需信用卡)。

在你的开发机器上配置一些基本设置:

安装 Docker Desktop(或 Docker CLI)
在 GitHub 上获取对 Unreal Engine 资源的访问权限
配置你的开发环境
安装官方 Edgegap Unreal Engine 插件

请选择以下官方插件之一:

1. 配置项目

无论您使用的是 Windows、Mac 还是 Linux 机器,您将 需要为 Linux 运行时构建您的服务器,因为如今大多数云提供商(包括 Edgegap)都运行在 Linux 上。别担心,不需要具备 Linux 知识。

☑️ 从源码构建你的 Unreal Engine 版本 在你的开发机器上,

  • 安装 特定发布分支(例如 5.5) 以稳定的基础进行构建,

  • 使用固态硬盘(SSD) 以加快构建速度(从约 12+ 小时缩短到约 2+ 小时),

  • 这只在第一次以及每次升级 Unreal Engine 版本时需要。

☑️ 安装 Unreal 跨编译工具链 以为 Linux 构建游戏服务器。

☑️ 重启你的开发机器,否则你之后会遇到错误!

☑️ 禁用 Unreal Engine 版本兼容性检查 用于专用服务器和 设置 IpNetDriver 作为默认驱动或备用驱动 用于复制网络:

☑️ 重启 Unreal Engine 以重新加载最新更改。

☑️ 创建专用服务器目标脚本 通过复制你的 <PROJECT>Editor.Target.cs 项目根文件夹中的文件并将副本重命名为 <PROJECT>Server.Target.cs.

☑️ 替换任何对 单词 Editor Server 在你的服务器目标脚本中。

☑️ 修改服务器构建默认设置 通过编辑你的服务器目标脚本:

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

可选:Steam 集成

集成 Steam,使用 IpNetDriver 作为默认网络驱动并确认 适用于 Linux 的 64 位 steamclient.so 已复制到镜像中的路径 /home/ubuntu/.steam/sdk64/ .

下载 steamclient.so

2. 构建并发布

在一个开发者团队中工作意味着要共享代码。当出现问题时,您最不想听到的就是“在我的机器上可以运行”。游戏服务器必须能够在任何机器上可靠运行,因为成功的游戏服务器会在世界各地成千上万台服务器机器上运行。

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

我们建议观看 “永远不要本地安装”(视频). 使用 Docker 不需要使用 Dockerhub。Docker ≠ Dockerhub。把 Docker 想象成一个编程引擎,把 Dockerhub 想成它的应用商店。

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

☑️ 重新构建我们的插件 以适配你从源码构建的自定义 Unreal Engine 版本。

☑️ 复制已编译的插件 到你的 Plugins 文件夹 在你的 Unreal 项目根目录中 (不是引擎目录)。

☑️ 从 Visual Studio 启动你新的 Unreal Engine打开工具栏项 Edit / Plugins.

☑️ 启用我们的插件INSTALLED / Other.

☑️ 配置我们的插件 通过打开工具栏项 Edit / Project Settings / Edgegap:

  • API Token 上传你的服务器到 Edgegap 时需要,通过点击 Get Token 获取。

  • 应用名称 Edgegap 上的名称可以与项目名相同,也可以自定义,请确保只使用小写字母、数字、连字符 - 和下划线 _.

  • Image Path 可选地为你的 Edgegap 游戏服务器提供自定义图标,先跳过。

  • Version name 有助于跟踪客户端/服务器兼容性,并在出现问题时回滚。

    • 使用时间戳作为应用版本名称是个不错的选择,例如 2024.01.30-16.50.20-UTC .

    • 多个应用版本可以指向同一个镜像标签,例如 v1.1.0dev .

    • 了解更多关于 应用与版本 的信息。

☑️ 点击 Create Application。 完成此步骤后将会出现一个 新的应用Edgegap Dashboard.

☑️ 目前先跳过自定义容器注册表设置,如果你愿意,之后可以使用第三方注册表。

☑️ 配置满意后,点击 Build and Push,等待流程完成,并检查你的 Unreal 控制台中是否有新的错误。完成此步骤后将会出现一个 新文件夹 - Saved/LinuxServer。此外,一个 新镜像现在会出现在你的 仓库下方的 Edgegap Container Registry 仪表板页面中,并且一个新的 应用与版本 会出现在你的 仪表板中应用程序下方.

☑️ 在你的新应用版本中,设置环境变量 TARGET_FILE_NAME 以匹配你的 DefaultServerTarget 步骤中的值 更多构建方式.

✅ 你现在可以继续下一步了。

故障排除和常见问题

错误:运行 Build 函数失败:Dockerfile 不能为空

  • 某些插件源可能缺失 Dockerfile 和/或 StartServer.sh ,请从你的插件的 GitHub 源版本中复制这些文件到本地插件中。


打开 //./pipe/dockerDesktopLinuxEngine:系统找不到指定的文件。

  • 请确认 Docker 正在你的开发机器上运行。


无效的引用格式 EdgegapLog:警告:OnContainerizeCallback:无法生成容器,消息:失败

  • 请确认你的应用名称已设置,并且不包含尾随空格。

  • 编辑完成后,请务必按 Enter 键确认输入值。


在构建项目时,找不到目标 ‘ProjectName’ 的目标规则文件?

  • 在你的 XYZServerTarget.cs 文件中更改构建配置:


403 禁止访问,无法推送容器,消息:失败

  • 请确认你的 Docker 凭据已正确设置。

  • 如果使用 Edgegap 容器注册表,请确保用户名不包含 app-version-pull ,这是一个仅允许拉取镜像的配置文件。你的配置文件应类似于你的账户电子邮件。

  • 请确认你在账户的 容器注册表中有足够的可用空间。我们建议尝试 更多构建方式,并使用 我们的 API 删除较旧的镜像。镜像会保存在你的本地机器上,直到被删除以用于备份。

👉 下一步

继续到 Unreal Engine 使用我们的 Dashboard Deployment 功能,并了解更多关于停止部署、注入变量和参数化,以及服务器可发现性的内容。

最后更新于

这有帮助吗?