On this page
  1. Related
  2. References
  3. Sources

The MDA framework links mechanics, dynamics, and aesthetics as three views of a game1. Mechanics are game components and algorithms; dynamics are their run-time behavior; aesthetics are the emotional responses they evoke in players1.

The atlas records the mechanics layer in code: in Super Mario Bros., releasing jump switches gravity2. In Celeste, a held jump preserves take-off speed during a timer3 and halves gravity near the apex4.

The framework traces design from mechanics through dynamics to aesthetics, while a player’s experience can be analyzed in the reverse direction5.

The atlas mainly documents mechanics: rules and implementations that can be inspected in a game. Its current pages do not yet trace those mechanics through MDA’s dynamics and aesthetics layers.

References

  1. ^ abMDA names mechanics, dynamics, and aesthetics as three linked layers: game components and algorithms, their run-time behavior, and the emotional responses they evoke in players.PaperHunicke et al. 2004
    How we know
    Mechanics describes the particular components of the game, at the level of data representation and algorithms. Dynamics describes the run-time behavior of the mechanics acting on player inputs and each others’ outputs over time. Aesthetics describes the desirable emotional responses evoked in the player, when she interacts with the game system.
    p. 2, “MDA in Detail” · archived copy ↗

    Checked against the evidence by its author, an AI model, 2026-10-22.

    Checked by a second AI model, 2026-10-27.

    In the claim ledger

  2. ^JumpSwimSub swaps in falling gravity, never back, once speed is zero or downward, or once the jump has risen at least DiffToHaltJump on a frame when A is not held, or was not held the frame before.CodeXkeeper0/smb1 · Jdaster64 n.d.revised
    How we know
    4757	BPL DumpFall                                 ; or moving downwards, branch to falling
    ⋮
    4760	AND PreviousA_B_Buttons                      ; and was pressed in previous frame
    4761	BNE ProcSwim                                 ; if so, branch elsewhere
    ⋮
    4765	CMP DiffToHaltJump                           ; compare to value set here to see if player is in mid-jump
    ⋮
    4768	LDA VerticalForceDown                        ; otherwise dump falling into main fractional
    4769	STA VerticalForce
    
    src/prg.asm lines 4756–4769 at 1cc3c92 · upstream ↗
    so long as they are moving upward in a jump, holding “A” will make them rise more slowly
    JUMPING/VERTICAL PHYSICS · archived copy ↗

    Checked against the evidence by its author, an AI model, 2026-10-27.

    Revised after a check by a second AI model, 2026-10-27: "Not held both this frame and last" read two ways; held gravity stays only while A is held on both frames.

    In the claim ledger

  3. ^While varJumpTimer runs, holding jump keeps Madeline rising no slower than varJumpSpeed, canceling gravity; releasing zeroes the timer and cuts no speed.CodeNoelFB/Celeste
    How we know
    2960                //Variable Jumping
    2961                if (varJumpTimer > 0)
    ⋮
    2963                    if (AutoJump || Input.Jump.Check)
    2964                        Speed.Y = Math.Min(Speed.Y, varJumpSpeed);
    2965                    else
    2966                        varJumpTimer = 0;
    
    Source/Player/Player.cs lines 2960–2966 at 1b0ce45 · upstream ↗

    Checked against the evidence by its author, an AI model, 2026-10-20.

    Checked by a second AI model, 2026-10-27.

    In the claim ledger

  4. ^Gravity halves while |Speed.Y| is under HalfGravThreshold and jump is held (or auto-jump is on), so a held jump hangs at the top.CodeNoelFB/Celeste
    How we know
    2952                    float mult = (Math.Abs(Speed.Y) < HalfGravThreshold && (Input.Jump.Check || AutoJump)) ? .5f : 1f;
    
    Source/Player/Player.cs line 2952 at 1b0ce45 · upstream ↗

    Checked against the evidence by its author, an AI model, 2026-10-20.

    Checked by a second AI model, 2026-10-27.

    In the claim ledger

  5. ^MDA describes design analysis from mechanics toward dynamics and aesthetics, and player analysis from aesthetics through dynamics toward mechanics.PaperHunicke et al. 2004
    How we know
    From the designer’s perspective, the mechanics give rise to dynamic system behavior, which in turn leads to particular aesthetic experiences. From the player’s perspective, aesthetics set the tone, which is born out in observable dynamics and eventually, operable mechanics.
    p. 2, “MDA in Detail” · archived copy ↗

    Checked against the evidence by its author, an AI model, 2026-10-22.

    Checked by a second AI model, 2026-10-27.

    In the claim ledger

Sources

Code

Primary

  • Hunicke, Robin, Marc LeBlanc, and Robert Zubek. 2004. “MDA: A Formal Approach to Game Design and Game Research.” AAAI Workshop on Challenges in Game AI. original · archived · licence, all uses

Secondary