Design Doc · v1.0 · April 2026
Signal // noise
A 3-minute browser shooter where enemies are sound waves you have to tune into. This doc captures the loop, the tuning targets I chose, the metrics I'd instrument if this shipped, and the v2 roadmap. Written in the format I'd use for any feature spec at work.
TL;DR
Twin-stick shooter built around one twist: enemies are mostly invisible and have a frequency band. Players cycle a tuner (cyan / violet / amber) and matched-band shots do triple damage.
The mechanic forces a constant micro-decision, "is the closest threat worth tuning to, or shoot down the cluster I'm already aimed at?", that creates a richer loop than weapon-pickup variety would, with a fraction of the content cost.
Design Pillars
- 01
Readability over reaction speed.
The challenge is reading the field, not pixel-aiming. Pulse cycles train anticipation; tuning trades reflex for prioritization.
- 02
One mechanic, deep tuning.
No weapon pickups, no skill tree (in v1). All variety comes from how you sequence kills. Cheaper to balance, easier to demo, harder to make boring.
- 03
Failure should be readable.
Every death should be re-runnable in your head: "mistuned for the scrambler, ate the stalker." If players blame the game, we lose the retry.
Core Loop
- → Move (avoid contact damage)
- → Watch pulse cycles to locate threats
- → Tune to dominant nearby band
- → Fire matched-band shots, build chain multiplier
- → Re-tune as new bands enter range
- → Survive 22-30s waves; difficulty escalates speed + density
Tuning Targets
Chosen by playtesting against my own intuition for "feels fair, feels fast." Real shipping product would A/B test these.
Enemy Roster
Drifter
FillerWeaves toward player. Slow pulse (0.45 Hz). Easy to read.
70 pts
Stalker
PressureDirect chase. Faster pulse. Forces the player to keep moving.
100 pts
Scrambler
HUD threatOrbits at distance. Pulse scrambles your HUD with red interference. Wave 3+ only.
250 pts
Metrics I'd Instrument
If this were a real product, these are the dials I'd watch on day one. Targets are starting hypotheses, not promises.
% of first-session players who start a second run within 60s of game over
% of runs that survive past wave 3, early-game tuning balance check
Median band-changes per second of play. Too low = enemies too clustered. Too high = tuner too punishing
Off-band shots ÷ total shots. The desired range for 'feels intentional, not perfect'
Confirms the chain mechanic is actually pulled into the moment-to-moment, not just an idle stat
Roadmap
Shipped
Three bands, three enemy types, wave progression, multiplier system, audio feedback, leaderboard local-storage.
Game feel polish
Hit-stop tuning, screen shake easing curves, controller support, mobile twin-thumb layout.
Run variety
Pickups (auto-tune for 3s, frequency lock, double-fire). Wave modifiers (silence rounds, frequency lock-out events).
Meta progression
Persistent unlocks: alternate weapons (chord-fire that hits two bands), starter perks. Daily seed leaderboard.
Risks & Mitigations
- First-session legibility. The tuning mechanic is non-obvious. Mitigation: forced tutorial wave with one color of enemy and an inline prompt to switch bands.
- Audio dependence. Players without sound lose context. Mitigation: visual pulse already carries primary information; audio is reinforcement, not signal.
- Tuner fatigue. Cycling bands every 2s could feel chore-like. Mitigation: monitor swap-frequency metric; if median exceeds ~2/sec, reduce band variety per wave.
Why I Built This
Saying "I love games" is the cheapest claim in the industry. Building a small game with a real opinion about why it's built that way, the tuning calls, the failure modes, the things I'd measure if it shipped, is a more honest signal, and a more interesting thing to talk about.
Shipped in roughly a day with Next.js + HTML5 Canvas + Web Audio. No engine, no bought assets, no AI-generated art. The constraint was the point.