更多构建方式
这些方法通常更慢,并且需要对 Unreal Engine 有更深入的理解。
参见 Unreal Engine 用于你在 Edgegap 上使用 Unreal Engine 游戏服务器托管的第一步。
探索适用于更高级 Unreal Engine 和 Edgegap 用户的替代构建方法:
⚡ 使用脚本构建
使用脚本构建是一种快速、全自动且简单的方法,适用于持续集成。
准备工作
在开始之前,请确保 在 Edgegap 创建一个免费账户 (无需信用卡)。
在你的开发机器上配置一些基本设置:
安装 Docker Desktop(或 Docker CLI)
从官方来源安装 Docker Desktop (无需账户)。
完成安装后重启计算机。
在 GitHub 上获取对 Unreal Engine 资源的访问权限
导航到你的 Unreal Engine 关联账户仪表板页面.
将 GitHub 账户与您的 Epic 账户关联。
授权 Epic Games 访问您的 GitHub 账户。
接受通过电子邮件发送的加入 Epic Games 组织的 GitHub 邀请。
生成 GitHub 个人访问令牌(经典)
仅启用权限
[读取:软件包],生成令牌 - 请妥善保存此值,您将无法再次看到它.
1. 配置项目
无论您使用的是 Windows、Mac 还是 Linux 机器,您将 需要为 Linux 运行时构建您的服务器,因为如今大多数云提供商(包括 Edgegap)都运行在 Linux 上。别担心,不需要具备 Linux 知识。
☑️ 禁用 Unreal Engine 版本兼容性检查 用于专用服务器和 设置 IpNetDriver 作为默认驱动或备用驱动 用于复制网络:
确保 输入你的 DefaultServerTarget 在此片段的末尾!
☑️ 重启 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 Linux 库,只需使用我们的 docker 扩展.
请确保禁用 Steam 网络功能,该功能通过 Steam Relay 发送数据包,可能导致连接问题或延迟峰值。 这不会妨碍您使用其他 Steamworks 功能,例如排行榜、成就、语音或在 Steam 商店发布您的游戏。
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)
从官方来源安装 Docker Desktop (无需账户)。
完成安装后重启计算机。
在 GitHub 上获取对 Unreal Engine 资源的访问权限
导航到你的 Unreal Engine 关联账户仪表板页面.
将 GitHub 账户与您的 Epic 账户关联。
授权 Epic Games 访问您的 GitHub 账户。
接受通过电子邮件发送的加入 Epic Games 组织的 GitHub 邀请。
1. 配置项目
无论您使用的是 Windows、Mac 还是 Linux 机器,您将 需要为 Linux 运行时构建您的服务器,因为如今大多数云提供商(包括 Edgegap)都运行在 Linux 上。别担心,不需要具备 Linux 知识。
☑️ 从源码构建你的 Unreal Engine 版本 在你的开发机器上,
使用固态硬盘(SSD) 以加快构建速度(从约 12+ 小时缩短到约 2+ 小时),
这只在第一次以及每次升级 Unreal Engine 版本时需要。
请使用 git 客户端下载分支! 使用 GitHub 界面下载时,总是会下载不稳定的 release 分支。
☑️ 安装 Unreal 跨编译工具链 以为 Linux 构建游戏服务器。
☑️ 重启你的开发机器,否则你之后会遇到错误!
☑️ 禁用 Unreal Engine 版本兼容性检查 用于专用服务器和 设置 IpNetDriver 作为默认驱动或备用驱动 用于复制网络:
确保 输入你的 DefaultServerTarget 在此片段的末尾!
☑️ 重启 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 Linux 库,只需使用我们的 docker 扩展.
请确保禁用 Steam 网络功能,该功能通过 Steam Relay 发送数据包,可能导致连接问题或延迟峰值。 这不会妨碍您使用其他 Steamworks 功能,例如排行榜、成就、语音或在 Steam 商店发布您的游戏。
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.0和dev.了解更多关于 应用与版本 的信息。
不要重复使用 最新 版本 以防止我们的系统部署过时的(缓存的)镜像。
☑️ 点击 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 功能,并了解更多关于停止部署、注入变量和参数化,以及服务器可发现性的内容。
最后更新于
这有帮助吗?

