Chapter 11 Exercises: Flow --- The State Where Challenge Meets Skill


Exercise 1: Flow Channel Analysis of a Favorite Game

Type: Analytical / Written
Time: 45-60 minutes
Deliverable: Written analysis with a sketched flow channel diagram (1,000-1,500 words)

Choose a game you have played for at least 20 hours. Draw the flow channel diagram from memory (challenge on vertical axis, skill on horizontal axis, diagonal band in the middle).

Then plot your experience across the game. Mark:

  • The starting point (hour 0, where your skill and the challenge begin)
  • 5-7 significant points along your playthrough where the challenge shifted relative to your skill
  • The endpoint (where you stopped, either finishing or quitting)

For each marked point, answer:

  1. What was happening in the game at that point?
  2. Where were you on the flow channel --- in the channel, above it (anxiety), or below it (boredom)?
  3. If you were outside the channel, did the game bring you back in? How?
  4. If you were in the channel, what was the game doing to keep you there?

Then answer two synthesis questions:

  • At any point, did the game's challenge escalate faster than your skill grew? What did that feel like?
  • At any point, did your skill grow faster than the challenge escalated? What did that feel like?

What this teaches you: Flow is not continuous or automatic. Even in great games, you drift in and out of flow. Learning to see those drifts in games you have played is the prerequisite for engineering them in games you design.


Exercise 2: Tune Your Prototype's Difficulty Curve

Type: Implementation / Playtest
Time: 3-5 hours across multiple sessions
Deliverable: Updated difficulty curve, playtest notes, before/after analysis

Recruit 3-5 playtesters who have not played your project before. Prepare a quiet space and ask each tester to play through the current content while you observe silently. Do not explain controls except in response to direct questions. Do not hint at solutions. Do not offer encouragement after failures.

Record, per section of your game:

  • Completion time (stopwatch)
  • Number of deaths or failures
  • Verbal reactions ("this is too hard," "oh come on," sighs, groans, laughs)
  • Body language (leaning in vs. leaning back, hand tension, phone-checking)

After all playtests, build a table:

Section Avg Time Avg Deaths Observed State
1 Flow / Bored / Anxious
2 Flow / Bored / Anxious
...

Identify your top two problem sections --- either the one that produced the most anxiety or the one that produced the most boredom. For each, propose a specific fix. Apply the fix. Re-playtest with new testers (or the same testers after a two-week gap) and compare results.

Write a before/after reflection: did your fix move players back into the channel? Did it introduce new problems? What did you learn about the gap between how you thought the section played and how it actually played?

What this teaches you: Designers are consistently wrong about how their own game plays. Playtesting is not optional. The gap between your intuition and actual player experience is your biggest blind spot, and closing it is the whole job.


Exercise 3: Implement Assist Mode

Type: Implementation
Time: 2-3 hours
Deliverable: Working Assist Mode with at least three toggles, tested with a real user

