Hidden State Games
Blog
Engineering notes, war stories, and things we learned the hard way building Hidden State Games.
Dev log
Announcing Bay 23
We’re making Bay 23: a co-op extraction game where you and your crew are package-handling robots working a shift in a facility that doesn’t want you reading the labels too closely.
Build infrastructure
BuildGraph without Horde: one-command packaged builds
BuildGraph ships with Unreal and you can run it straight from the command line, no CI server required. Here’s a script that builds and packages your game, the command that runs it, and why it’s worth the setup even as a solo developer.
Dev log
A night chasing a Steam connection bug, and the one-line cause
Friends couldn’t join each other’s games for weeks. We spent a long night fixing real networking bugs, none of which were the cause. The actual problem was a single line left behind by an earlier fix for a bug we never had.
Build infrastructure
Patching Unreal Toolbox's Horde proxy for large files
Unreal Toolbox’s Horde proxy buffers whole responses into memory and restarts itself every time the access token refreshes. With 30-second tokens and a 2.8 GB PDB, nothing ever completes. Two one-line fixes, plus how to build and deploy a patched Toolbox to your team.
Build infrastructure
Setting up Horde's symbol server
Horde ships a Windows symbol server that indexes PDBs out of your build artifacts, so there’s no separate symbol store to feed or clean up. Here’s the server config, the BuildGraph side, how to verify it end to end, and the traps worth knowing before you start.
Build infrastructure
Uploading to Steam from Horde BuildGraph
A cook-to-Steam pipeline in BuildGraph: keeping steamcmd credentials out of the job, VDF templates that default to not going live, generating them robustly, and the path details that make one script work across projects.
Build infrastructure
Running Horde CI on a single build machine
How our per-commit CI is set up on a single on-prem Horde agent: binaries on code changes, cooks on content changes, plus the workspace layout, schedule config, and the BuildGraph details that matter when you don’t have a farm.
Build infrastructure
Two days chasing a 60-second timeout: a Horde UGS-PCB upload debugging story
Self-hosting Unreal’s Horde with an on-prem build agent, our UGS precompiled-binary uploads kept dying at 60 seconds. A dozen dead ends later, the fix was four lines, in a process I hadn’t even been looking at.
Build infrastructure
Self-hosting Perforce and Horde on one cheap cloud box
How a three-person studio runs Perforce Helix Core and Epic’s Horde on a single cloud server with one on-prem build agent: the architecture, how each piece is configured, and the decisions that keep it small.