Three games. One developer. Four AI collaborators. Seventy-two hours of intense pair programming. And the most useful thing I’ve learned has nothing to do with prompting.
The most useful thing: every time an AI tool fails in a predictable way, that failure mode is a spec for a tool you should build.
The Failure → Tool Pattern
Suno refuses public domain melodies → Built a local MIDI orchestration pipeline with FluidSynth and a custom voice-leading engine.
Copilot hallucinated biblical content → Created a fidelity-gate workflow where domain expertise constrains the agent before it generates.
Assets pile up in the wrong directories → Built a download-and-file pipeline that puts generated content directly into Godot’s resource tree.
Pitch drifts across multiple Suno generations → Developed a reference-tone workflow: generate a “tuning fork” track first, use it as the pitch anchor for all subsequent generations in that scene.
Agent says “it works” but it doesn’t → Built the live-test loop: never evaluate code by reading it, always evaluate by playing the game.
This isn’t clever. It’s what happens when you use AI tools at production intensity for long enough. The failure modes become obvious. The solutions become necessary.
The Toolchain That Emerged
| Domain | Primary Tool | Built When It Broke |
|---|---|---|
| Code | Copilot CLI agent mode | [[PLAN]] mode, fidelity gates, live-test loop |
| Music | Suno | Local MIDI pipeline, voice-leading engine, anti-elegy prompting |
| SFX | Stable Audio | Curation workflow (10 candidates → 2 usable) |
| 2D Art | Flux 2 Klein (local, RTX A1000) | LoRA pipeline for character pose consistency |
| 3D Models | CC0 packs + TripoSR | Cleanup workflow (generated 3D fills gaps only) |
| Pipeline | Caraxes (OpenClaw) | Download-and-file automation, asset naming, resource wiring |
[DIAGRAM: Two-column before/after showing the AI tool on the left and the custom tooling layer built on top of it on the right, for each domain]
What Doesn’t Work (Yet)
Honesty about current limits:
3D asset generation isn’t production-ready for games. Image-to-3D produces models that need manual cleanup. CC0 packs (Kenney, Quaternius) do the heavy lifting — covering 60-70% of assets. Generated 3D fills gaps for culturally specific items only (Bronze Age tents, stone altars).
AI-generated SFX needs curation. Stable Audio gives you ten options; maybe two sound right. Faster than Foley recording, but not instant. The skill is knowing which two to keep.
Code agents still need a human with taste. They’ll default to copying the previous mission’s gameplay type. They’ll build a meter that drains on its own instead of requiring a real player decision. Design docs constrain. Rejection of mediocre output is the human’s job.
The Meta-Lesson
Solo gamedev with AI isn’t about replacing skill. It’s about removing the domains where you’d be mediocre and concentrating your energy where you’re irreplaceable.
I design systems and direct creative vision. I enforce biblical fidelity and historical accuracy. I decide what feels fun and what feels hollow. I can’t compose orchestral music or model 3D characters from scratch. Now I don’t have to.
Pick the best tool per domain. Write design docs that constrain your agents. Keep taste as the bottleneck, not production capacity. And when a tool breaks — build the fix. That’s where the real toolchain comes from.
The Numbers
- 297 turns of conversation with Copilot
- 16 checkpoints
- 188 files touched
- 72 wall-clock hours
- 12 missions built
- 100+ commits
- 5 parallel agents on git worktrees
- 3 games in progress: Judean Adventure (Godot 4), Bloodfeud (TypeScript fighter), Dragonbane (Phaser 3 platformer)
None of this is released yet. Judean Adventure is the furthest along — twelve playable missions in the Patriarchal Era. This series documents the build, not the launch.
I write about building with AI agents, the stuff that actually works and the stuff that breaks. Follow me on LinkedIn for more.