Lazy loaded image
🌐UE 5.5 使用 Horde + Unreal Build Accelerator (UBA) 搭建联机编译服务
字数 1366阅读时长 4 分钟
2025-6-5
2025-6-5
type
status
date
slug
summary
tags
category
icon
password
<ins/>

前言

只要在使用 Unreal 的游戏工作室工作过,应该都用联机编译工具,例如 FastBuild、SN-DBS 等。如果你不知道联机编译是什么,简单来说就是你的机器可以加入一个集群,在启动编译任务的时候,可以自动派发一部分任务给集群中的空闲机器执行,从而达到加速编译的效果。
 
之前 UE 虽然支持这类工具,但都是依赖三方,最近几个版本 UE 自己捣鼓了一个 Unreal Build Accelerator (UBA),它就是官方的联机编译工具,官方的工具肯定有维护更新上的优势,更符合 UE 宝宝的体质。
 
Horde 是 UE 的一个服务中间件,它的野心更大,集 UBA Agent 管理、持续部署、Unreal Game Sync 等多功能为一体,我们今天要介绍的 UBA 也跟他有关。
 
要注意的是 UBA 虽然在 UE5.4 就可循迹,但是真正开始落地支持应该是 5.5,我自己测下来是 5.5 才能正常使用 Horde + UBA 的联机工作流。
 
下面介绍一下怎么安装使用 Horde 和 UBA。

Horde Server 安装

首先,UBA 集群需要有一台中心服务器,我们找一台机器在其上安装 Horde Server 即可,Horde 的安装包在 /Engine/Extras/Horde/UnrealHordeServer.msi,不需要编译项目,UE 已经把安装包打好放在这个目录下了,我们直接安装。
notion image
 
记住这里的 IP,13340,后续直接通过 http://LanIP:13340 即可访问 Horde 服务:
notion image

Agent 配置

完成安装之后,我们需要在需要联机编译的电脑上安装 Horde Agent,以便 UBA 与 Horde 服务进行通讯。要注意需要在跟刚刚的服务器在同一个局域网下,然后我们在浏览器访问 http://ServerIP:13340 进入上一步的页面,如果无法打开,请检查防火墙设置。
 
之后进入 Downloads 页面,直接下载 Horde Agent Installer:
notion image
 
安装的时候 Horde Server URL 填前面的服务器地址,注意这里一定要填对,可以提前 ping 一下 Server 看能不能通,要是不对是连不上的,Sandbox Directory 可以自己改一个喜欢的路径,它主要是用于存放集群里别的机器传过来的临时文件的,如源码、编译工具链等。
notion image
 
完成之后我们选 Enroll agent with Horde server:
notion image
 
会自动弹出管理界面进行 Agent 的注册:
notion image
 
完成注册后,我们还需要为 Agent 分配一个 Pool,简单来说就是分类,因为不同的 Task 适合不同类别的机器弄,Horde 不止可以做分布式编译,日后估计还要支持分布式烘培等,而且 Horde 还支持多个操作系统,所以分类很重要:
notion image
 
这里我们选 Win-UE5 即可:
notion image
 
最后的效果,等集群上的机器都安装好 Horde Agent,这里会有很多机器,他们会自动共享编译任务和算力池,我这里暂时装了两台:
notion image
 
完成之后我们在需要编译的机器上打开 /Engine/Saved/UnrealBuildTool/BuildConfiguration.xml,然后按我这样进行配置:
 
这里 {{ SERVER_HOST_NAME }} 替换成 Horde Server 的局域网 IP。之后直接启动编译即可看到构建日志中会输出类似字样,即说明成功了:
notion image
 
如果你想看谁在为你打工,可以在刚刚的 BuildConfiguration.xml 里面加上:
 
会弹出一个可视化的窗口,可以看到每一个 .obj 在谁的机器上编译,花了多长时间之类的:
notion image

算力配置

默认情况下你的机器会 100% 共享给集群,只要有个人编译就会让你的电脑 CPU 和内存占用直接 100%,我们可以使用 UE 的工具 UnrealToolbox 进行配置,来让自己的电脑不要贡献过多算力,只在空闲的时候帮助集群。
 
同样的,UnrealToolbox 也是在刚刚的页面下载:
notion image
 
Server 一栏跟刚刚一样填 Horde Server 的局域网 URL:
notion image
 
安装完成后打开应用,进入 Horde Agent 一栏进行设置:
notion image
 
首先是 Mode,Dedicated 是完全贡献,一般只给构建机之类的用这个模式,日常使用的开发机使用 Workstation 即可,Disabled 则是直接不接受派发任务。
 
Workstation 下有三个设置可以调整进入空闲状态的条件,而只有进入空闲状态才能执行集群派发的任务,适当配置就不至于在别人编译的时候让你的电脑变的过卡。
 
我们在任务栏托盘的 Unreal Toolbox 图标或者 Horde Server 页面都能看到自己 Agent 的状态,可以多调调上面的参数,达到一个很好的平衡:
notion image

参考资料

 
上一篇
利用 C++ Concepts 做编译期检查
下一篇
Mac Mini M4 翻身做 NAS 折腾记 (三)

评论
Loading...