Horde is a set of services supporting workflows Epic uses to develop Fortnite, Unreal Engine, and other projects.
Features
Horde offers the following functionality, most of which can be enabled or disabled independently:
- Remote Execution: Functionality to offload compute work to other machines, including C++ compilation with Unreal Build Accelerator.
- Build Automation (CI/CD): A build automation system designed for teams working with large Perforce repositories.
- Test Automation: A frontend for querying automation results across streams and projects, integrated with Automation Tool and Gauntlet.
- Studio Analytics: Received telemetry from Unreal Editor and shows charts for key workflow metrics.
- UnrealGameSync Metadata Server: Various features for teams using UnrealGameSync, including build status reporting, comment aggregation, and crowdsourced build health functionality.
- Mobile/Console Device Manager: A system for allocating and managing a farm of development kits and mobile devices.
Unreal Build Accelerator
Unreal Build Accelerator (UBA) is a tool included with Horde that implements lightweight virtualization for third-party programs (such as C++ compilers), allowing it to run on a remote machine - requesting information from the initiating machine as required. The remotely executed process behaves as if it's executing on the local machine, seeing the same view of the file system and so on, and files are transferred to and from the remote machine behind the scenes as necessary.
Unreal Build Tool (UBT) can use UBA with Horde to offload build tasks to connected agents, spreading the workload over multiple machines.
UBA only supports Windows in Unreal Engine 5.4. Support for Mac and Linux are planned for a future release.
Getting Started with Horde
You can find everything you need to get started with Horde on the EpicGames GitHub repository.
If you need access to the repository, follow the instructions on the UE on GitHub page.