← field notes

The Bot Could Beat It. We Couldn't.

Quick background: Resonance is our music-as-interaction puzzle game. You walk through an environment with a guitar, and the way forward is blocked. To open it, you find whatever nearby is keeping a beat (a builder’s hammer, a dripping pipe, a swinging lantern, a flock of birds) and play along with it. Find the right note, play it in time, and the world responds. Nothing ever fails you, and every sound is synthesized live.

This week we wanted to know if the MVP is actually playable.

The player with a guitar standing in front of a closed portcullis while a builder hammers beside it
Puzzle 1, the Builder's Gate. The hammer is the beat.

Teaching a bot to play

We wrote an autoplay bot that presses keys through a virtual keyboard, the same way a player would. At each gate it plays A through G on the beat, watches which note makes the target glow brightest, and settles on that one. It found every note by color alone and solved all four puzzles.

The same scene with the portcullis raised and tinted red
Gate open. The bot found A by ear.

Then we played it ourselves, and couldn’t finish the last puzzle.

Why it was so hard

The Stuck Shutter wants a strum: three quick presses of the same note, timed to the birds. Digging in, we found three problems stacked on top of each other:

  • Every press was graded on its own. One stray press between chirps could spoil the whole bar.
  • Continuous strumming broke the timing. After a beat, a random press became the new timing anchor, and if it was off-beat, everything after it was too.
  • Nothing told you what was wrong. Tapping the right note on the chirps got a full “correct” glow, but never counted. The game praised you and let you fail silently, forever.

“Nothing fails you” is a core pillar of Resonance. It turns out “nothing tells you why” feels just as bad.

What changed

Fairer grading. A strum is now judged as one gesture, and one clean strum per bar is enough. Holds get a little leeway, and strum presses can be further apart.

A rhythm rail. The pulse scrolls toward a “now” line and your presses land beside it, so you can see whether you’re early or late. Dots next to it show your progress toward each layer.

Hints that wait. Get stuck the same way for a few bars and one line appears, like “Right note, right time. Now strum G: 3 quick presses on a chirp.”

The Stuck Shutter with the rhythm rail at the top, a hint reading 'Now strum G', and the G keycap lit violet
The rail, a hint, and the keys, all speaking E.

Color that connects. The glow on each beat source is now the color of the note it wants, and it matches the rail and the on-screen keys.

Three birds on a bracket above the closed roller shutter, surrounded by a violet glow
The birds glow violet, the color of G.

What we learned

The bot was a great test harness and a terrible playtester. It had perfect timing and infinite patience, and it never got confused by praise that led nowhere. The design wasn’t wrong. It just wasn’t talking to the player.

Next up: figuring out how many bars each puzzle should really ask for, and whether the assist layer stays on by default.