antipattern

Use when

Death/failure sends players through friction before they can try again.

What it is. Failure charges a toll — a load screen, a walk back, an unskippable cutscene, a re-fought trash mob — before the player may attempt the thing that killed them again. The mistake is fine; the tax on retrying it is not.

Why it hurts. Learning lives in the attempt. Every second between “I died” and “I’m trying again” is dead time that teaches nothing, and the player fills it with resentment instead of intent. The loop that should tighten — die, adjust, retry — slackens into a chore.

The smell

The walk-back is longer than the attempt. If beating the checkpoint takes 20 seconds and returning to it takes 60, you are taxing failure at 3×. Players start counting the tax, not the challenge.

How it happens

SourceThe toll it charges
Distant checkpointRespawn far from the fight; re-traverse cleared ground.
Unskippable introBoss monologue / cutscene replays every attempt.
Re-cleared trashAdds/waves reset; you re-earn the right to the hard part.
Resource re-grindConsumables/buffs spent on the failed run must be refarmed.
Load-screen wallDeath → menu → reload → cinematic → control.
Cursor resetUI dumps you to the menu root, not the retry button.

The insidious version: each toll is individually “small.” Stacked, they turn a five-second death into a ninety-second sentence. Nobody designed the tax — it accreted.

The tell (check YOUR design)

The fix

Checkpoint before the test, not before the corridor. Put the respawn at the mouth of the fight. Cure with system-save-and-checkpoint — dense checkpoints, instant respawn, and a retry that lands you pointing at the challenge.

Do not confuse a fail-loop tax with a designed run reset. In genre-roguelike the long walk back is the game — the point is system-meta-progression and a fresh seed, not re-treading the same corridor. The tax is friction inside a single challenge you already understood.

Twist seams

Seen in…

Verify / guard

This is a failure mode to check before handoff, not a feel to prove. Instrument the loop: log death-to-control time and inputs-to-retry count; assert both stay under budget (~3s, 1 press) on your hardest checkpoint. Confirm spent-resource state and cursor position on respawn. Fold the thresholds into your feel gates per docs/VERIFICATION.md — see also pattern-anti-frustration and system-difficulty-and-dda for the tuning knobs the guard protects.

This module rendersthe repo's markdowndirectly — edit it there, it changes here.