pattern

Use when

You are designing the first thing a player sees and does.

What it is. The first two minutes of play, engineered. You deliver a taste of the core fantasy before you explain anything, teach the first verb by having the player do it, and hand them a real decision fast enough that they lean in instead of drifting off.

Player fantasy / why it’s fun. The pull is “I already get this, and I already like it.” A good hook lets a stranger feel competent and curious inside a minute — the promise of the whole game, compressed and playable, before the game has earned any patience.

The three beats

The hook is not one moment. It’s a sequence, and the order is load-bearing.

BeatQuestion it answersTiming
Taste”What am I?” — the fantasy, shown not toldSeconds 0–15
Verb”What do I do?” — the first real action, by doingFirst ~30s
Win”Am I good at this?” — a small, legible payoffUnder ~2 min

Miss Taste and the player never forms a reason to care. Miss Verb and they wait to be told (and leave). Miss Win and they never close the first competence loop, so nothing pulls them into the second.

Levers

How to build it

  1. Name the fantasy in one line, then ask what single action is that fantasy. Build the first screen around that action and nothing else. Work from process-core-loop and process-pillars — the hook is the loop’s smallest honest slice.
  2. Teach the first verb spatially, not textually. Design a room where the verb is the only path forward. The environment prompts; you don’t. This is the system-onboarding craft.
  3. Front-load the taste, back-load the depth. Show the fantasy in beat one; reveal systems on a curve after the hook has bought attention. See pattern-mastery-and-flow and system-mastery-curve.
  4. Guarantee the first win, then let the second be earnable. Rig beat three so effort pays; make beat four require a little more. That gap is the pull into system-progression.
  5. Withhold the menu. Locked slots, greyed abilities, and choice screens before the first win are noise. See pattern-restraint-and-negative-space.

Hook shapes by genre

Different genres promise different fantasies, so their hooks front-load different beats.

GenreTaste it must deliver firstFast reference
genre-roguelike“A run is mine to steer” — first meaningful build choice fastanchor-slay-the-spire, anchor-hades
genre-horde-survival“I get stronger and the screen fills” — an early kill waveanchor-vampire-survivors
genre-precision-platformer“My inputs are read exactly” — one clean jump, one clean deathanchor-celeste
genre-grid-puzzle“The rules are simple and I can bend them” — a solvable-at-a-glance boardanchor-baba-is-you
genre-narrative-decisions“My choices bite” — a consequence inside the first swipeanchor-reigns, anchor-papers-please
genre-deckbuilder“Cards combo” — a two-card synergy that reads on turn oneanchor-balatro
genre-city-builder“I made that grow” — one building that visibly pays offanchor-factorio

Twist seams

Bend the standard hook when the game’s identity lives in the bend.

Where it goes wrong

Overdone when

Composes with

Prove the first-two-minutes feel with sandboxes/ in isolation before wiring the full game; verification lives in docs/VERIFICATION.md, not here.

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