P4: Giant Steps v4 — Welcome to Tall’s
Game: Giant Steps v4 (Project 4)
Engine: Godot + Popochiu
Playtime: ~20–40 minutes
Theme: empathy for a musician trying to function while his nervous system does backflips
Link: https://sebastianblue.itch.io/giant-steps-v2-p4
Overview
Giant Steps is a small, moody story game about Desmond, a young sax player in New York who wants to play badly enough that it’s starting to mess with his relationships, his finances, and his ability to exist in public without feeling like he’s about to throw up.
P2 was basically: explore the apartment, absorb the backstory through objects, get the phone call, take the subway, stare at the red door, go inside anyway. Choices changed tone more than outcome. The question wasn’t “can you become fearless,” it was “do you still show up when your body is doing everything possible to stop you.”
For P4, I kept the same spine, but I finally built the part I actually care about mechanically: what anxiety does in the moment, when you’re trying to actually perform. So v4 adds the Tall’s sequence as a real playable space, plus a solo system where anxiety is a real number that matters, with lots of inner changes throughout—it changes your odds, it changes the feedback, and it can literally end your night.
What I was trying to fix (rubric brain)
Here’s what I targeted, since the rubric basically told me what to do (thanks rubric, love you, hate you):
-
Iteration & Intentions: make it obvious how P4 evolved from P2, with concrete system changes
-
Emotional Impact & Empathy: more “you feel it,” less “I told you it’s sad”
-
Narrative, Agency & Choices: keep the arc readable but let choices meaningfully affect how the night feels
-
Mechanics–Theme Fit: solo/anxiety systems should create real tension and clear consequences
-
Craft & Polish: easier to understand, less “wait what do I click,” fewer bugs, cleaner UI
How I started:
I began by watching videos of myself at public jam sessions, which was true torture. I felt so much anxiety just watching them, and then I realized that getting in your head during the playing is what is the most stressful part, so I grimaced and realized I had to make some sort of mini-game to represent the performance.
Below is me playing at a jam at “Smalls” in NY, where “Tall’s” is based on. I’m creative, I know.
I know I’ll regret this, but here’s me at The World Stage, where I grew up going to jam sessions with the late Billy Higgins:
here’s a video of me getting cut off during a jam session

