antipattern

Use when

Your reward structure makes the tedious line the correct line.

What it is. The dominant strategy is the dull one: grind, turtle, kite, wait. Skilled play and exciting play diverge, and the numbers side with tedium.

Why it hurts. The player learns the fun move is a tax — flashier means worse. So they stop taking it, the game they wanted to play evaporates, and what’s left is a spreadsheet they solve on autopilot. The fantasy dies not from a missing feature but from an incentive pointed the wrong way.

The smell

The line a mastery player converges on is the line a bored player would also pick. Optimal and fun are unrelated, or worse, opposed. Watch for the phrase “yeah, it’s boring, but it’s just better.”

How it happens

The tell (check YOUR design)

Twist seams

The fix

Pay out the fun line; tax the degenerate one. The exciting play must be the correct play, or at least a live equal.

LeverFixLink
RewardMake the risky/expressive move the highest-EV move under pressurepattern-risk-reward
ClockCost the wait — timers, escalating spawns, decaying resourcespattern-pacing-and-tension
EconomyDiminishing returns on grind; scarcity that forces commitmentsystem-economy
ChoiceEnsure two live lines with real tradeoffs, not one plus decoyspattern-meaningful-choice
FeedbackAmplify the flashy line’s payoff so it feels and scores betterpattern-feedback-loops
CombatBreak the poke’s dominance with counters that punish passivitysystem-counter-systems

Design principle: asymmetric payout. The boring line should cap low; the exciting line should have a higher ceiling and pull its weight at the median. Aggression that only pays at expert level is still a tax for everyone else.

Seen in…

Verify / guard

This is a FUN failure — the mechanic works but the incentive misfires. Prove the fun line pays: model or playtest the optimal strategy and confirm it’s the one you want played. See design/FUN.md for the incentive-audit gate, and cross-check with pattern-mastery-and-flow — if mastery converges on tedium, the payout curve is inverted. Related smells to rule out together: antipattern-fake-choice, antipattern-solved-metagame, antipattern-grind-wall.

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