I know @EpicGames isnt talking about it, but I want to make a 🧵about Horde.

TO BE CLEAR! Horde is NOT production ready. I am NOT encouraging you to switch to Horde now.

It is awesome though and requires BuildGraph. I do want to encourage you to use BG so youre ready for Horde.
What is Horde: It's a build system specifically built to use BuildGraph. It's mainly built for #UnrealEngine, but it can build anything really. BuildGraph can do whatever.

Horde can distribute jobs across agents, scale VMs, alert Slack, detect and assign issues, and more.
Out of the gate Horde helps us with CI and visibility into CL status.

We can clearly see what steps are good (green), has warnings (yellow), or has errors (red).

We can see how long steps take over time

If there are warnings/errors they are clearly highlighted and easy to find
It has a UGS endpoint built in. No more need to run that silly metadata IIS service. So our view in UGS matches our view in Horde, without any extra effort.
It has awesome built in utilization reporting so you can understand what projects are using what capacity of their assigned build machines.
It has built in pre-flight support. Most amazingly is it can submit CLs on successful pre-flight build.

Devs simply shelve CLs, run pre-flight, and move on to their next task.

The CL gets tested, if it's good it goes in, if it has problems they get a message on Slack.
Triggering jobs manually is awesome because you can set sane defaults, while still allowing users to adjust settings.

Here is a pre-flight job for us.

By default we only build development on pre-flight. If they are trying to fix a shipping issue they can add that.
Meant to include this image. If the pre-flight has issues, Horde messages you directly on Slack and tells you exactly what went wrong, and links to the errors.
Horde also supports managing consoles. Give it a pool of dev kits, when you run your Gauntlet tests Horde will assign that test a dev kit, and when the test is done the dev kit gets put back in a pool.

Just let Horde handle it!
We currently have Horde doing: pre-flights, CI, nightly full builds, nightly non-unity, DDC fill, clean up jobs (symstore, file retention, etc.), publishing to Steam, HLOD building, some testing, and more to come.
And one of the best features of Horde: It's a modern application. Runs in a container, can scale horizontally, and is (other than the current and VERY understandable complete lack of documentation, because it isn't ready yet!) a pleasure to run and administer.
We currently use Horde on all but one of our projects here @splashdamage and the one project not using it will when we can.

I really do believe Horde is the future of #UnrealEngine build systems.

Which is why I encourage everyone, if you're not using BuildGraph, get cracking.
/end 🧵

Going to stop posting before I post an image of something I shouldn't.

But yeah... Horde is pretty great!

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with Regner Blok-Andersen

Regner Blok-Andersen Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Don't want to be a Premium member but still want to support us?

Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

Follow Us on Twitter!

:(