Using the AssistMode.gd template from Section 11.8 as a starting point, implement a complete Assist Mode for your project. Include at minimum:

  1. Invincibility toggle --- the player cannot take damage (or loses no lives, depending on your game's fail state)
  2. Game speed slider --- adjustable from 50% to 100% of normal speed
  3. One game-specific toggle of your choice (infinite ammo, auto-aim, skip-combat, hint system, whatever maps to your mechanics)

Build a menu UI that exposes these toggles. Requirements:

  • The menu is labeled "Assist Mode" or "Accessibility Options" --- never "Easy Mode"
  • Each toggle has a brief, non-judgmental description
  • There is no warning, shame, or penalty for enabling options
  • Achievements, endings, and content are all accessible with any combination of options enabled

Once built, ask someone to playtest with at least one option enabled. Preferably someone who self-identifies as low-skill, has an accessibility need, or is simply curious. Observe: which options do they use? Do they feel the experience is still meaningful? Do they complete content they would not have otherwise?

Write a short reflection: did Assist Mode expand who can engage with your game? What did you learn about how others experience your design?

What this teaches you: Accessibility is a design choice, and it is almost always additive. Players who do not need Assist Mode will not notice it exists. Players who need it now have a path into your game they would not otherwise have had. The cost is a few hours of your time. The benefit is an entire category of players included in your audience.


Exercise 4: The Time Distortion Journal

Type: Self-observation / Reflective
Time: 1-2 weeks of play, 30 minutes of writing
Deliverable: Journal entries and a written synthesis

Over the next one to two weeks, play at least three different games. For each play session:

  1. Before you start, note the time and your intended session length ("I am starting at 7:42 PM and plan to play for about 45 minutes").
  2. When you stop playing, note the actual time and how long the session felt ("I stopped at 9:15 PM. It felt like about 20 minutes.").
  3. Within 15 minutes of stopping, write 3-5 sentences about what the session felt like. Were you absorbed? Were you distracted? When did time seem to vanish, and when did it drag?

After 1-2 weeks of entries, synthesize what you observed:

  • Which games produced the most severe time distortion for you? What did they have in common?
  • Which games did not produce time distortion, even when you enjoyed them? What was different?
  • Did time distortion correlate with the eight characteristics of flow you recorded? (Check your notes against clear goals, immediate feedback, challenge-skill balance, etc.)

What this teaches you: Flow is directly observable in your own experience, and once you can see it in yourself, you can design for it in others. The time-distortion test is the single most reliable indicator that a flow state occurred. Calibrate your sensitivity to it.


Exercise 5: Celeste Assist Mode Study

Type: Analytical / Play Study
Time: 3-5 hours
Deliverable: Written analysis (1,000-1,500 words)

Play Celeste. If you already have, replay at least the first three chapters. Complete one chapter at default difficulty. Then enable one Assist Mode option (not all of them --- just one) and complete the next chapter. Then enable a second option and complete the third chapter.

Document for each:

  1. What option(s) you enabled
  2. How the experience changed mechanically
  3. How the experience changed emotionally --- was the challenge satisfying? Was the narrative still engaging? Did you feel like you "earned" the progress?

Then answer:

  • Which option had the largest effect on your experience? Why?
  • Did any option feel like it "broke" the game? (Note: Celeste's designers specifically argue that this is not possible, because the game is what you experience, not what was designed. Do you agree?)
  • How would your evaluation differ if the options were bundled into a single "Easy Mode" toggle?

What this teaches you: Assist Mode is not a single choice; it is a design space. Different options affect different players differently. Fine-grained control is what makes accessibility work. Bundling eliminates the meaningful choice.


Exercise 6: DDA Implementation and Testing

Type: Implementation / Analytical
Time: 3-4 hours
Deliverable: Working DDA system with logged adjustment data

Implement the DifficultyManager.gd from Section 11.7 in your project. Wire it to:

  • Your death-tracking or failure-tracking system
  • Your section-completion events
  • Enemy spawn points (use get_enemy_health_multiplier() and get_enemy_damage_multiplier())

Add a debug log (visible only in development builds) that records every adjustment with a timestamp and reason: [12:32:04] Adjusted -0.05 (3 deaths in section).

Playtest yourself. Play badly on purpose for one run (die repeatedly, take your time) and note the adjustments. Play skillfully on purpose for the next run (no deaths, fast completion) and note the adjustments.

Then answer:

  • Did the adjustments feel like they made a difference in your experience? Or were they invisible to you because you knew what was happening?
  • Imagine a player who did not know DDA was active. Would they notice the adjustments? At what magnitude do you think detection becomes likely?
  • What would you adjust about the thresholds or the adjustment step if you wanted the system to be more or less aggressive?

What this teaches you: DDA is calibration, not magic. The thresholds and step sizes matter enormously. A system with ADJUST_STEP = 0.2 would be detectable in minutes; a system with ADJUST_STEP = 0.02 might never meaningfully adjust. Finding the correct magnitude is specific to your game.


Exercise 7: Microflow vs. Macroflow Audit

Type: Analytical
Time: 45-60 minutes
Deliverable: Written audit of your project

Look at your progressive project with fresh eyes. Evaluate it separately on two axes.

Microflow (moment to moment):

  • Are controls tight and responsive?
  • Is feedback immediate (visual, audio, kinesthetic)?
  • Within a single encounter or puzzle, does challenge ramp appropriately?
  • Are the goals at each moment clear?

Rate each of these 1-5 and justify your rating with specific examples from your project.

Macroflow (session to session):

  • Is there a compelling reason to play "one more" (level, encounter, puzzle, run)?
  • Does progress persist in a way that creates session-to-session pull?
  • Are save points placed in a way that lets players stop cleanly but also invites them to continue?
  • Is there a larger arc (narrative, mechanical progression, mastery curve) that contextualizes the session?

Rate each 1-5 and justify.

Then synthesize: which is stronger in your project, microflow or macroflow? What is the specific next change you could make to improve the weaker one?

What this teaches you: The two timescales of flow require different design moves. A game strong in one but weak in the other will underperform. Auditing them separately clarifies what you actually need to fix.


Exercise 8: The Boredom Audit

Type: Playtest / Observational
Time: 2-3 hours
Deliverable: List of boredom moments with proposed fixes

Watch someone else (not a playtester, just a willing volunteer) play your project. Do not observe their deaths or failures. Watch for a specific signal: boredom.

Signs of boredom:

  • Phone-checking
  • Sighing (not with frustration, but with disengagement)
  • Eye-drifting from the screen
  • Auto-pilot play: inputs executing but attention clearly elsewhere
  • Starting conversations about unrelated topics during play
  • Commenting on how long something is taking

Catalog each boredom moment. For each, note what was happening in the game. Common patterns:

  • Sections where the same enemy appears for too long
  • Tutorial content the player already understands
  • Backtracking through areas they have already cleared
  • Long traversal between points of interest
  • Puzzles they have already solved once with no variation

Propose a fix for each pattern you identify. Common fixes: introduce a new enemy variant, skip tutorial content for returning players, add fast travel, shorten dead space, vary the puzzle.

What this teaches you: Anxiety-region problems get reported (players complain about hard sections). Boredom-region problems get suffered in silence (players just stop playing). You have to watch to find boredom. Once you are watching, you will see it everywhere in your game.


Exercise 9: Rubber-Banding Debate

Type: Written / Argumentative
Time: 60 minutes
Deliverable: 1,000-word written argument

Pick a position and defend it in writing:

Position A: Rubber-banding is a legitimate design tool, and games that use it produce better experiences for more players.

Position B: Rubber-banding is fundamentally dishonest, and games that use it undermine the competitive integrity that makes multiplayer meaningful.

Your argument must:

  • Cite at least two specific games that implement rubber-banding and evaluate them honestly
  • Engage with the strongest version of the opposing position (not a straw man)
  • Propose design conditions under which rubber-banding is clearly appropriate or clearly inappropriate
  • Conclude with a specific recommendation for designers facing this choice

What this teaches you: Designing is choosing between imperfect options. Rubber-banding is not a binary right-or-wrong choice; it has tradeoffs that depend on your game's audience and goals. Articulating the tradeoffs clearly is the intellectual work of design.


Exercise 10: Design a Skill-Challenge Spiral

Type: Design document
Time: 90 minutes
Deliverable: 1,500-2,500 word design document

Design the first 30 minutes of a hypothetical game from scratch, with the explicit goal of producing flow for a new player. The game's genre is your choice; the specific mechanics are your choice. The focus of this exercise is the skill-challenge spiral.

Your design document must include:

  1. The core skill the player is being taught (one primary skill, plus at most two secondary skills)
  2. A minute-by-minute plan for the first 30 minutes: what the player is doing, what they are learning, what challenge they are facing
  3. Expected skill at each 5-minute mark --- what the player should be able to do by minute 5, 10, 15, 20, 25, 30
  4. Expected challenge at each 5-minute mark --- what the game will be asking them to do
  5. Flow channel alignment --- at each 5-minute mark, explain how your designed challenge matches the designed skill level

Treat this as a real design document, not a hypothetical exercise. If someone else read it, could they implement the first 30 minutes of your game? Could they verify that your flow alignment would hold up in practice?

What this teaches you: Flow is not a vibe; it is a plan. Great flow design is explicit about what the player is learning and what the game is asking. Documenting that plan in detail is how you turn instinct into method.


Exercise 11: Optional Challenge Design

Type: Design / Implementation
Time: 2-3 hours
Deliverable: One optional challenge added to your project with documented flow intent

Your project currently has a main progression path. Add one optional challenge --- a side objective, a hidden room with a tough encounter, a time trial of an existing section, or a skill test of some kind.

The challenge should:

  • Be clearly optional (the player can skip it without consequence)
  • Be clearly harder than the main path at that point in the game
  • Offer a meaningful but non-required reward
  • Be visible to the player so they can choose to engage with it

Document:

  1. Who is this challenge for? (Skilled players? Completionists? Speedrunners?)
  2. What flow state are you targeting? At what skill level on the axis?
  3. What happens if a player attempts it and fails? (Is there a recovery path, or do they reset to a checkpoint?)
  4. How will the player know the challenge exists? (Sightline, map marker, NPC, environmental cue?)

What this teaches you: A single difficulty curve cannot serve every player. Optional challenges extend the flow channel upward for skilled players without punishing or excluding less-skilled players. They are the simplest way to broaden your audience without compromising any one player's experience.


Exercise 12: Presentation Exercise (Optional Group Assignment)

Type: Group / Presentation
Time: 2-3 hours including prep
Deliverable: 10-minute presentation to classmates or peers

In groups of 2-4, pick a game not covered in this chapter that you believe demonstrates masterful flow engineering. Prepare a 10-minute presentation that:

  1. Identifies the game's target audience and their expected skill level
  2. Analyzes how the game handles the skill-challenge spiral across its runtime
  3. Shows at least two specific moments (screenshots or short video clips) where the game makes a flow-engineering decision worth discussing
  4. Evaluates whether the game succeeds or fails, and for whom

Present to the class and take questions. The goal is not to conclude "this game is good" --- it is to dissect the specific design choices that produced the flow experience and to evaluate them critically.

What this teaches you: You learn design by articulating it. Forcing yourself to explain flow engineering in a specific game, out loud, to a skeptical audience, cements the concepts in ways that solo reading cannot. Disagreement in the Q&A is a feature, not a bug.