Roost, Terrain, and Sound

The last few posts have been heavy on the structural elements of what I’m doing and how I’m working to make LLMs work for me effectively without micromanagement, and seeing how far I can push things before that begins to come off the rails. This post is going to include a little bit of an update on the structural element, but it’s also a chance for me to show off a bit more player-facing shininess.

The game now has music and sound effects, with an infrastructure that will help me deal with a design problem that plagued me in the first two games. It also has a terrain system that doesn’t look like programmer art.

One key thing to note before I get into it: I am not using AI to produce art assets for the game, beyond a placeholder company logo and some very generic-looking placeholder UI elements. All actual art and sound in the game is human-produced.

Quality Requires Visibility

Quality requires visibility. You cannot fix — or even trust — what you cannot see. That’s true in any project, but it becomes even more urgent when the team doing the work is a software factory and you’re not reading every line of code.

When I’m not micro-managing the implementation, the thing I’m actually managing is my own insight: the gap between what the system was intended to do and what it’s actually doing. So let’s go over a little bit of what I’ve done to ensure I’ve got the visibility I need to ship a robust experience while using unreliable coding agents to do the heavy lifting.

In Which I Intervene in the Code

(Image credit: Hang Xu)

Three issues emerged that warranted some manual intervention this week. All three have prompted me to refine the process a bit more.

  1. After auditing the codebase for needless defensive guard code, neither Claude nor Codex managed to find any.
  2. The overhaul to how sources / destinations are specified silently broke the Fleeing mechanic for burning orcs.
  3. Low usage of Haiku and Sonnet compared to Opus.

So here’s what happened, and what I did about it.

The Meta-Game Begins

The original Hordes of Orcs games were pretty simple things. Everything was available straight away — every map, every tower, every upgrade, every spell. That’s not a bad thing, and I don’t regret it. But it does mean people burned through all of the content pretty quickly.

For this game, I want the experience to last longer. That means two things: there needs to be a meta-game, and it needs to be a lot easier to author new maps. The last six days were largely about both — and about the unanticipated consequences of getting there.

Progress, 37 Days in

Three posts in, this series has been almost entirely about process — the factory, the sub-agents, the invisible work that keeps a codebase from strangling itself. Every one of them ended with some variation of “the game continues to come along nicely,” and asked you to take my word for it.

This post is me finally showing my work. Here is roughly a minute of Hordes of Orcs 3 as it stood on day 34.