We’re managing multiple games built on different Unreal Engine 5 versions and are evaluating the best architecture for our Horde build server setup. I’d appreciate guidance on the recommended approach for this scenario. We currently have games running on multiple UE5 versions (5.5-5.7), with the horde server running 5.7.
Can a single Horde server instance reliably support builds for multiple Unreal Engine versions, assuming all those engine versions are older than (or compatible with) the Horde server version itself?
If a single Horde server cannot support multiple engine versions, what is the recommended architecture?
Are there any plans for separating Horde from the engine source, like Zen Server is?
To clarify, are you saying that the horde versions of UnrealAutomationTool & BuildGraph should be integrated into the game depots? Or that any customizations to UAT/UBT should be back ported to the versions in the game depots?
For example, if I am running Horde from the UE5.7 stream, and building a game running UE5.5, should I integrate the UAT/UBT from 5.7 to the game’s UE5.5 source? Or be more selective, and integrate any local customizations?
No, you don’t need to port your Horde versions of UAT/BuildGraph back to your game depots, but any customizations you make on top should be considered.
The major concern for compatibility is any change to the formatting of the BuildGraph that Horde reads.
This generally boils down to the schema/format of the JSON file that the server reads to understand the graph.
The last time we made changes to this ourselves was in 2023 (CL 30051400), and we also ported the change to 4.27.
If any schema changes occur in the future, they would also need to be ported to these projects.