LEVEL 3 · BUILD A GAME / 15 MIN Free NOVEMBER 2026 EDITION · CLAUDE CODE 2.1.318
Power-ups: add features one at a time
Upgrade your game with a saved high score, power-ups and juice, one feature per prompt, so every upgrade lands cleanly and nothing old breaks.
Updated 7 November 2026 · Reviewed 7 November 2026
Your mission
Level up your neon dodge game with three upgrades: a high score that’s saved even when you close the browser, a power-up, and some “juice” that makes it feel great to play. One upgrade at a time, playtested each time.
Why it’s worth it
The difference between a tech demo and a game people actually play is in the extras: a high score to beat, something surprising to grab, a little screen shake when you crash. Those are exactly the things that make your friends go “wait, let me try”.
There’s also a pro habit hiding in this lesson. Every new feature risks breaking an old one. Game devs call that a regression: something that worked yesterday and doesn’t today. The defence is simple: one change at a time, playtest after each. When something breaks, you know which change did it.
Build it
Open your neon-dodge folder in the terminal and start Claude.
1. Upgrade one: a saved high score.
Add a high score that's saved in localStorage so it survives closing the
browser. Show "Best: X" during the game and "NEW BEST!" on the game over
screen when I beat it.
What you’ll see: Claude edits your game files. Play two rounds: beat your score on the second. Then close the tab completely, reopen index.html, and check your best score is still there.
localStorage is a small storage space the browser gives each site (or each file you open). It’s perfect for high scores: no account, no server, and it stays in your browser.
2. Upgrade two: a power-up. Pick one, or invent your own:
Add a shield power-up: a glowing circle that falls now and then. Catching
it makes the ship survive one crash. Show a ring around the ship while
the shield is active.
What you’ll see: new code for spawning and catching the power-up. Playtest: catch a shield, crash on purpose, and check you survive exactly once.
3. Upgrade three: juice. “Juice” is the game-dev word for little effects that make a game feel alive:
Add some juice: a quick screen shake and a burst of particles when I crash,
and make the score pulse when it goes up by 10. Keep it subtle.
What you’ll see: the same game, but it suddenly feels better. That’s the power of small touches.
4. Regression check. After the three upgrades, play a full round and check the old stuff still works: arrow keys, the edges, the speed-up, game over, restart with space, the high score.
Look at you go: your game now has features that people genuinely added in real indie games.
Writing feature requests that land
A good feature request is a mini build order (lesson 2.1):
- What it does: “a shield that blocks one crash”.
- How you’ll see it: “a ring around the ship while it’s active”.
- The edge cases: “it shouldn’t stack if I catch two” or “it disappears after one crash”.
Edge cases are where most bugs hide. If you think of one, say it.
When Claude gets confused
- An old feature broke after a new one (a regression). Claude sometimes changes code that another feature depended on. Tell it exactly what broke and after which change: “Since the shield was added, space doesn’t restart the game anymore.” That points it straight at the problem.
- The high score resets every time. Ask: “Are you saving the high score to localStorage and loading it when the game starts?” If you open the file in a private or incognito window, browsers wipe localStorage when you close it, so test in a normal window.
- The power-up never appears. It might spawn rarely or off-screen. Ask Claude to make it spawn every 5 seconds while you test, then dial it back.
Did it work?
- Your best score survives closing and reopening the browser
- Your power-up works the way you described
- Your game has at least one “juice” effect
- After all three upgrades, every old feature still works
Checkpoint
3 QUESTIONS · CLEAR IT WITH 80%Tip: select the text that's wrong before clicking, and it's quoted in your report.