The serve gets stakes: tight apex window, depth rides quality, the strike flick aims
Three mechanical causes of 'no serve agency', measured then fixed: - the 0.12 m perfect snap was ~0.3 s of hang time (now TUNE.apexSnap 0.05, and the gold band reads the same knob); - the fixed mid-box target depth capped every good serve at ~36 m/s in the loft loop — player serve depth now rides quality, flush aims 0.3 m inside the service line (ladder: 49 / 52 hard / 36 mistimed / 30 bad); - the strike flick was splatter-only — in tennis and the duel it now sways placement (horizontal) and buys pace (vertical, serveHard + serveHardSpin, the extra dive IS the clearance), paid for in scatter against the real fault machinery. Tap stays the safe second serve. Phone verdict pending — see the PROJECT.md session log. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
c084d53497
commit
de77ccfea5
6 files changed
+112
-20
No files matched your search
@@ -28,6 +28,19 @@ export const TUNE = {
|
||||
// which is the "harder pull, faster ball" relationship, and it is in serveQualitySpeed's share
|
||||
// of the pair. (baseShotSpeed is the rally volley — shared with tennis and the CPU.)
|
||||
serveSpeed: 22.8, serveQualitySpeed: 26.4,
|
||||
// THE TOSS STRIKE HAS REAL STAKES NOW (Oliver: "the golden mark is very easy to hit and hitting
|
||||
// below it does not necessarily make a worse serve... no option to serve harder").
|
||||
apexSnap: 0.05, // m of |ball - apex| that still counts flush (was a hardcoded 0.12 — at toss
|
||||
// gravity that was ~0.3 s of PERFECT, which is why the mark felt free)
|
||||
apexFall: 0.55, // m of miss at which quality hits the floor (was 0.9) — mistimes cost pace
|
||||
// ...and the strike gesture AIMS it: a flick as you hit sways the target and buys pace.
|
||||
serveAimX: 1.8, // m of sway a full flick puts on the target — centre box to the T or the line
|
||||
serveHard: 9, // m/s of extra pace at full flick strength — the harder first serve
|
||||
serveHardSpin: 0.45, // extra dip the hard serve carries. NOT free style: without it the loft
|
||||
// loop cut the +9 m/s BELOW a plain flush serve (measured 47.2 vs 49.3) —
|
||||
// the dive is what buys the pace its net clearance
|
||||
serveHardErr: 1.6,// how much a hard serve multiplies the timing scatter: pace is paid for in
|
||||
// faults, which is what makes tap = safe second serve a real decision
|
||||
serveSpin: 1.3, // extra gravity a full-power serve carries (was a fixed 0.35). Without it the
|
||||
// net-clearance loop ate the whole smash: a flat fast ball can't get over the
|
||||
// tape AND come down on a target, so it got throttled back to walking pace.
|
||||
|
||||
Reference in new issue
Block a user