Chapter 9 Exercises: Emergence
Exercise 1: Build the Fire Spread System
Type: Implementation
Time: 60-90 minutes
Deliverable: Working fire spread prototype in Godot
Implement the FireSpread.gd system from Section 9.7 in your progressive project.
-
Create a
GrassTilescene:Node2DwithSprite2D(green rectangle, 32x32),CPUParticles2DnamedBurnParticles(orange/red, emitting = false, one_shot = false, lifetime = 0.5), and theFireSpread.gdscript. Add the node to the"flammable"group. -
Create a
Torchscene that the player can interact with. When the torch is activated (attacked, bumped, or interacted with), it callsignite()on any overlappingflammablebody. -
Place 30-40 grass tiles in your level in three clusters: one tight cluster (tiles touching), one loose cluster (tiles 32-48px apart), and one scattered group (tiles 64-96px apart).
-
Place a torch near the tight cluster. Ignite it. Observe the spread pattern.
-
Tune the parameters. Adjust
spread_delay,spread_radius, andburn_timeuntil the fire: - Spreads fast enough to feel dramatic (the player should see visible chain reactions) - Spreads slow enough that the player can react (they should be able to outrun the fire) - Burns out before the entire level is consumed (individual tiles should char within 3-5 seconds) - Stops at gaps between clusters (thespread_radiusshould not bridge the scattered group) -
Record a 15-second video of the fire spreading through the tight cluster. Then record the same fire attempting to cross a gap. Write three sentences explaining how
spread_radiuscontrols the emergence: same rule, different spatial arrangement, different outcome.
What this teaches you: The fire spread system is identical on every tile. The emergent behavior comes entirely from the spatial arrangement of tiles. This is the fundamental principle of emergence: simple rules + spatial configuration = complex behavior.
Exercise 2: Build the Push Block + Pressure Plate System
Type: Implementation
Time: 45-60 minutes
Deliverable: Working push block and pressure plate puzzle in Godot
Implement the PressurePlate.gd and PushBlock.gd systems from Section 9.8.
-
Create a
PushBlockscene:RigidBody2DwithSprite2D(grey square, 32x32),CollisionShape2D, andPushBlock.gd. Add to the"heavy"group. Set the RigidBody2D's mass to 2.0 and friction to 0.8 so it slides but does not feel weightless. -
Create a
PressurePlatescene:Area2DwithSprite2D(floor tile with an inset pattern),CollisionShape2D, andPressurePlate.gd. Connect thebody_enteredandbody_exitedsignals. -
Create a
Gatescene:StaticBody2DwithSprite2DandCollisionShape2D. Add methodsopen()(disable collision, change sprite to translucent) andclose()(enable collision, change sprite to opaque). Connect the pressure plate'sactivatedsignal togate.open()anddeactivatedsignal togate.close(). -
Build a simple puzzle room: a gate blocking a corridor, a pressure plate on the floor, and a push block nearby. The player pushes the block onto the plate. The gate opens.
-
Test edge cases: - What happens if the player pushes the block off the plate? (Gate should close.) - What happens if the player stands on the plate? (Player should not be in
"heavy"group --- the plate should not activate.) - What happens if two blocks are on the plate and one is removed? (Depends on implementation --- document the behavior.)
What this teaches you: A pressure plate that responds to physics objects creates a class of solutions: anything heavy works. This is property-based design. The plate does not know about blocks. It knows about weight.
Exercise 3: Connect the Two Systems
Type: Implementation + Experimentation
Time: 45-60 minutes
Deliverable: Working cross-system interaction and written observation log
Now make your fire system and physics system interact.
-
Create a variant of your push block:
WoodenBlock. Same as the stone block, but add it to the"flammable"group and attachFireSpread.gd. When the wooden block burns out, callqueue_free()to destroy it. -
Set up the following scenario: a pressure plate with a wooden block on it, a gate connected to the plate, and grass tiles leading from a torch to the wooden block.
-
Light the grass. Watch the fire spread to the wooden block. Watch the block burn and disappear. Watch the pressure plate deactivate. Watch the gate close.
-
Write an observation log. For each step in the chain reaction, note: - What triggered this step (cause) - What system was responsible (fire, physics, or pressure plate) - What the player sees (feedback) - Whether you explicitly coded this interaction (you did not --- it emerged from properties)
-
Now brainstorm: can this interaction be useful to the player? Design a puzzle where the player wants the gate to close after a delay. Perhaps the player needs to cross through the gate, then needs it to close behind them to block a pursuing enemy. The burning block becomes a timed switch --- the player lights it, rushes through, and the fire closes the gate behind them. Write a one-paragraph description of this puzzle.
What this teaches you: Cross-system interactions produce emergent behavior that no single system contains. The fire system does not know about gates. The pressure plate does not know about fire. But their interaction creates a timed switch mechanic you never explicitly built.
Exercise 4: Design an Interaction Matrix
Type: Design / Analytical
Time: 60-90 minutes
Deliverable: Complete interaction matrix table and prioritized implementation plan
Design a full interaction matrix for a hypothetical 2D adventure game with the following six systems:
- Fire: Ignites flammable things. Damages entities. Produces light.
- Water: Extinguishes fire. Creates wet/slippery surfaces. Conducts electricity.
- Wind: Moves lightweight objects. Spreads fire. Deflects projectiles.
- Electricity: Stuns entities. Activates machines. Chains through metal and water.
- Ice: Freezes water. Creates slippery surfaces. Shatters when hit.
- Physics: Objects have weight, momentum, friction. Can be pushed, thrown, stacked, dropped.
Create a 6x6 matrix. For each cell (36 total, minus the 6 self-interactions = 30 interaction pairs):
- Describe the interaction in one sentence. (Example: Fire + Water = "Fire is extinguished; produces steam cloud that obscures vision for 3 seconds.")
- Rate the implementation priority from 1 (must-have) to 3 (nice-to-have). Prioritize interactions that: - The player will discover naturally during normal play (high visibility) - Enable creative problem-solving (multiple puzzle solutions) - Produce dramatic, shareable moments (story potential)
- Identify three interactions you would cut if you had limited development time. Justify each cut.
- Identify the single interaction you consider most important for the game's emergence. Explain why.
After completing the matrix, count the cells filled at each priority level. What percentage of the matrix is priority 1? If more than 50% is priority 1, you are overscoping. Trim.
What this teaches you: The interaction matrix is the emergence designer's most important planning tool. Filling it forces you to think about every pair of systems and decide which interactions produce the most value. It also reveals which systems are "islands" (few interactions) and which are "hubs" (many interactions). Systems with few interactions should be cut or redesigned.
Exercise 5: Analyze Breath of the Wild's Chemistry Engine
Type: Analytical / Research
Time: 60-90 minutes
Deliverable: Written analysis (2-3 pages)
Play Breath of the Wild (or watch gameplay footage focusing on systemic interactions) for 30-45 minutes. Focus exclusively on emergent interactions. Every time two systems interact, document it.
Create a table with these columns:
| Interaction Observed | Systems Involved | Player-Initiated or Environmental? | Did I Predict This? |
|---|---|---|---|
| (Example: "Shot fire arrow at wooden crate; crate caught fire and burned away, revealing hidden chest") | Fire + Material (wood) | Player-initiated | Yes --- wood is flammable |
| (Example: "Lightning struck metal shield I was holding; took damage") | Electricity + Metal + Weather | Environmental trigger | No --- surprised me |
After 30 minutes, analyze your table:
- How many unique system interactions did you observe? (Expect 15-25 in 30 minutes of focused observation.)
- What percentage were player-initiated vs. environmental? A good balance is 60/40 --- the player should feel like they are driving the interactions, but the world should also surprise them.
- What percentage did you predict before they happened? High prediction rates mean the rules are learnable. Low prediction rates mean the rules are not clearly communicated. Breath of the Wild targets roughly 70% predictable, 30% surprising.
- Identify one interaction chain --- a sequence where the output of one interaction became the input of another (fire ignites grass, burning grass ignites tree, falling tree crushes enemy). How long was the longest chain you observed?
Write a 2-3 page analysis answering: What design decisions enable Breath of the Wild's emergence? How does the game teach the player its rules without tutorials? What is the role of material properties in making the system learnable?
What this teaches you: Active observation of a masterfully designed emergent system trains your eye for systemic interactions. After this exercise, you will start noticing emergence (and its absence) in every game you play.
Exercise 6: Create Three Emergent Surprise Moments
Type: Design + Implementation
Time: 60-90 minutes
Deliverable: Three designed scenarios that produce emergent surprises, implemented or paper-prototyped
Using the fire + physics systems you implemented in Exercises 1-3, design three scenarios where the player is likely to discover an emergent interaction they did not expect.
For each scenario:
- Describe the setup: What does the player see when they enter the area? What objects are present? What is the player's likely goal? (Get through the door, defeat the enemy, reach the treasure, etc.)
- Describe the intended solution: What is the "obvious" way to solve the challenge?
- Describe the emergent surprise: What happens if the player interacts with the systems in an unexpected way? What is the "aha moment"?
- Implement or sketch it. If you can build it in your Godot project, do so. If time is short, draw a top-down room sketch with annotations.
Example scenario:
- Setup: A room with two enemies, a wooden floor, and a treasure chest behind a metal gate. A torch is on the wall. A stone pressure plate is across a gap the player cannot jump.
- Intended solution: Defeat both enemies (standard combat), then figure out the pressure plate puzzle.
- Emergent surprise: The player knocks the torch off the wall. It lands on the wooden floor. The floor catches fire. The enemies, being in the
"flammable"group, catch fire and die from burn damage without the player swinging a weapon. Meanwhile, one enemy, fleeing the fire, accidentally runs across the pressure plate, activating the gate. The player gets the treasure without fighting or solving the puzzle.
This scenario was not scripted. It emerged from: fire ignites flammable things (floor + enemies), AI flees fire (enemies move), pressure plates detect heavy objects (enemy standing on plate). Three rules. One unscripted story.
Design three scenarios of this kind. At least one should involve a cross-system interaction (fire + physics, or fire + AI + physics).
What this teaches you: Emergent surprises do not happen by accident. They happen because the designer placed systems in proximity and trusted the interaction rules to produce interesting outcomes. Designing for emergence means designing environments where emergence is likely to occur, not designing the emergence itself.
Exercise 7: The Exploit Hunt
Type: Analytical / Testing
Time: 45-60 minutes
Deliverable: Exploit report with three documented exploits and proposed fixes
Play your progressive project (with fire and physics systems implemented) for 30 minutes with one goal: break the game. Find emergent behavior that is degenerate, overpowered, or unintended in a way that undermines the game's design.
For each exploit you discover, document:
- The exploit: What did you do? What systems were involved?
- Why it works: Which interaction in the matrix enables this behavior? What property or rule is being abused?
- Impact: How much does this exploit undermine the intended experience? Rate from 1 (cosmetic/funny) to 5 (game-breaking).
- Proposed fix: How would you mitigate this exploit without removing the emergent systems that caused it? Your fix should preserve the intended interactions while limiting the degenerate ones.
If you cannot find three exploits in 30 minutes, answer the following: Why not? Is your system too simple to produce exploits? (If so, it may be too simple to produce interesting emergence either.) Are the constraints tight enough that degenerate behavior is impossible? (If so, congratulations --- your system is well-bounded.)
Common exploits to look for:
- Can the player burn a path through walls they were not supposed to pass?
- Can the player push blocks to reach areas intended to be inaccessible?
- Can the player use fire to kill bosses or enemies that were designed to require combat skill?
- Can the player trap enemies permanently using blocks or fire?
- Can the player create infinite fire loops (fire spreads in a circle that never burns out)?
What this teaches you: Exploit hunting is a required skill for emergent system designers. If you can find the exploits before your players do, you can decide which ones to fix, which ones to keep (because they are fun), and which ones to celebrate (because they make your game famous on YouTube).
Exercise 8: Emergent Narrative Journal
Type: Creative / Observational
Time: 90-120 minutes (spread across multiple play sessions)
Deliverable: Written narrative (1-2 pages) derived from emergent gameplay
Play Rimworld, Dwarf Fortress, Crusader Kings III, or The Sims 4 for 60-90 minutes. Do not follow a guide or optimize your play. Let things happen. Let the simulation run.
Keep a running journal of events. Write them as a narrative, not as a game log. Instead of "Colonist Bree set fire to stockpile," write: "Bree had been on edge for days. The constant rain, the cramped quarters, the anniversary of her friend's death --- it was too much. She stood in the stockpile for a long time, staring at the wall. Then she lit the match."
After 60-90 minutes, write a 1-2 page short story based on the events you observed. The story should have:
- A protagonist (one character you followed most closely)
- A conflict (something went wrong, as it always does in these games)
- A resolution (how the situation ended, for better or worse)
- At least three events that were entirely emergent (not scripted by the game's developers)
After writing the story, answer: What systems produced this narrative? Could a game designer have scripted a better version of this story? What does this story have that authored narratives cannot --- and what does it lack?
What this teaches you: Emergent narratives have a quality that authored narratives cannot replicate: they actually happened. The events were not placed for dramatic effect. They emerged from systems, which gives them a raw, unpolished truthfulness. Understanding the strengths and limits of emergent narrative makes you a better designer of both systemic and authored experiences.
Exercise 9: Conway's Game of Life Implementation
Type: Implementation
Time: 45-60 minutes
Deliverable: Working Game of Life simulation in Godot
Implement Conway's Game of Life in Godot as a standalone scene. This is the purest possible emergence exercise: four rules, infinite behavior.
- Create a grid of cells (use a
TileMapor an array ofColorRectnodes). Start with a 40x30 grid. - Implement the four rules from Section 9.1.
- Add a timer that advances the simulation one step every 200ms.
- Add a way for the player to toggle cells on and off (click to toggle).
- Add a pause/play button.
Test with these classic patterns:
- Glider: A pattern that walks diagonally across the grid. Place cells at (1,0), (2,1), (0,2), (1,2), (2,2).
- Blinker: A three-cell line that oscillates between horizontal and vertical.
- Gosper Glider Gun: A pattern that produces a new glider every 30 steps. (Look up the configuration online.)
After building the simulation, write a half-page reflection: Four rules. No intelligence. How is it possible that these four rules produce patterns that build other patterns? What does this tell you about emergence in game design?
What this teaches you: Building the Game of Life from scratch makes the concept of emergence visceral. You wrote four rules. You did not write "gliders" or "oscillators" or "guns." They emerged. This is the same principle that makes Breath of the Wild's chemistry engine work, scaled to its most elemental form.
Exercise 10: Redesign a Scripted Puzzle as Emergent
Type: Design / Analytical
Time: 30-45 minutes
Deliverable: Written redesign document (1 page)
Choose a puzzle from a game you have played that has exactly one solution. (Examples: a specific-key-for-specific-lock puzzle, a "push the statue onto the marked tile" puzzle, a "hit the switches in the right order" puzzle.)
Redesign the puzzle to have at least three solutions using emergent systems. Your redesign must:
- State the original puzzle and its single solution.
- Identify the systems available in the game (or systems you would add). Use the material-property approach: what properties do the objects in the puzzle have?
- Describe three solutions enabled by system interactions. At least one solution should use a cross-system interaction (fire + physics, electricity + water, etc.).
- Describe one "unintended" solution that a creative player might discover that you did not plan. (If you cannot imagine one, your systems are not interactive enough.)
- Evaluate the tradeoff: What did the original single-solution design provide that your emergent redesign loses? (Answer: pacing control, difficulty calibration, narrative timing.) What does the emergent redesign provide that the original lacks? (Answer: player agency, replayability, the "aha" moment of discovering a creative solution.)
What this teaches you: Converting a scripted puzzle to an emergent one reveals the concrete tradeoffs on the design spectrum. Both approaches have strengths. The exercise forces you to articulate them explicitly.
Exercise 11: System Interaction Chain Challenge
Type: Design
Time: 30-45 minutes
Deliverable: Written interaction chain with analysis
Using the six-system matrix from Exercise 4 (Fire, Water, Wind, Electricity, Ice, Physics), design the longest possible logical interaction chain you can. Each step must follow from the previous step according to the system rules.
Example chain (5 steps):
- Player lights torch (Fire).
- Wind blows fire onto wooden bridge (Wind + Fire).
- Bridge burns and collapses. Physics objects on the bridge fall into the water below (Fire + Physics).
- Falling metal object enters water, conducting electricity from a nearby power source (Physics + Water + Electricity).
- Electric water stuns all enemies standing in the pool (Electricity + AI).
Your chain must:
- Be at least 6 steps long
- Use at least 4 of the 6 systems
- Have each step logically follow from the previous step (no deus ex machina)
- Be physically plausible within the game world
- Be something a player could plausibly trigger (either intentionally or accidentally)
After designing the chain, answer:
- Would a player discover this chain on purpose or by accident? Both are valid. Intentional discovery means the systems are learnable. Accidental discovery means the systems are reactive.
- At which step would most players stop paying attention? Long chains are impressive in theory but often invisible in practice because the player has moved on by step 3.
- How would you add feedback to ensure the player can follow the entire chain? Each step needs a visual or audio cue that draws attention to the next step.
What this teaches you: Long interaction chains are emergence's most dramatic output, but they require clear feedback at every step. A spectacular chain reaction that the player does not notice is wasted emergence.
Exercise 12: Emergence Post-Mortem
Type: Reflective / Analytical
Time: 30 minutes
Deliverable: Written reflection (1 page)
After completing the exercises above, write a one-page post-mortem on your experience implementing emergent systems. Address:
- What surprised you? Did the systems produce any interactions you did not anticipate when writing the code? What were they?
- What was harder than expected? Was it the implementation, the tuning, or the testing? Why?
- What was easier than expected? Did any interactions "just work" without additional code? Which ones?
- Where is your game on the emergence spectrum now? Is it more scripted or more emergent than you intended? Where do you want it to be?
- What is the single most important lesson you learned about emergent design from building these systems?
- What would you add next? If you had unlimited development time, what third system would you add to interact with fire and physics? Why?
This reflection is for your own benefit. Emergence is a design philosophy, not a feature. Understanding your relationship to it --- where you are comfortable, where you struggle, where you see untapped potential --- will shape every game you design going forward.
What this teaches you: Post-mortems are the most underused learning tool in game development. The act of writing down what happened, what worked, and what did not crystallizes lessons that would otherwise be forgotten by the next project.