anchor

Use when

Designing a puzzle whose depth comes from the player editing the ruleset itself, so the mechanic and the content are the same thing.

Baba Is You

What it is. A Sokoban-like grid puzzle where the rules are blocks you can push. BABA IS YOU, FLAG IS WIN, WALL IS STOP — break a sentence apart and the law it stated stops applying; form a new one and reality reorganises around it.

Player fantasy / why it’s fun. I am not solving the puzzle — I am rewriting it. The pull is the mechanic IS the content: there’s no new mechanic per level, just deeper implications of one idea. Every “aha” is the moment you realise you can make lava is win, or you the wall, and the whole board’s meaning inverts.

Design DNA

Make the rules first-class objects in the simulation. Instead of hard-coding “walls stop you,” the game reads sentences of word-blocks each tick and derives its rules from the current board. Because the player can push those word-blocks, the ruleset is mutable at runtime — and the entire game is the emergent space of what you can make true. One system, endlessly recombined, generates hundreds of puzzles without ever adding a new verb.

The architectural move is the whole trick: data-drive the laws instead of coding them. A conventional game hard-codes if (tile.isWall) block(). Baba stores WALL IS STOP as three movable objects and, each step, re-parses the board into an active ruleset that the sim obeys. The instant the rule itself is a thing you can push, the design surface explodes — every law becomes editable, including the ones a designer would normally hold sacred (what “you” are, what “winning” means). The content isn’t levels bolted onto a mechanic; the content is situations that reveal what the one mechanic permits.

This is emergence as the whole game: depth comes not from breadth of mechanics but from the second-order interactions of a tiny, self-referential rule engine. A handful of nouns and properties yields a puzzle space no designer could enumerate — which is the efficiency: near-infinite content from almost no content.

Load-bearing structures

StructureWhy it works
Rules are data on the board, re-read each tickThe sim derives its laws from NOUN IS PROPERTY sentences rather than hard-coding them — so pushing a word changes physics. This is the entire trick.
Self-reference (IS YOU, IS WIN)The player can move win itself, or become a new object. The win condition and the avatar are editable — nothing is sacred. pattern-emergence.
One mechanic, deepening implicationsNo new verbs per level; difficulty is realising what the one system permits. Content = mastery of the rule engine. system-mastery-curve.
Sokoban substrate + undo/restartTurn-based grid pushing with full undo — puzzle grace, so wild experimentation is free. FUN.md law 5. genre-grid-puzzle.
Every level is solver-provableA pure Puzzle<State, Move> state (board + active rules) means every level is machine-proven winnable — unwinnable = unshippable. FUN.md truth.
Teach-by-discovery onboardingEarly levels are the tutorial — you learn the rule engine by breaking one sentence at a time. system-onboarding.
Combinatorial state, tiny alphabetA handful of nouns × properties yields a vast puzzle space from almost no content. system-procgen-design (design-space, not runtime).

What to steal

What’s just theme (drop it)

Composes into

Twist seams

See also

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