What it is. One encounter demands a skill or build the game never taught, tested, or funded. The smooth ramp becomes a step, and the player who was flowing an hour ago now bounces off the same wall twenty times.
Why it hurts. A cliff reads as betrayal, not challenge. The player trusted the ramp; the ramp lied. They don’t feel under-skilled — they feel cheated, because nothing on the near side of the wall pointed at the far side. Trust is the currency of difficulty (see pattern-fairness-and-trust), and a cliff spends it all at once.
The smell
The curve jumps instead of climbing. Every step before was +5% harder; this one is +200%. Skill, gear, knowledge, or reflex speed all spike together with no on-ramp — the gate is unsignalled, so the player can’t even name what beat them.
How it happens
| Cause | The mechanism |
|---|---|
| Designer blindness | You’ve played the encounter 500 times. You solve it reflexively and can’t see the wall a first-timer hits. |
| Untaught prerequisite | The fight assumes a mechanic-parry or a mechanic-dodge-roll the tutorial mentioned once and never drilled. |
| Gear/level gate | A number check the system-economy never funded — the player cannot have the stats yet. |
| Knowledge gate | A system-telegraphs the player was never trained to read, so the counter looks like RNG. |
| Optional-content merge | A side path’s difficulty leaks onto the main line without a warning marker. |
| Boss as first exam | A system-boss-design tests three mechanics at once, none rehearsed in isolation. |
The through-line: you tested a skill you never taught. Design teaches then tests; a cliff inverts the order.
The tell
Spot it in your own design before a tester does:
- Completion craters at one node — 90% clear room 11, 30% clear room 12. That delta is the cliff. (Guard this with the funnel in [[docs/VERIFICATION.md]].)
- You catch yourself writing “they’ll figure it out” in a design note. They won’t; you’re the only one who knows the answer.
- The only working strategy is one you personally discovered and never surfaced in-game.
- Playtesters rage-quit at the exact same beat, then say “I didn’t know I could do that.”
- Your ramp has no breather before the spike — no safe room, no low-stakes rehearsal, no checkpoint. (See
system-save-and-checkpoint.) - The wall is skill, but your fix instinct is to lower its numbers — a sign you can’t see what actually blocks them.
The fix
Teach the skill before you test it. Rehearse the mechanic at zero stakes, then at low stakes, then grade it. anchor-celeste introduces every hazard alone in a safe screen before combining them; the B-sides are where the real cliff lives, and they’re opt-in.
- Fund the check. If it’s a gear/level gate, make the
system-progressionandsystem-economyhand the player the stats before the wall — or convert the gate to a skill you can teach. - Signal the spike. Mark the hard door.
anchor-dark-soulsgates its worst areas behind visible fog and grim vistas; the cliff is chosen, never sprung. - Add a breather. Flat or falling tension before the peak resets the player. This is pure
pattern-pacing-and-tension— sawtooth the curve, never a straight climb. - Isolate then combine. Drill each demand solo, then stack them.
anchor-cupheadhands you the parry, the dash, and the pattern-read in separate fights before the boss needs all three. - Let the curve bend to the player. A quiet assist — retry counters that soften, a catch-up nudge — closes the gap without announcing it. Design it in
system-difficulty-and-dda, not as a mercy patch. - Offer an off-ramp. Optional accessibility floors (
system-accessibility) and anti-frustration valves (pattern-anti-frustration) keep the cliff from being a hard stop for anyone. - Grade the introduction.
system-mastery-curveandpattern-mastery-and-floware the shape you’re aiming for: each step just past the last, never a leap.
The order is doctrine: teach → rehearse → test → combine. A cliff skips one of the first three.
Twist seams
Break the antipattern deliberately and it becomes a feature — the twist is consent.
- A brick wall but the player asks for it (twist: opt-in escalation). The spike exists, but it’s a labelled door, a New Game+ tier, a “hard mode” toggle —
system-prestige-and-newgame-plusearns the right to be brutal because the player chose it. - An unsignalled spike but the whole game is one (twist: consistent contract).
anchor-spelunkyandgenre-roguelikedeath-cliffs feel fair because every run is a cliff — the ramp is meta-mastery across runs, funded bysystem-meta-progression, not the single session. - A skill check you never taught but discovery is the point (twist: knowledge-as-progression).
anchor-outer-wildsandanchor-return-of-the-obra-dinngate on what you know, and figuring out the wall is the reward — but only when the game trusts you to observe, never to guess (antipattern-guess-the-designeris the failure twin).
Seen in…
| Game | The cliff | Fair or foul |
|---|---|---|
anchor-cuphead | Bosses spike hard, but each drills a rehearsed skill and shows exactly what killed you | Fair — signalled, teachable |
anchor-dark-souls | Ornstein & Smough after a gentle stretch — but the area is visibly grim, retries are cheap | Fair — chosen, checkpointed |
| Classic JRPGs | A boss the system-economy under-leveled you for; the only fix is off-screen grinding | Foul — becomes a antipattern-grind-wall |
| Many metroidvanias | A late fight assumes a movement tech (mechanic-wall-jump) the game demoed once | Foul — untaught prerequisite |
| Difficulty-select games | ”Normal” that’s a cliff for the median, “Easy” that’s a walk — no middle | Foul — the DDA gap in system-difficulty-and-dda |
Guard against it
Instrument the funnel: per-node completion and attempt counts, watched for the crater. The verify half owns the numbers — wire the check via [[docs/VERIFICATION.md]] and let it fail the build when one node drops off the ramp. Cross-check the shape against pattern-mastery-and-flow before handoff: if any step is more than one skill past the last, you have a cliff, not a climb.