Lecture W4T1: MDA, Core Loops, and the Birth of Your Game
September 15, 2026
LECTURE W4T1 // PAPER BEFORE PIXELS
Housekeeping: Lab 2 is due Thursday, September 17, 9:59 PM. Student hours are back this week.
2 minutes with your neighbor:
Week 3’s topics were scene composition and signals. There was no lecture, and yet you have already used both, in your own repo, in a game that runs. Today we just put the names on.
paddle.tscn, ball.tscn, brick.tscn) is a self-contained object: sprite, shape, script, behavior, all in one reusable package.main.tscn (or spawned from code) is composition: big games are small scenes, assembled.if statement.From your Lab 2, in main.gd:
One scene, defined once, instanced 48 times, each with its own position and tint. That is the whole doctrine of Scene organization: build objects, then compose worlds out of them. Pac-Blitz’s mazes will be born exactly this way.
From your Lab 2, in brick.gd:
main.gd subscribes with brick.smashed.connect(_on_brick_smashed). It has no idea how bricks die.This is the Observer pattern (GPP: Observer): announcers and listeners, decoupled. Forty-eight announcers, one listener, zero entanglement, and neither side changes when the other grows.
Composition builds your game’s body; signals wire its nervous system. You now hold both. Everything after this week is organs.
MDA splits every game into three layers: Mechanics (the rules and parts as built), Dynamics (the behavior that emerges when players play the rules), and Aesthetics (the emotional experience the player walks away with).
The layer you can point at in the repo. Rules, numbers, verbs, components.
520.0 pixels per second. A brick dies in one hit. The ball’s serve angle is random within a cone.@export, or a checkbox, it is a mechanic. This is the only layer you directly control.Nobody codes dynamics. They happen when mechanics meet players.
Not graphics: feelings. The MDA paper names eight kinds of fun, and “fun” stops being one mushy word:
| Sensation (sense-pleasure) | Fantasy (make-believe) | Narrative (drama) |
| Challenge (obstacle course) | Fellowship (social play) | Discovery (uncharted territory) |
| Expression (self-discovery) | Submission (pastime, flow) |
Tetris sells challenge and submission. Minecraft sells discovery and expression. Mario Kart at a party sells fellowship. Same industry, different feelings, different designs. Pick yours on purpose.
Diagnose at the right layer. “Boring” (aesthetic) might be “no meaningful choices” (dynamic), which might be “every brick dies in one hit” (mechanic). The fix is always typed into M; the symptom is always felt in A.
| Mechanic (built) | Dynamic (emerges) | Aesthetic (felt) |
|---|---|---|
| Figs flip the chase briefly | Baiting rivals into a Fig Break | Challenge, and a jolt of power |
| Four rivals with different pursuit rules | Reading the room: who chases, who cuts you off | Discovery, then mastery |
| Growth through four class years | Early crawlspace shortcuts stop fitting | Narrative: growing up costs you |
| Berries all must be eaten to clear a maze | Route planning under pressure | Submission: one more maze |
Notice the middle column is the game. Nobody codes the middle column. We earn it, or we do not.
The core loop is the shortest cycle of actions your player repeats, the thing they do over and over that the whole game hangs on. If the loop is not satisfying by itself, no amount of content wrapped around it will save it.
Small games (yours, this semester) live or die on the moment loop. Polish one loop until it sings before you add a second. A tier-1 game is one great loop, not five rough ones.
Can you say your game’s core loop in one breath? “You ____, then you ____, then you ____, and then you do it again because ____.” If the sentence will not finish, the design is not ready to build.
Keep that template in hand. In a few minutes you will fill it in for the game you want to make, it is what you will pitch when teams form, and it is the first question I will ask at your Prototype gate.
Every project gets two peer stakeholders: classmates from other teams who play your builds and give structured feedback at the three gates. Every student serves as a stakeholder for exactly one project that is not their own.
Solo, in silence (3 minutes). The idea you brought becomes an index card:
Card in hand, find your co-founder:
One countdown per round; I restart it at each rotate. You are matching on compatible taste, not identical ideas. The idea will change; the taste will not.
Find the fun before you fund it. Every hour on paper is ten in the editor. The industry name for this is paper prototyping, and studios with hundred-million-dollar budgets still start here.
With your new teammate (20 minutes):
60 seconds per team, standing at your table:
Then photograph your paper prototype and keep it. This page is the seed of your semester project and the first artifact your stakeholders will see at the Prototype gate. Teams and concepts can still change; the habit of testing before building cannot.
Lab 2: Brick Breaker is due Thursday, September 17, 9:59 PM: game pushed to main, Your Submission section filled: screenshot, custom feature, layer map, reflection.
Reading for Thursday (highly recommended): GPP: State. And if you skimmed the MDA paper before class, tonight is a fine night to read it properly; it is eight pages.
Thursday: state machines, the brains behind every player controller and, eventually, our four rivals. Lab 3 (a platformer with a state machine) goes out the same day.
