From 34 rooms in a row to a journey: rest spots, side challenges and a storm chase
One prompt and a skill gave our platformer chapter a shape: five sections with rest spots and a map, calm rooms, long runs, side rooms with stars, and a storm chase finale. Play it.

Before you start
- The chapter with pixel art from part 11: 34 rooms on the main path plus 2 side rooms, in a single-page Phaser game with juice, sound, art, tests and a route for every room.
- Claude Code, started in the game's folder, plus Node and Playwright for the tests and the measurement.
- The skill at the end of this page, in the folder's .claude/skills/platformer-levels/. Then give the prompt below to a fresh session.
What we asked“The chapter is 34 short rooms in a row, with almost no room to breathe and no real ending. Turn it into a journey: a calm rest spot at the start of each section, rooms of different lengths with easier stretches after hard ones, a few optional side challenges with a collectible, a chapter map between sections, and a chase finale at the end instead of a boss fight. Don't change how the character moves.”
What happened
- Loaded the platformer-levels skill
- Read the game code, the level files, the routes and the tests
- Ran the route check, the tests and a full difficulty measurement as a baseline
- Added stars, rest spots, the chapter map and the storm to the game code
- Rebuilt the level data section by section, with a new fifth section for the finale
- Wrote a route for every new room
- Fixed the measuring hook so each attempt starts with the room's star uncollected
- Built the three storm segments and tried several storm speeds
- Updated the tests for the new structure; all 29 pass
- Checked that removing an orb from Orb steps or Orb ladder makes its route fail
- Took screenshots of every room and looked at them
- Moved the storm's start on screen and made it more visible during its warning
- Made the rest spot's far-off island smaller and hazier
- Checked the end screen and the map on it
- Ran the final measurement and re-measured the rooms near a target edge with 200 runs and two seeds
After one prompt, our chapter is a journey in five sections. Each one opens at a campfire with a map of the chapter, the hard rooms are broken up by calm ones, five side rooms hide a star, and it ends with a storm chasing you through three rooms before a calm walk at sunrise. All 53 routes still pass, and the jump hasn’t changed.
Why a row of rooms feels like a test
Before this part, every room was one screen and about 2.5 seconds long, one after another, with nothing to mark progress. Good chapters rise and fall, with breathers after hard stretches (Mark Davies on game pace), named parts and optional collectibles like Celeste’s chapters, short side courses like Mario Wonder’s Break Time! rooms, and an ending that builds to a peak, like Celeste’s Old Site chase or the escapes in Ori. The skill now asks for all of that.
Both outlines are drawn from the real level files and the measurement reports. Each block is one room, as wide as its clean run takes. Tap a room for its name, kind and pass rate.
Rest spots and the map
The new outline
| Section | Rest spot | Rooms | Side room | Ends with |
|---|---|---|---|---|
| 1 First steps | Trailhead | 15 | Sky steps | Overlook |
| 2 Crumbling ground | Camp | 9 | Crumbling spire | Solid ground |
| 3 Refill orbs | Lantern rest | 9 | Orb ladder | Glow walk |
| 4 All together | Ruined gate | 10 | Thin air, Last light | Homeward |
| 5 The storm | Watchtower | 5 | none | Sunrise |
Claude added six calm rooms, so there are never more than three hard rooms in a row. Spike run, Keep moving and Orb steps became two screens wide, and The long way already was, which gives four long runs. Three side rooms are new and the two old ones got a star. A star counts only if you leave the room holding it, and nothing needs one. The count shows under the time, on the map and on the end screen.
The storm chase
The storm is a wall that rolls in from the left on a fixed schedule. It rumbles in place for 1.2 to 2 seconds, then moves, and touching it restarts only that room. Because it never reacts to the player, every attempt is the same, so you can learn it and the script can measure it. The margin is how many seconds a perfect run stays ahead of the storm at its closest point. Each segment gets less, and all three are inside the skill’s targets.
| Segment | Leads with | Clean run | Margin | Pass rate |
|---|---|---|---|---|
| Storm 1 | running and jumping | 7.6 s | 1.65 s | 98% |
| Storm 2 | crumbling ground | 6.8 s | 1.16 s | 94% |
| Storm 3 | springs and the orb | 7.9 s | 0.72 s | 89% |
The pass rate is for a simulated player who has played every room before it, measured with 200 runs and two seeds.
Play time
Our estimate for a first play went from 5.3 to 7.4 minutes, or about 9 with the side rooms. The playthrough reaches the end without entering a single side room.
What the session missed
Our own checks after the session found these:
- The map fades as soon as a key is held. If you walk in through the door holding right, which is how everyone arrives, you see it for about 0.4 seconds. The clip below shows it.
- The warning band for a storm that’s still off screen is created at zero opacity, so it’s invisible.
- At the start of a segment the storm’s warning is weak: dark on a dark sky.
- Storms 1 and 2 measure too easy (98% and 94% pass), and the storm causes almost none of the failures. The session saw the numbers but went by the margins.
- Most rooms are still 2 to 4 seconds long.
- Sections and areas don’t line up, so the HUD reads “Section 5 · Area 6 · Room 1/4”.
- The star in Orb ladder sits under the HUD’s star count.
- Sunrise is still drawn as night.
- One sound test is flaky. In our run it failed on a peak of 1.007.
We’ve since added rules for all of these to the skill. The map is now tested by walking in, warnings are checked in the pixels, a chase segment has to land in its pass-rate band as well as its margin, room lengths have to really vary, sections and areas must match, the HUD can’t cover anything, and the release room has to look different.
It took one prompt and no follow-ups: 86 minutes and $9.20 of Claude Code working alone.
Get the skill. The structure and finale rules work for any engine, and the measuring script runs browser games. You can also install all seven skills as a Claude Code plugin.
Click to start; M mutes. Arrow keys or A/D to move, Up, W or Space to jump. You need a keyboard. The glowing doors with spikes on top lead to the side rooms. We only added the start screen and Phaser loaded from this site.
Recorded in the cloud with a clean Claude Code: no personal skills, plugins or MCP servers. The session had platformer-levels and our other skills for this series installed: platformer-feel, game-juice, game-sound, pixel-art, character-animation and game-music.
The skill that made it work
It gives Claude the level designer's rules for a chapter's shape (rest spots, varied lengths, calm rooms, optional side rooms, a map and a chase finale) and a script that measures every room, so the new structure is checked with numbers, not guessed.
- Keep levels as data, separate from the game code, so rooms can be added, changed and checked.
- Write each room's one-line story first, and build only what serves it.
- Teach each new move or object in order, without text: show it safely, use it, combine it, test it.
- Check every room with the jump numbers from the game's own constants, then play it with a scripted route.
- Plan the whole game: one new element per area, and measure every room with the skill's script so the curve rises in waves.
- Give the chapter a shape: a rest spot opening each section, varied room lengths, an easy room after hard ones, optional side rooms with a collectible, and a map between sections. For a finale without combat, use a chase.
- Report like a level designer: each room's story, what it teaches, its hardest jump and whether its route finished.
Save it as .claude/skills/platformer-levels/SKILL.md in your project.
Was this useful?
Thanks, we read every message.
Part 12 of Make a complete platformer with AI

