The mini-game: taping a show
How a bouncing needle becomes a score, step by step -- and how 'good enough' becomes a great tape.
At each concert you can record a bootleg tape by playing a little skill game: a needle sweeps back and forth, and you tap to "lock" it, trying to land in a green sweet spot. Do it well and you get a great recording. This chapter follows how a few taps become a score — a nice, self-contained example of turning player actions into numbers.
Setup
The game builds a series of rounds ("stages"), each with a target zone. Harder recording spots (like the soundboard) have smaller zones and a faster needle, but pay off with better tapes. You need a blank tape to record on.
Grading each tap
When you lock the needle, the game measures how close you landed and grades it:
1811 function lockMini() { 1812 var m = S.mini; if (!m) return; 1813 if (m.raf) cancelAnimationFrame(m.raf); 1814 var st = m.stages[m.idx]; 1815 var dist = Math.abs(m.pos - st.center); 1816 var inZone = dist <= st.half; 1817 var ratio = dist / st.half; // 0 = dead-center, 1 = edge of the sweet spot 1818 // Grade each lock: nailing the center is a PERFECT, and stringing perfects/greats 1819 // together builds a combo that pays off in the final tape quality. 1820 var rating = !inZone ? "miss" : (ratio <= 0.22 ? "perfect" : (ratio <= 0.6 ? "great" : "good")); 1821 var acc = inZone ? Math.round(100 - ratio * 25) 1822 : Math.max(0, Math.round(55 - (dist - st.half) * 1.3)); 1823 if (rating === "perfect" || rating === "great") m.combo += 1; 1824 else if (rating === "miss") m.combo = 0;
Let's read the idea, not every symbol:
- It measures how far the needle is from the exact center.
- Dead-center is a perfect; close is a great; anywhere in the green is good; outside is a miss.
- Stringing perfects and greats together builds a combo — a bonus for a steady hand.
- It also records a precise "accuracy" number for each tap, which is what really decides the tape's quality.
Concept: turning actions into numbers. Games constantly convert something fuzzy ("you tapped roughly here") into something exact ("87% accurate"). Here, a distance becomes a grade and an accuracy score. Almost all game "feel" is just carefully chosen formulas like this.
From taps to a finished tape
At the end, the game averages your accuracy and turns it into a quality score — with bonuses:
1838 function finishMini() { 1839 var m = S.mini; 1840 var accs = m.results.map(function (r) { return r.acc; }); 1841 var avg = accs.reduce(function (a, b) { return a + b; }, 0) / accs.length; 1842 var q; 1843 if (m.spot === "crowd") q = avg * 0.55; 1844 else if (m.spot === "section") q = avg * 0.82 + S.taper / 3 + S.cred / 8; 1845 else q = avg * 0.95 + 5 + S.taper / 2 + S.cred / 6; 1846 // Gear and perks: better deck, golden ears, the disputed sweet spot, a blessing. 1847 q += (S.buff.tapeQuality || 0) + (S.flags.goldenEars ? 8 : 0) + (S.flags.goodSpot ? 6 : 0) + (crewHas(S, "rita") ? 6 : 0); 1848 if (S.flags.goodSpot) S.flags.goodSpot = false; 1849 // Combo payoff: each link past the first adds quality and gets called out. 1850 var comboBonus = m.bestCombo >= 2 ? (m.bestCombo - 1) * 5 : 0;
So a great tape comes from several things stacking up: playing well (accuracy), picking a harder spot, having taping skill and reputation, owning good recording gear, having the right crew member aboard, and building a long combo. The very best tapes — "legendary" ones — also require being at a legendary show and recording from a good spot.
And every show, whether you record it or just watch, lifts everyone's spirits. Recording (or attending) the final show wins the game.
- The mini-game converts taps into an exact accuracy score, then a grade — that's how game "feel" is built.
- Final tape quality stacks many factors: accuracy, the spot's difficulty, skill, gear, crew, and combos.
- Harder choices (the soundboard, a legendary show) carry bigger rewards — a classic risk/reward dial.