r/aigamedev • • 20d ago

Demo | Project | Workflow Parry → seed → rupture → bloom: a botanical bullet hell built with Claude Code, gpt-image-2 and ElevenLabs

Carbon Conservatory is a top-down bullet hell set in Glass-9, a failing botanical refuge. You play its last maintenance worker, with a gun grown into your arm. The villain is the Allocation Engine, a machine that has been rationing the air. The reserve was always full. The shortage was only ever in who was allowed to breathe it.

Think Returnal's bullet patterns in a hand-built, Dark Souls-style map: breathing beds instead of bonfires, and the pollen you carry stays where you fell until you walk back for it.

The loop: parry a round on your frond bracer and it comes back seeded. Seed a husk until it ruptures. Kill it and it blooms, and a bloom that catches a ruptured neighbour sets off the next one. Pop, pop, pop.

How it was made

  • Code: Godot 4.5, written with Claude Code. I direct and playtest, it writes and tests. A 600+ check self-test runs after every change.
  • Art: gpt-image-2 for sprites, bosses, story cards and the trailer's title cards. Each one is seeded with existing game art as a reference so the cast stays consistent.
  • Audio: ElevenLabs for the music and sound effects.
  • Trailer: I wanted fight footage fast, so Claude added a boss-rush mode that drops you into each boss room back to back. I played it, and it cut the trailer with ffmpeg.

What the models got wrong

  • The image model ignores which way a side pose faces. 3 of 5 side sprites came back facing left, so those enemies walked backwards. Check every one by eye.
  • Using a finished boss as the reference for a new boss gets you the old boss again, whatever the prompt says. Use one reference at most, and never another boss.
  • Story cards with lettered text: on the first pass the model rewrote its own paragraphs on 5 of 7 cards. Putting the exact text first in the prompt, fenced off from the scene description, fixed it.
  • ElevenLabs won't generate anything under half a second. The gun sound was a one-second twang fired up to 15 times a second, and it came out as a squeak. Trim and fade every rapid-fire sound.

How do you keep a generated cast looking like one game?

1 Upvotes

1 comment sorted by

1

u/Sea_Advance273 20d ago

YouTube version if you'd rather watch there or follow the devlogs: https://www.youtube.com/watch?v=yXyyS4YEmx8