v0.76 ships. Organization is everything.
v0.76 closed Friday. The T1 dungeon now has the full combat loop running end-to-end: nine new enemies across five archetypes, treasure rooms scattered through it with locked doors, and a real boss fight against Vector, the Null Guardian, at the bottom. Four phases of work, each big enough to be its own ship, landed in one piece because the planning held.
The thesis I keep relearning
Twenty years of building software has taught me one thing over and over, and apparently I’ll keep relearning it: organization, planning, and devops aren’t adjacent to the work, they are the work. Features come out the back end of a pipeline, and the pipeline is what decides whether you ship. A team with mediocre code and a great pipeline outships a team with great code and a broken one, and I’ve watched it happen at every scale.
The last few days as proof
The last few days since v0.76 are a clean example, but they’re only the latest cut in an arc that’s been running since the beginning. The pipeline didn’t appear on its own. I’ve been building it the whole time. PM planning lives in-house now, under pm/roadmap/: a filesystem tree of milestone → feature → story → bug, structured YAML on every node, grep-able from the terminal and not dependent on any SaaS. GitHub Actions runs the full release chain end to end. A version-bump commit on main triggers auto-tag.yml, which creates the tag and dispatches release.yml, which builds binaries for three platforms, cuts the GitHub Release, then dispatches the marketing site rebuild downstream. The marketing site itself lives in its own repo with its own deploy, pulling the game’s changelog at build time so the two ship cycles never block each other.
v0.76 was the first feature where all of that was essentially straightened out. The actual game work, meaning the boss, the enemy roster, and the treasure rooms, got to be the focus instead of being interrupted to firefight the pipeline.
And the last few days have finished the job. I split the monolithic CHANGELOG.md into a per-version directory with YAML frontmatter, which kills the merge conflicts that show up when two branches both want to add release notes at the same time. I fixed an awk step that had been silently breaking GitHub Releases ever since the changelog refactor. I rebuilt the marketing site’s parser to handle the new directory shape, and rewrote half the public copy to match what the game actually does now. All of it is devops housekeeping, and every hour I spent on it pays back tenfold the next time a release goes out, because now the next release is one new file in a directory and the pipeline takes care of the rest.
What it buys
The more CI you have, the more robust your phasing, the easier it is to break up work and bring a vision to fruition. v0.77 is the Quarantine NPC + the first diegetic shop. It’ll ship faster than it would have a week ago, because v0.76 left the rails in better shape than it found them.
That’s the whole game.