AI Game Dev Search

When one early choice ruins the run: respec in games, undo and three more ways out of build traps

Five ways to stop build traps: cheap respec, undo before commit, full sell-back, a build-versus-challenge check and a fallback answer for every build.

Tested with Claude Code 2.1.296 · Opus 5.5

A skill tree with one branch spent and a padlock, then the same tree emptied again under a reset arrow.
What we asked“Make a web page that demonstrates the respec and undo tricks that stop an early choice from ruining a run one at a time, so anyone can see and feel each one within a few seconds. For each one, show the same short moment side by side: without it on the left, with it on the right, playing in a loop, with a caption that says what just happened and a replay button. Where it helps, let me play the moment myself. It will sit inside a blog post about 720 pixels wide, so it has to look good at that width and on a phone. Also make each one viewable alone with ?trick=<id>&solo, using these ids: respec, undo-last, sell-back, answer-check, fallback-answer. On the left the player makes a reasonable early pick that later meets a challenge it cannot answer; on the right the same pick, with the trick giving a way out. Use the internet freely for better results: free CC0 art, fonts or small libraries (for example Kenney's CC0 assets) are welcome; download anything you use into this folder so the page works without outside links, and list each item with its licence and source in CREDITS.md.”

What happened

  • Loaded the respec-and-undo skill
  • Downloaded Kenney's CC0 Tiny Dungeon sprites and Kenney Pixel font
  • Wrote the game logic with each trick behind one switch, and a test that plays every demo with the trick off and on
Claude
All ten runs come out as intended. One snag: in the fallback demo, the first reward round offers Acid Flask, an armor answer, which weakens the "nothing offered a way through" story. Finding a cleaner seed.
  • Wrote the page: tabs, the game's own buttons under each picture, captions, Replay and Play it yourself
  • Laid out the HUD skill labels by measured width, because they overlapped their pips at the larger font
  • Checked it in headless Chrome at 720 px and inside a 390 px phone-width frame
Claude
Every left side ends in Run over and every right side ends in Run saved. When a trick is missing, its button still shows, crossed out and labelled "not in this game". I didn't click through Play it yourself in a browser, so give it a quick try.

The player makes a sensible early choice: three points into fire, because fire melts the first enemies. An hour later the boss is immune to fire, and there’s nothing they can do but start again. They didn’t play badly. The game just never told them, and never gave them a way back. For years Diablo II worked like this: skill points could not be moved once placed, until patch 1.13 added respecs (Diablo Wiki).

Each demo below plays the same run twice. On the left, a reasonable pick meets a challenge it can’t answer, and the run is over. On the right, the same pick, but the trick gives a way out. Under each picture are the game’s own buttons; in autoplay they light up as they’re “pressed”, so you can follow what the player did. On the left, the missing trick’s button is crossed out and labelled “not in this game”. Play it yourself (or any button) hands both sides to you.

1. Respec for a small price

Let players reset their points at a hub or a rest spot. Keep the cost small, about one fight’s income or less, so it’s a real option and not a punishment. In Hades you can reset Mirror talents for 1 Chthonic key, according to a Gamepressure guide (Gamepressure), and Path of Exile gives a refund point for a quest in each of its first 10 acts (Dexerto). In our demo, three points into Fire Bolt one-shot the slimes, then the scout reports the boss is immune to fire. On the right, a respec at the campfire costs 10 gold, less than one fight pays, and the points go into Frost.

2. Undo until the player commits

Most bad picks are noticed seconds later: you buy the sword, then see what’s behind the door. Until the player commits (leaves the shop, starts the fight, ends the turn), let one button take back the last pick for free. Into the Breach lets you undo moves as often as you like, and reset a whole turn once per battle (Gamepressure). In our demo, the Greatsword looks like the best buy, then a peek through the door shows flying bats. On the left, leaving the shop locks it in. On the right, undo puts it back on the shelf, all 10 gold refunded, and the player buys throwing knives instead.

3. Sell back at a price you can see

In builder and tower games, the trap is gold already spent on the wrong thing. Anything built this turn or wave should sell back for 100%. After that, sell for a fixed share, written on the button so the player can plan with it. In Bloons TD 6, selling “returns 70% of the total cash spent on a tower” (Bloons Wiki). In our demo, two arrow towers shred the rats, then wave 3 is armored and 12 gold won’t buy a 25-gold cannon. On the right, the towers sell back for 70%, which pays for the cannon. A tower built this wave shows 100%.

4. Check every build against every challenge

The first three tricks help the player escape a trap. This one removes the trap before the game ships. Make a table: build paths down the side, late challenges across the top. Every cell needs at least one answer the player can reach on that path. An empty cell is a run that will end for reasons the player couldn’t see. Slay the Spire’s team saw that players with many Power cards struggled against The Awakened One, slowed down how fast it gained Strength, and later data showed more players beating it (Game Developer). In our demo, Poison melts the early beasts, then meets an undead Wraith that’s immune to it. On the right, the table is filled from the same fight numbers, flags Poison against Undead, and the Poison path gets Blight, a way to hurt the undead, before the game ships.

5. Give every build a fallback answer

Some builds will still be weak against something. Give every build a way to pick up the missing answer: a shop item that breaks armor, a bomb for swarms, a move any character can learn. And when the build is missing one, raise the odds that the next reward offers it. Pokémon’s TMs are items that teach a Pokémon a move (Bulbapedia), and the Move Relearner lets one get back a move it skipped (Bulbapedia). In our demo, a Brute stacks Strength and meets an armored Iron Knight that takes 1 damage per hit. On the right, the game sees the build has no way through armor, boosts the odds in the next reward, and Sunder Strike turns up.

Keep choices meaningful

If every choice can be undone for free at any time, no choice matters. A few rules to keep the weight:

  • Free before commit, a small price after. Undo is free until the player leaves the shop or ends the turn. After that, a respec or a sell-back costs a little.
  • Show the price before the player needs it. “Sells for 70%” on the button, “Respec: 10 gold” at the campfire. A way out the player doesn’t know about doesn’t help.
  • Measure the traps. Run every build path against every late challenge with a bot or a quick simulation. Count the fights where a build takes more than 3× the target time to kill or can’t hurt the enemy at all. That number should be zero. In playtests, also count how often players undo or respec: a lot of respecs at one boss points to a trap there.

For what makes the choice itself worth making, see meaningful choices in games and roguelike upgrade systems.

Add it to your game

  1. Copy the skill at the end of this page into your project.
  2. Ask your agent: “Players say one early choice ruined their run. Add ways out of build traps.”
  3. Play it, then tune in plain words: “Respec should cost a bit more in the late game.”

Art in the demos: Tiny Dungeon and Kenney Pixel by Kenney (CC0).

The skill that made it work

This is the whole skill we gave Claude Code. Copy it into your project and ask your agent to add ways out of build traps. Every trick sits behind its own switch, and the last step makes it check every build against every late challenge.

respec-and-undo
  1. Find every lasting choice (skill and stat points, talents, class or deck picks, buildings, purchases) and every late challenge the player must beat (bosses, armored, flying or swarming enemies).
  2. Put every trick behind one named switch in a single settings object, all on by default, so each can be tested on its own.
  3. respec. Let players reset their points at a hub or rest spot for a small cost, about one fight's income or less. Hades resets Mirror of Night talents for 1 Chthonic key; Path of Exile gives a refund point in each of its first 10 acts.
  4. undo-last. Until the player commits (leaves the shop, starts the next fight, ends the turn), let one button undo the last pick, point or placement for free. Into the Breach allows unlimited move undos and one full turn reset per battle.
  5. sell-back. Anything bought or built this turn or wave sells back for 100%; after that for a fixed share written on the button. Bloons TD 6 pays back 70%.
  6. answer-check. Make a table: build paths down the side, late challenges across the top. Every cell needs at least one answer reachable on that path, or the path is a trap. Slay the Spire's team saw Power-heavy decks losing to the Awakened One and retuned that boss.
  7. fallback-answer. Give every build a way to get a missing answer: a shop item that breaks armor, a bomb for swarms, a move any character can learn (Pokemon's TMs teach a move after the fact). When a build lacks an answer, raise the odds that the next offers include one.
  8. Measure it. Run every build path against every late challenge with a bot or quick simulation. Report fights where the build takes more than 3x the target time to kill or can't hurt the enemy (should be zero), and how often testers undo or respec.

Save it as .claude/skills/respec-and-undo/SKILL.md in your project. Or connect your agent and type /aigamedev: it loads this skill with its reference files and the results from this post.