A full chapter with Claude Code: 34 rooms, two new mechanics and how they combine
We asked Claude Code to grow our platformer into a four-section chapter with crumbling blocks and refill orbs, one session per section. Play all 34 rooms and see what it cost.

Before you start
- A browser platformer that keeps its rooms as data. We started from the 12 rooms of the re-run at the end of part 6.
- Claude Code, started in the game's folder, plus Node and Playwright for the skill's measuring script.
- The skill at the end of this page, in the folder's .claude/skills/platformer-levels/. Then give each prompt below to a fresh session.
What we asked“I want to turn this into a real chapter that takes a while to finish. First add two new things: crumbling blocks that shake and fall a moment after you land on them, then come back after a while, and refill orbs that give you your double jump back in mid-air and reappear after a few seconds. Keep each section's rooms in its own file so sections can be built separately, keep the rooms we already have as the first section, and add a death counter, a timer and an end screen that shows them. Test both new things. Don't build new rooms yet.”
What happened
- Added crumbling blocks (C) and refill orbs (O) as new tiles
- Moved the 12 existing rooms into levels/section-1.js, one file per section
- Added deaths, a timer and an end screen
- Wrote 11 tests that run the real game frame by frame
- Wrote seven rooms from the jump numbers: ground jump 112 px, double jump 201 px, orb-refilled third jump about 290 px
- Ran every route in a copy of the game with the orbs taken out: every orb room failed
- Tuned five rooms one change at a time
- Re-measured the new rooms at 200 runs on two seeds
- Added a bonus door tile B and rooms wider than one screen to the game
- Built 8 main rooms and 2 bonus rooms
- Removed the orbs in a copy: all six orb rooms failed
- Re-measured the new rooms at 200 runs on two seeds
The chapter’s theme is staying in the air. Crumbling blocks take the ground away as a place to rest: they shake for half a second after you land, then drop. Refill orbs give you rests in mid-air, because each one hands back the double jump you just spent. The last section puts them together with the springs from earlier parts: a cracked floor that drops you onto a hidden spring, a cracked lid you have to stand still on, a run of orbs with nothing to land on, and a climax that uses all three across almost three screens.
The whole chapter on one strip, built from the real room files and our measurements. Each new mechanic enters on its own, then they combine in section 4, and the pass rate dips and recovers once per area. Tap a room to watch its measured route.
Claude's chapter. Arrow keys or A/D to move, Up, W or Space to jump, and again in mid-air to double jump. Enter on the end screen plays again. Two rooms in the last section have a purple bonus door with a glow and a spike crown behind the start: hop onto its step to go in. The long way has a checkpoint flag on its middle platform. There is no way to skip ahead, and our scripted run reaches section 4 after about 74 seconds. We only added the start screen and loaded Phaser from this site.
How it was built
Each section came from its own Claude Code session and lives in its own file, so a session only had to add one file and one script tag. Nothing had to be merged. The first session added the two new things and the end screen without building any rooms. Then came one session for each new section, and a last one for the problems our checks found across the whole chapter.
Inside each session, Claude Code did all the testing itself: it wrote a route for every room, ran the skill’s measuring script, read the table and changed rooms until they hit their targets. Each “you” line in the conversation above starts a new session or continues one. The four that start a section are prompts any reader could send. The other two came from our own checks after a session ended: the follow-up in section 2 and the list of five fixes. A reader wouldn’t have those checks, so the result you’d get from the section prompts alone is closer to what Claude reported before them.
| Session | What | Time | Cost |
|---|---|---|---|
| 1 | Crumbling blocks, refill orbs, section files, deaths, timer and end screen | 12 min | $2.47 |
| 2, earlier try | Section 2: six rooms we didn’t keep | 54 min | $6.41 |
| 2, second try | Section 2, crumbling blocks (cut off, see below) | 19 min | about $3.57 |
| 2, final | Section 2: 7 rooms, plus our follow-up | 48 + 8 min | $8.23 |
| 3 | Section 3, refill orbs: 7 rooms | 22 min | $2.97 |
| 4 | Section 4, all together: 8 rooms, 2 bonus rooms, bonus doors and wide rooms | 41 min | $7.18 |
| 5 | Five fixes from our checks | 13 min | $2.62 |
| Total | 3 h 37 min | about $33 |
Section 2 took three tries. We didn’t keep the six rooms from the first one. The second died after 19 minutes. The skill’s measuring script let Chromium’s GPU process grow to 5.6 GB during a 200-run measurement until the machine ran out of memory, so we fixed the script in the skill and ran the session again from the same starting files. That run never reported its cost, so its figure is worked out from its token counts.
What we measured
The chapter has 12 rooms in section 1 (the old game), 7 in section 2, 7 in section 3 and 8 in section 4, plus 2 bonus rooms. Every route finishes with no timing error. In our final measurement with the skill’s script, all 34 main rooms land inside their target band for a player who improves as they go. The four test rooms come out at 50%, 44%, 56% and 54%. Skilled players pass every main room at least 98% of the time.
A clean run with no deaths takes 1 minute 47 seconds. To estimate a first play, we took each room’s pass rate for the improving player, counted the retries it implies, and added about 5 seconds per room for looking around. That comes to about 5 minutes, and 5.5 to 6.5 minutes for a player who stays at the new player’s timing. We wanted 10 to 15 minutes, so the chapter is shorter than we aimed for. The simulated players already know the route and only make timing errors. They never stop to read a room or get confused, so real first plays will probably take longer. We’ll measure that with real players.
Open problems
- Clearing a bonus room skips the room it branches from. After Thin air you never play Spring, crack, spring, and Last light ends the chapter without the calm walk in Homeward. That is what we asked for in the last session, but we want to watch real players before keeping it.
- The bonus doors’ signal is small. The spike crown is two 14 px triangles and the glow is half cut off by the screen edge. Red spikes may also read as “this door hurts” rather than “this is hard”.
- Spring, crack, spring is steep for room 4 of a section. It is on target for the improving player (68%), but a new player passes only 28%, the lowest of any develop room in the chapter.
Get the skill. The level rules work for any engine, and the measuring script runs browser games such as Phaser or plain canvas. You can also install all seven skills as a Claude Code plugin or replay this part from its starting files.
Recorded with a clean Claude Code: no personal skills, plugins or MCP servers. The sessions had platformer-levels and our earlier platformer-feel skill installed.
The skill that made it work
It makes Claude teach each new element in order, check every room against the game's jump numbers, and measure the whole chapter with the bundled script so the difficulty rises in waves.
- Keep levels as data: each room in a small grid or list (tiles, hazards, pickups, start, exit), separate from the game code.
- Write each room's one-line story first: one sentence about the single thing the room asks of the player. Build only what serves it.
- Teach in order, without text: each new move or object is shown safely, then used, combined and tested.
- Check every room with the jump numbers: work out from the game's constants how far and how high the player can jump, check every required jump and every tempting wrong jump, then play each room with a scripted route.
- Plan the whole game, not just a room: bring in one new element per area through introduce, develop, twist and test, and measure every room so the difficulty rises in waves as the player improves. For browser games, use the bundled script: add its small hook and write a route per room.
- Report like a level designer: for each room, its story, what it teaches, its hardest jump as a share of the maximum, and whether the scripted route finished.
Save it as .claude/skills/platformer-levels/SKILL.md in your project.
Was this useful?
Thanks, we read every message.
Part 7 of Make a complete platformer with AI