Version & Playtest History (v4)
Playtest #1 — Nicholas (timing / feel / Processing inspiration)
Focus: early solo timing, responsiveness, and “does this feel like playing?”
Nicholas tested the original solo system when it was still rough: phrase timing felt off, the rhythm of choices didn’t match musical intuition, and the feedback loop needed to be faster and more physical. He also helped with the Processing sketch that inspired the final “click / gesture → vibe response” energy.
Changes made because of this:
-
tightened phrase windows and adjusted the pacing so actions line up with musical expectations (less “I clicked, why did it react a bar later?”)
-
made the solo feedback more immediate and readable mid-performance (UI + audio cues)
-
leaned harder into “dynamic + reactive” feel in the final version (the solo UI and the pressure ramp are basically me trying to recreate that Processing vibe inside Godot)
Playtest #2 — Rachelle (story clarity / detail density)
Focus: story texture and emotional readability
Rachelle’s main note was basically: “add details, add details, add details.” Which is fair. A club isn’t a blank room with a quest marker; it’s a social pressure-cooker full of tiny signals. She also pushed me to make the emotional arc clearer inside Tall’s, not just before it.
Changes made because of this:
-
expanded Tall’s into multiple spaces (outside → entry bar → sign-up → stage → bathroom mirror beat) so commitment happens in steps
-
added rotating bartender + stranger dialogue so the room feels inhabited and increasingly pushy
-
reinforced the “stalling vs committing” tension with environmental beats (sign-up sheet, curtain, posters, bottles, ambience)
-
made the bathroom mirror tutorial a memory/reflective scene (Berntee days, Dr. Hollbrook’s pillars) instead of a gamey pop-up
FINAL Playtest #3 — Heather (balance / points / thresholds)
Heather had already played an earlier version, so this test was less “what is happening” and more “do the numbers make sense when I actually replay it?” The big thing they noticed was that on the second run, actions felt like they had real downstream impact—not just “I can click more stuff,” but “what I do changes anxiety, and anxiety changes how the solo plays and how the night ends.” Their comments kept circling the core feeling I was designing for: the weird mental split of performing while your brain is also narrating and judging you (“Just like when you’re thinking while you’re playing music” 0:04). They also responded strongly to the groove/flow of the solo itself (“heartbeat” 0:43; “This is really good” 8:41), and they called out how the embedded narrative read as interactive rather than purely decorative (“I like the different writing… how you can interact with all the things” 3:28). Finally, they pushed on UI legibility in a useful way—wanting to map the feedback colors to meaning (My asking of: “I’m curious what your perception of each of the colors” 18:22)—which was a clear signal that the system was readable enough to analyze, but still had room to clarify the gradient/threshold language.
What changed in v4 – STATE!
I finally realized that making globals wasn’t scary, and in fact added way more immersion into the game. Creating this embedded narrative without these intricate little trackers would have felt way less cool. If you look at a page in the magazine, you might get a special dialogue box later. It was honestly not easy to keep track of all of these things, so I didn’t really. But explore.
1) Tall’s is now a whole sequence, not one room you teleport into
In P2, Tall’s was more like a narrative endpoint. In v4, Tall’s is a progression of spaces and commitment beats.
TallsChapter (chapter break)
You arrive, the game breathes for a second, and you get a title moment that doesn’t get swallowed by movement. It’s the “okay, we’re really doing this” inhale.
Talls (outside)
-
different vibe if you come back after leaving (a lot of these inner small choices and connections I wanted to add)
-
a stranger can hype you up with rotating lines if you’ve already bailed once
I wanted leaving and returning to be legible, because that’s a very real anxiety thing: “I didn’t disappear permanently, I just… needed to touch grass violently.”
TallsEntry (the bar)
This is the liminal space: bottles, posters, bartender, curtain, sign-up sheet. It’s where you can stall. It’s where you can pretend you’re “just checking the vibe” and not actively avoiding the thing you came for.
-
entering sets
has_entered_tallsand starts bar ambience -
leaving sets
has_left_talls_onceand stops it -
bartender has rotating dialogue that progressively pushes you toward signing up
-
sign-up hotspot exists, but I block the meaningful push toward it until you’ve engaged with the bartender, so it doesn’t feel like “click the glowing quest marker”
TallsSignUp (commitment beat)
You can leave without signing. The game doesn’t physically trap you. It just remembers. Signing sets signed_up_for_jam = true.
The “pianist” is actually the name of the saxophone player who played on the track.
Curtain → Stage → Bathroom → back
Once you move toward the stage, the game pushes you into the bathroom mirror tutorial, then returns you to the stage with your name called. That sequence mirrors what it feels like: you commit, you panic, you remember what you know, you get called anyway.
2) Anxiety became a real global state, not just vibes
I added a real variable:
-
current_anxiety: float(0–100, used mechanically)
And a bunch of global flags to track state across rooms so the night can evolve instead of resetting every time you walk through a door:
-
Tall’s flow:
has_entered_talls,has_left_talls_once,signed_up_for_jam,has_seen_signup_sheet,coming_from_signup -
Solo flow:
completed_mirror_tutorial,solo_ready,stage_visit_count -
Cross-reference stuff from the apartment:
has_read_cat_definition,has_read_shed_definition,has_read_koln_concert,has_looked_at_fridge, etc.
Those cross-references matter because Desmond is not supposed to feel like a protagonist who forgets his own life the second the camera changes.
3) Bathroom mirror “tutorial” that stays in-world
I originally thought I’d do some “tips and tricks” tutorial scene, then realized that sounded like a cursed WatchMojo video or something. So I made it a memory beat: click the mirror, Desmond “reflects” on his Berntee days and Dr. Hollbrook’s lessons.
The mirror teaches three pillars (and I reinforce them with simple shape visuals, because I love bilateral thinking):
-
Simple (square): safe lines, small gains, low risk
-
Breathe (circle): long tones, lowers anxiety, no score
-
Risk (triangle): big points if you’re calm, disaster if you’re anxious
This is also where the player learns the actual design thesis of the solo system, and it’s reinforced right before you take the solo:
-
anxiety affects your odds of pulling off risky stuff
-
breathing lowers anxiety but doesn’t increase score
-
“simple” gives small points and stabilizes you
-
“risk” is the only way to really pop off, but it’s a gamble
So you’re basically playing Desmond’s nervous system.
The Solo System (where the mechanic carries the meaning)
It was really important to me to have a real working jazz solo. I looked at a bunch of different games to see how they did it. There was a really great GDC talk about improvising in Genesis Noir, a beautiful game I took inspiration from, and I looked a ton of different rhythm games and more to get inspiration, but ended up developing my own lick-based system: the player selects performance behaviors, and the game reflects what that choice means emotionally and mechanically.
Content pipeline: I built the lick pool using 72 saxophone phrases from my good friend Dillon Ring—6 two-bar phrases for each 12-bar blues chorus—so the solo can feel varied while still being structured.
My first attempt at tempo-sync for samples
Thought it would be better like this, but moved away from that idea
Once the solo starts, the player is making repeated choices that map onto real performance behaviors.
Scoring
-
SAFE = +10
-
BREATHE = +0
-
RISKY_GOOD = +50
-
RISKY_BAD = -25 (also breaks combo)
-
Combo bonus = +5 points × streak count
Anxiety changes
-
SAFE: -1 anxiety (tiny confidence)
-
BREATHE: -15 anxiety (actual nervous system reset)
-
RISKY attempt: +2 anxiety (anticipation, applied before roll)
-
RISKY_GOOD: -3 anxiety (confidence)
-
RISKY_BAD: +8 anxiety (plus it breaks streak)
That structure is intentional. You can chase points, regulate, or play it safe. The game isn’t judging you. It’s making you live with the consequences.
Risk success is anxiety-weighted (and you can’t spam it forever)
Risk isn’t a flat coin flip. It’s weighted by anxiety, and it ramps pressure if you keep doing risky attempts back-to-back:
The key thing here is _risky_chain. Consecutive risk attempts get harder. That’s the “I’m forcing it” spiral. When you’re anxious and you keep trying to brute-force brilliance, the game starts turning the screws.
Overwhelmed system (failure, but as story)
I added clear thresholds so the player can feel escalation:
| Anxiety | Effect |
|---|---|
| 30+ | screen starts reddening |
| 35+ | warning text |
| 40+ | OVERWHELMED: force next phrase to BREATHE, reset risky_chain |
| 50+ | GAME OVER: fade music, go home |
It’s harsh, but it fits. Sometimes you don’t “win the night.” Sometimes you go home and start over. That’s part of what this story is about.
Endgame score tiers (feedback without being a cop)
At the end, score maps to a vibe rating:
-
800+ Killer Night
-
500–799 Good Set
-
250–499 Mixed
-
150–249 Rough
-
<150 Trainwreck
I wasn’t interested in “you are good / you are bad.” I’m interested in “how did this night go,” and “did you take care of yourself enough to keep playing.”
UI / feedback (so the system reads in real time)
The solo UI is built to keep you in flow while still giving quick emotional feedback:
-
score top-right (scales on change)
-
crowd remarks on the right, color-coded
-
calm message when you breathe
-
anxiety warning text when you’re nearing overwhelmed
-
combo achievements in gold
Crowd remark colors:
-
green = good risky
-
red = bad risky
-
grey = safe
-
blue = breathe
-
gold = combo
Also: I added cross-reference crowd remarks so earlier embedded narrative pays off in the solo moment. If you read certain things in the apartment, you can hear them reflected back at you later, which is funny and slightly horrifying (ideal).
Examples:
-
has read “cat” definition → “Now THAT’s a cat!”
-
has read Köln Concert → “Part IIc vibes!”
-
has looked at fridge → “Man’s been living off expired hope”
What’s next (if I keep developing)
-
dedicated collapse scene for the 50+ game over (right now it’s functional, but it deserves a real narrative beat)
-
shader/modulate pass for the screen reddening
-
post-solo dialogue scenes that reflect your score tier
-
register solo ending music cue in the audio system
-
more cross-reference content as the world expands
- more gigs! more minigames! more people! more instruments! yay yay yay!
Reflection
P2 was about getting the player to the door. P4 is about what happens when you walk in and your body starts arguing with you.
I built this game because performance anxiety is not an abstract character flaw. It’s a set of physical sensations and decision loops that make you do weird math in your head while you’re trying to make art. If the player finishes v4 feeling slightly more tender toward Desmond (or toward themselves), and also slightly more stressed in the exact way a jam session stresses you out, then the machine is doing what I wanted.
Anyway, welcome to Tall’s. Try not to die.

