Tinkerer's Notebook

The Feature I Keep Not Building


Listen Later

The Stack is almost done.

I know what almost done feels like because I’ve been almost done for a while now. The card mechanics work. The reward loop is solid. The difficulty system runs from calm cyan through ten tiers of escalating threat to deep warning red. The app icon is mostly decided (man that was an experiment in and of itself). TestFlight is close. I can feel it.

There’s one thing left that I keep finding reasons not to do.

Sound.

The Experiment

Every serious game has audio. Not just sound effects, but a whole emotional layer. It’s the thing that tells you something is wrong before your brain has processed why. The thud of a card hitting the table. The ambient hum that shifts when the boss encounter loads. The small sonic detail that makes a mechanic feel satisfying instead of clinical.

I know this. I’ve played enough Slay the Spire and Hades to feel it without being able to articulate it. These games use sound to telegraph intent, build tension, and reward decisions in ways the visuals alone can’t carry.

And yet every night I come up with something else to do instead of designing the sound for The Stack.

After all - there’s always something else to work on. Something easier.

What Actually Happened

Here’s the thing I did instead of doing the thing.

I built the sound architecture. SoundManager.swift — a clean implementation following the same pattern as my haptic feedback manager. AVAudioSession set to ambient category so the game doesn’t interrupt whatever the player is already listening to. Two instance pools per sound effect so rapid card plays don’t cut each other off. Music crossfading logic between the three phases of a run so tension builds without a jarring track switch.

The plumbing is done. The infrastructure exists. You could drop audio files in tomorrow and the game would play them correctly. In fact I did test this with a few placeholder sounds and it works.

Building the architecture felt like progress because it was technical and measurable. I could write it, test the behavior, check it off a list. Done. Except the part that actually matters. What does this game sound like?

The Honest Diagnosis

Procrastination on a specific feature usually means one of three things.

* The task is unclear.

* The task is genuinely hard.

* Or the task requires a skill that feels outside your identity.

For me it’s the third one.

I’m comfortable with systems. I can work out reward loops and state machines and why a difficulty curve needs to cost something meaningful. That’s engineering with a creative layer and I know how to work in that space.

Sound design starts from feeling not function. You’re not solving a problem you’re evoking an emotion. And when I try to answer the question of what The Stack should sound like I genuinely don’t know where to start. I have a lot of ideas, but no foundation. Should it be cold and synthetic? Glitchy and percussive? Something that builds dread without announcing itself?

What I Actually Learned

Naming the real blocker is more useful than pushing through it blindly.

I spent weeks telling myself sound was a polish problem I’d get to later. That was true but it was also convenient. Later kept getting later because later didn’t require me to sit with the discomfort of working in a mode I don’t have language for yet.

The AI tools that have compressed every other part of this build are less useful here. I can prompt for code architecture all day. Prompting for emotional resonance in a cyberpunk card game is a different kind of conversation and I haven’t figured out how to have it yet.

That’s where this experiment currently lives. Unresolved. In progress.

What This Proved

Every project has a feature that sits at the edge of your competence and comfort. The temptation is to keep working around it, polishing the things you already understand, until the deadline forces your hand.

The more honest move is to name it early. Not because naming it fixes it but because at least then you’re procrastinating consciously instead of accidentally.

The sound design is still not done. Not because I won’t do it or can’t do it, but because this task is bigger than a few tired hours before bed. This is the kind of task that needs a higher level of energy and while those days are rarer now, they do happen, and I’m excited to work through this problem when my next window arrives.



Get full access to Tinkerer's Notebook at johndav.substack.com/subscribe
...more
View all episodesView all episodes
Download on the App Store

Tinkerer's NotebookBy John Davenport