MDA and the core loop
The mechanism: the loop as the atom, MDA as the causality
The core loop and the meta loop
The core loop is the smallest repeatable unit of gameplay: Elden Ring (meet an enemy→read it→dodge/parry→strike), Tetris (falls→rotate→lands→line), poker (ante→hand→bet→showdown). The meta loop is the larger progression loop on top (died→came back stronger→back to the boss). A good loop rests on four properties: clarity (the goal is obvious), feedback (an instant response to an action), escalation (difficulty grows inside the loop) and variation (sub-variants: enemies, abilities). Without them, 60 hours of "enter a room→grind it down→loot→repeat" is monotony under cosmetic difficulty jumps.
Core loop vs engagement loop
The core loop is mechanics only: what the player does. The engagement loop is mechanics plus context: why they care. Hades: core = shoot→dodge→special→clear; engagement = the same thing → new dialogue → a character references your previous runs → you get hooked on their arc. The same mechanics plus different context = different retention — which is why Hades resonates and a roguelike with identical mechanics but no wrapping does not (the same conversation about retention, but from the design side).
MDA: mechanics → dynamics → aesthetics
Mechanics are the rules and systems (what the code implements). Dynamics are the behavior that arises as the rules interact at runtime. Aesthetics are the player's experience. Traced through poker:
The asymmetry is the whole point of MDA. An analyst and a player read the chain left to right (rules → emergent play → feeling). The designer works right to left: "I want it to be tense" → which dynamics produce tension (uncertainty, hidden information) → which mechanics produce those dynamics (face-down cards, probabilistic resolution). You never code "suspense" — you code mechanics and turn them until the emergent dynamic delivers the aesthetic you wanted.
Why this is empirical rather than deducible
Dynamics are emergent: they arise from mechanics interacting with each other. The number of pairwise interactions across mechanics grows quadratically:
10 mechanics → 45 pairwise interactions (and that is without triples and chains). You cannot enumerate and predict all of it — which is why design is empirical: you prototype, play, and see which dynamics actually arose and what aesthetic they produced. It is an inverse problem with an emergent middle — solved by observation, not by deduction.
The 8 kinds of fun (LeBlanc)
"Aesthetics" is the most underspecified slot in MDA. Marc LeBlanc's answer (in the original 2004 paper and in talks) is a taxonomy of 8 kinds of fun, concrete goals instead of a vague "make it fun": Sensation (Journey, fighting-game hit effects), Fantasy (The Sims, Skyrim), Narrative (The Last of Us, Disco Elysium), Challenge (Dark Souls, Celeste), Fellowship (MMOs, co-op), Discovery (Outer Wilds, Subnautica), Expression (Minecraft, modding), Submission (Candy Crush, idle games). A game usually aims at 2–3 of them; trying to hit all 8 dilutes each one. A practical review habit: when a prototype "feels off", write down which kinds of fun you intended and which ones it actually delivers.
🕹 What to play — and what to notice
Mechanically a simple roguelike. It hooks you because of the engagement loop: every run advances the dialogue, and the characters remember your deaths. The same core loop plus a wrapping of meaning = hundreds of hours of retention.
🎮 Do: play a run and write out in one line the core loop (pure mechanics: shoot→dodge→special→clear), then the engagement loop (what makes you start the next run — dialogue, relationships, a meta unlock). Feel the difference between "what I do" and "why I care".
Simple mechanics (cards, betting, rankings) → rich dynamics (bluffing, risk/reward, reading people) → a strong aesthetic (suspense). Balatro takes poker's mechanics and, through a new dynamic (multiplier jokers), delivers a completely different aesthetic — combo mastery.
🎮 Do an MDA trace: take any game, write down 3 mechanics → which dynamics arise from them at runtime → which aesthetic you feel. Then run it backwards (as the designer): name an aesthetic you would want to strengthen and work out which mechanic to touch for it.
When a game "feels like a grind", that is an aesthetic observation. Trace downwards: which loops repeat (kill→XP) → what behavior emerges (players min-max efficiency) → conclusion: the mechanics are tuned for grinding, not for exploration.
🎮 Notice: in a game that bored you, identify which dynamic the players optimize (farming speed? the safe route?) and which mechanic produces it. Often "boring" means the mechanics reward a different dynamic than the designer intended.
Deep end · the inverse problem and the combinatorics of emergenceskippable
Why aesthetics cannot be designed directly
The mapping from mechanics to aesthetics is surjective and not uniquely invertible: the same aesthetic (suspense) comes from different dynamics (hidden information, a timer, an irreversible choice), and each dynamic comes from different mechanics. The designer solves the inverse problem with no closed form for — only by trying. And the middle (dynamics) is emergent: with interacting systems there are already pairwise links, and once you add triples and temporal chains the space of outcomes is not enumerable on paper. Hence the iron rule: dynamics are a property of runtime and are only visible in a playable prototype.
The consequence for process
That is why a playable vertical slice gets built early (see scope and prototype): until you run it you do not know the dynamics, which means you do not know the aesthetics. A "design document" does not replace a prototype precisely because it describes mechanics, while what sells a game is a dynamic the document cannot predict.
Deep end · design: the loop, the 8 kinds of fun, MDA in reviewskippable
Designing the loop
A core loop is tuned along four axes: clarity (the player always knows the next step), feedback (every action produces a response — a damage number, a knockback, juice), escalation (difficulty rises within a session) and variation (sub-variants keep the loop from turning into noise). The engagement loop adds a stake: why repeat it — progression, meaning, relationships, a meta unlock.
The 8 kinds of fun as a checklist
Not "make it fun" but "which 2–3 kinds of fun am I aiming at" — and at every review, check the intended against the delivered. Different players look for different kinds of fun (this is orthogonal to the motivations in Bartle/Quantic Foundry — mapping between them is a rough analogy, not an identity).
MDA as a bug-report language for design
"Boring/grindy/unfair" are aesthetic symptoms. You diagnose by tracing down to the mechanic, treat it by editing the mechanic, and re-check the dynamic with a playtest — because editing a mechanic changes the emergent middle unpredictably.
ML / AI (your domain): MDA is exactly reward design / specification in RL. You cannot code "the agent plays interestingly" — you shape a reward (the mechanic), observe the emergent policy (the dynamic) and check it against your intent (the aesthetic). Reward hacking is a mismatch between dynamic and aesthetic: the agent optimizes the letter of the mechanic rather than the feeling you meant (just as a "grindy" game optimizes the wrong dynamic). Quadratic emergence ⇄ why a trained system cannot be statically verified: behavior is a property of runtime and is assessed empirically (an eval harness = a playtest). Core loop vs engagement loop ⇄ a proxy metric vs the true goal (Goodhart: mechanical retention ≠ meaningful retention). "Design backwards from the experience" ⇄ objective-first / eval-driven development: target behavior and evaluation first, then the system, then measure the gap. And the 8 kinds of fun ⇄ decomposing a fuzzy goal ("good") into concrete measurable sub-criteria (the way "helpful" gets split into specific evals).
Product/UX: you build features (mechanics), users develop usage patterns (dynamics), and the metric is their satisfaction (aesthetics); JTBD is designing backwards from the outcome you want.
Systems: the emergent behavior of a complex system (microservices, an economy, traffic) cannot be deduced from component specifications — you load it and observe (a load test = a playtest).
Principle: if the middle is emergent, do not deduce — prototype and observe; design backwards from the target experience to the rules.
Why can't "fun" be designed directly?
Core loop and engagement loop — what is the practical difference?
Is MDA still used? "Aesthetics" gets criticized.
How does MDA relate to reward design in RL?
- Hunicke, LeBlanc, Zubek — "MDA: A Formal Approach to Game Design and Game Research" (AAAI Workshop, 2004) — the primary source.
- Raph Koster — "A Theory of Fun for Game Design" — why "fun" = learning patterns.
- Jesse Schell — "The Art of Game Design: A Book of Lenses" — a hundred "lenses", including the loop and MDA.
- Daniel Cook — "Loops and Arcs" (lostgarden.com) — the core loop as the unit of design.
- Module 9, Part 1 (Core & Meta Loop) + Part 3 (MDA) —
09-game-design-theory.md.