All case studies
Piano Breeze — the millisecond problem nobody can describe
A rhythm game has to agree with the player about when a note was hit, on hardware that adds a different amount of audio latency to every device.
- Client
- In-house title
- Platform
- Android / Google Play
- Engine
- Unity
- Genre
- Music
UnityC#audio latency calibrationAdMob rewarded video
The challenge
Rhythm games have a problem that almost no other genre faces: the audio and the input have to agree, on hardware the developer does not control. A tile reaches the line, the player taps, and a note plays. If any of those three things is out of sync by even a few dozen milliseconds, the player does not perceive it as lag — they perceive it as the game being wrong about whether they hit the note. And they are not able to explain what felt off, only that it did.The hard part is that the offset is different on every device. Bluetooth headphones add latency, some phones buffer audio more aggressively than others, and the gap between a touch event firing and the sound reaching the ear varies by hundreds of milliseconds across the Android fleet. A rhythm game that assumes zero latency is accurate on the developer's phone and subtly broken everywhere else.
The second problem is what the tap actually produces. The cheap approach is to play a backing track and let taps trigger a generic click, which is why so many tile games feel hollow — the player is not playing the music, they are tapping along while a recording plays underneath. The moment a player notices that the song continues when they stop tapping, the illusion collapses and the game becomes a reaction test with a soundtrack.
Third, a single tile type is not a game for long. Tap, tap, tap for forty songs is a reflex drill. Variety has to come from the input itself, but every new input type is also a new way to confuse the player mid-song, when there is no time to read instructions.
Fourth, scoring in a rhythm game has to reward accuracy without punishing a single mistake so hard that the run is over. A player who loses a fifty-note combo to one slightly early tap and watches their score collapse learns that the safest play is to stop trying for precision — which is the opposite of what the game wants.
And fifth, there is the content question. Forty songs is a lot of licensed music, and licensing is where most small-studio rhythm games either die or quietly ship four tracks.
Our approach
Latency was made a setting rather than an assumption. The game ships with an adjustable tap-timing offset, so a player on Bluetooth headphones or an older phone can shift the judgement window until the hit feels like it lands on the beat. This single control is what makes the game playable across the Android fleet instead of only on hardware similar to the developer's. It is also the kind of feature players never praise, because when it is right they do not notice it — they only notice its absence.Every tap plays a real grand piano note rather than a click over a backing track. That is the decision the whole game rests on: the player's finger is producing the melody, so stopping means the music stops. It changes the activity from following along to performing, and it is why the game holds attention past the first few songs.
Four tile types give the input depth without adding rules to read. Tap is the baseline. Hold requires sustained pressure, which maps naturally onto a held piano note. Swipe uses the arrow's direction. Multi-tap gold tiles need several quick hits. Each is visually distinct and each is learned the first time it appears, because the shape of the tile tells the player what to do with it — no tutorial interrupts a song.
Scoring was tiered rather than binary. Perfect+, Perfect, Great and Good mean a slightly-off tap still scores, so a near miss is a smaller reward rather than a broken run. Combos build on top of that, and Fever mode triggers at 50 consecutive Perfect notes for double points, rising to triple at 100. The structure rewards sustained accuracy — which is the skill the game is actually teaching — without making one early tap catastrophic. Save Me and Revive Hearts exist for the moments when a run worth keeping ends to a single slip.
The song list was built entirely from public domain classical and folk music, which is what makes forty tracks possible for a small studio. Beethoven, Mozart, Bach, Pachelbel, Satie, Grieg, Vivaldi and Joplin are all out of copyright, as are the folk and festive standards. This is not a compromise on quality — these are the melodies most people can already hum, which means a new player recognises a song before they have played a note of it. Flight of the Bumblebee sits at the top as the speed challenge everyone wants to attempt.
The live backgrounds were chosen to be calm rather than busy. Sunny Meadow, Rain Garden, Forest Glade and Cherry Blossom each move continuously — pollen drifting, rain rippling a pond, leaves falling, petals carried on a breeze — but all of the motion is slow, low-contrast and well behind the tiles. A rhythm game's background must never compete with the falling tiles for attention, so these are designed to be felt at the edge of vision rather than looked at.
Progression runs on two timescales. A 50-day reward calendar gives a reason to open the app tomorrow, with the Moonlight Sonata unlock on day 30 as a long-term goal. A 30-week journey rewards playing on five days each week. Forty achievements cover the different ways a player might be good — Combo King for streaks, Accuracy Virtuoso for precision, Endless Marathoner for stamina, Music Collector for breadth.
The result
A rhythm game that stays in time on hardware we do not control. The adjustable tap-timing offset lets a player on Bluetooth headphones or an older phone calibrate the judgement window themselves, which is the difference between a game that works on one developer's phone and one that works on the Android fleet.Every tap produces a real grand piano note, so the player is performing the melody rather than tapping along to a recording. Stop playing and the music stops — which is what makes it a piano game instead of a reaction test with a soundtrack.
Four tile types — tap, hold, swipe and multi-tap — each legible from its own shape, so input variety never costs a tutorial interruption mid-song.
Tiered judgement (Perfect+, Perfect, Great, Good) means a near miss still scores, while Fever at 50 consecutive Perfects and triple points at 100 reward sustained accuracy rather than punishing one early tap.
Forty songs, all public domain classical and folk — the melodies people already recognise, which is also what makes a list this long possible for a small studio.
Four live nature backgrounds built to be felt rather than looked at, with all motion slow and low-contrast so nothing competes with the falling tiles.
Live on Google Play, free.
More case studies
WS
Puzzle
Wander Star — a chain you can predict before you fire it
One tap sets off a chain that turns at every arrow and splits at some. The whole game is the few seconds before the tap, which only works if the…
Read the case study →
CG
Puzzle
Cosmic Gem Crunch — 500 levels without a difficulty lottery
Match-3 is trivial to prototype and brutal to scale. The work was in 500 levels that each earn their place, and gems that are readable without…
Read the case study →
BP
Web development
Bhaumik Pathak — why the same client got two different websites
One client, two websites, and a deliberate decision not to reuse the template. A company earns trust through scale; a person earns it the opposite…
Read the case study →
