antipattern

Use when

Your opening front-loads instruction instead of letting play teach.

What it is. The opening narrates instead of hands over — dialog boxes, forced walks, and “press X to continue” gate the player behind minutes of exposition before a single free decision.

Why it hurts. The first minute is where you win trust or lose it. A tutorial that lectures spends that minute proving the game doesn’t trust the player — and a player who isn’t trusted stops trusting the game back. Interest is a decaying resource; instruction with no agency burns it.

The smell

Passivity. The player is a passenger. Text advances, cameras pan, an NPC talks — and nothing the player does changes the next second. The game is showing when it should be asking.

How it happens

The tell

Spot it in your OWN opening before handoff:

TellWhat it looks like
Time-to-first-choiceStopwatch from boot to the first decision the player authors. Over ~60s is a warning; over 3 min is a fire.
Modal minutesSum of seconds where input is locked to a popup/cutscene. Any unskippable stretch is suspect.
Read-to-act ratioWords shown before the verb is used. If they read more than they do, invert it.
The “got it” reflexAre testers mashing to dismiss text? They’re not learning — they’re waiting.
Verb backlogCount mechanics introduced before the player used the first one. Should be one.

If you can’t name the first thing the player does — not reads, not watches — you have this bug.

The fix

Teach by doing, one verb at a time. The level is the tutorial; the popup is the failure of the level.

”X but Y” twist seams

Seen in…

Adjacent traps

Don’t over-correct into the mirror failure. Stripping all teaching yields antipattern-guess-the-designer — the player flails because nothing was ever asked clearly. And a tutorial that front-loads ten systems is usually also carrying antipattern-feature-soup and headed for antipattern-decision-paralysis. The fix is sequence and restraint, not silence — see pattern-restraint-and-negative-space.

Verify / guard

This is a failure mode, so guard it at the design gate, not just in code. Before handoff: stopwatch the boot-to-first-authored-choice, and confirm one verb precedes any second verb. Prove the ramp with process-core-loop and check pacing against pattern-pacing-and-tension. Route the measurable checks through docs/VERIFICATION.md.

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