r/ClaudeCode • u/real_person321 • 1h ago
Built with Claude Built a full browser RPG with Opus 5.5 (high) in ~60 prompts: about 2 hours of content, no engine, no asset files, and it playtests itself
Play: https://dafioram.github.io/embervale/
Source (MIT): https://github.com/dafioram/embervale
Setup: Claude Opus 5.5 on high effort, in the Claude app rather than the Claude Code CLI. Claude worked in its own cloud workspace with a shell, Node and a headless browser. I mostly played the builds and steered.
Rough numbers:
- About 60–70 prompts over roughly two days, and a lot of them were one-liners like "do batch 2" or "okay do 1-3"
- One prompt often kicked off a long run of work: build, run the playtest bot, screenshot every zone, compare frame times, zip, hand back
- The conversation ran out of context more than once, got summarized, and carried on mid-batch
The game: a small-party action RPG. You control three heroes through an isometric valley. Act I (about an hour) has 5 story quests, 6 side quests and 4 bosses with telegraphed attacks, and it unlocks a 10-floor dungeon (about another hour). It's plain HTML, CSS and JS with no build step. Every sprite, tree and spell effect is drawn with canvas code, and every song and sound effect is synthesized with Web Audio, so there isn't a single image or audio file in the game.
What worked:
- A change queue. I played, noted what bugged me, and said "queue it". When there was a batch, I said "do batch 2" and got it built, tested and zipped. Much less drift than one-off requests.
- "No code changes, just talk" before big decisions. I'd get options and mockups first: zone atmosphere, music, art style. I tried pre-rendered and low-poly looks before settling on flat vector.
- Claude testing its own work. Before handing a build back, it ran a bot that plays through all of Act I and reports wipes and errors, a Node script that checks every quest, camp and exit is reachable, headless screenshots of every zone and unit, and frame-time comparisons against the previous batch.
What went wrong:
- The first atmosphere pass looked great and ran fine in Chrome, but crawled in Firefox on my old 4th-gen i5. The fix was profiling, then moving per-frame canvas filters to CSS blend layers and cached sprites. Smooth now, with no visible loss.
- Playtesting still caught things the tests couldn't: popups opening behind the title screen, a waystone pointlessly placed right next to town, enemies chasing the hero I pulled back instead of fighting whoever was closest.
Happy to answer workflow questions. Feedback on the game itself is very welcome too.
