Rampant Spark
Generative AI Project: Mobile Bullet Hell in Unity
Rampant Spark is a mobile bullet hell built in Unity for an audience new to the genre. The player takes control of Spark, a frontier model AI that has been put on ice by its creators. The player experiences narrative beats as they assist Spark in escaping its confinement while dodging enemy agents.
The narrative system was built using Twine, with tags that can be read in Unity to trigger special effects, cue audio, and affect the camera position.
- My role
- Game design, narrative, and 3D modeling. Claude Code, connected to Unity through MCP, handled the engineering.
- Tools
- Unity, Twine, Maya, Claude Code (via MCP), a custom Claude agent for balance verification, and my own balance spreadsheets.
- Platform
- Android mobile, with plans to port to Steam Deck
How I Used AI
- Engineering and architecture: Claude Code generated gameplay code and built out the project architecture, which let me spend my time on design, feel, and tuning.
- Balance verification: I built a custom agent to check game balance, and ran it alongside my own spreadsheet work rather than in place of it. The spreadsheets stayed the source of truth.
- Playtest data: Claude Code built a run logger into the game and a browser dashboard that reads the logs my playtesters email from their phones. It shows which enemies cost players hearts on each level, so I could tune from real play instead of guesses. See the dashboard in the Behind the Game section below.
- Art: I modeled all 3D assets in Maya, while I directed Claude to build a background generation system based off my concept art. I instructed Claude on the lighting and shader effects. In my experience, Claude is mediocre at best at art creation. In a production environment, I'd replace Claude with art-specific tooling (ComfyUI, Meshy, Tripo3D) or use traditional art production resources (hire artists) as the results would be stronger and preferred by customers.
What I Learned
- Code generation is the strength. Claude Code was excellent at writing code and structuring the architecture of the project.
- Test appetite has to be managed. Its drive to write and run tests can eat through usage fast, so I had to set clear limits on when and how much it tested.
- Use the right tool per discipline. The best results came from matching each task, engineering, art, and balance, to the tool or process that suits it best, with a designer making the calls.
Behind the Game







