Batting Feedback
In short
Before the swing the game shows where to hit (the aim helper, the pitch chip, the optional timing ring) and what you hold (the PULL / NORMAL / OPPO, DRIVE / NORMAL / LIFT box). At contact it shouts a grade (WEAK! GOOD! GREAT! PERFECT! GREEN!), freezes for good hits and plays a crack sized by exit velocity. In flight a counter, tracer and TV camera show how far. After, a play card gives the numbers and TIMING: EARLY / LATE / ON TIME. The weak spot: the game rarely says why a swing was bad (tip or handle, too high or low, aimed wrong). See Gaps and ideas.
How it works
flowchart LR B[Before: aim helper, pitch chip, special-ball cue, hit aim box, timing ring] --> S[Swing: whoosh] S --> M{Contact?} M -- no --> W[Ooh, glove pop, SWING AND A MISS card: SWUNG EARLY / LATE / ON TIME] M -- yes --> G[Grade popup, crack, ping, hit stop, GREEN flash + shake] G --> F[Flight: TV camera, tracer, live FT counter, shouts, chips] F --> R[Landing: HOME RUN! score stack / FOUL / OUT stamp, crowd] R --> C[Play card until the next release]
Before the swing
- Aim helper (
AimBat): two warm-gold curves with a dark ink edge, at the bat’s tip and where the barrel tapers. The sweet spot is the gap between them, on the mouse aim. Its height follows your contact reach (Contact and Timing Window stats). A soft glow breathes every 2.4 s. The tip points right, the handle left. - Strike zone: a white outline at 50% opacity.
- Pitch chip bottom-left: “CURVEBALL 78 MPH”, or with a special ball “ANTI-GRAVITY CURVEBALL 78 MPH” in that ball’s chip colour. A special ball also glows in the pitcher’s hand and plays a cue at the windup. See Special Balls.
- Hit aim box (above the key hints, not shown to spectators): row “A / D” with PULL / NORMAL / OPPO, row “S / W” with DRIVE / NORMAL / LIFT. The held one turns orange; NORMAL is blue when nothing is held.
- Key hints: MOUSE AIM, SPACE / CLICK SWING, A/D W/S AIM HIT, ESC PAUSE.
- Timing ring (Settings: TIMING RING, off by default): a ring around where the pitch will cross, shrinking to the ball. White = too early, yellow = you would make contact, green with a second halo ring and a pop = a press now would be GREEN. After you swing it freezes in that colour for 0.35 s. See Timing ring agreement (TimingWindowScanner).
- Sound: the pitch whir (higher for faster pitches), then a glove pop when the ball reaches the plate unhit.
At contact
- Grade popup at the top centre for 1.3 s: “WEAK!” grey, “GOOD!” sky blue, “GREAT!” green, “PERFECT!” yellow, or “GREEN!” / “GREEN! x2” in bright green, bigger (48 vs 38) and slammed in harder. Contact only; nothing for a whiff.
- Hit stop: the game slows to 0.05 speed for 0.16 s on a GREEN, 0.09 s on GREAT or PERFECT.
- Crack: green crack on a GREEN; else by exit velocity: soft below 78 mph, medium below 96, hard from 96. A ping follows 0.03 s later when quality is at least 0.55 (“you hit it well”). A GREEN adds a small cheer, louder and higher with the streak (capped at 5).
- GREEN only: a green-white screen wash (0.25 s), a camera shake (0.22 s), a green ball trail, and “GREEN STREAK xn” under the score from 2 in a row.
- Contact close-up (GREEN, or PERFECT timed 0.6 or better, when it is not a big moment): a slow-motion close-up before the flight, letterboxed, “INSTANT REPLAY” with a blinking red dot, tag “GREEN!” or “PERFECT!”, “SPACE / CLICK TO SKIP”.
- Whiff: an “ooh” from the crowd. Every swing: a whoosh.
In flight and after
The flight is the Hit Show: the TV flight camera, the glowing tracer (white, sky, yellow, orange, red, purple as it goes further), the live FT counter with ticks, shouts (DEEP!, WAY BACK!…), GONE!, chips, then the HOME RUN! score stack or a FOUL / OUT / OFF THE WALL stamp.
Crowd at the landing: home run = bell + big cheer (huge from 450 ft) + organ charge; foul = “ooh”; out in play = groan. Count: a wood block on every strike (soft) and out (loud); a strikeout adds a groan.
Play card (right, under the count; stays until the next pitch is released):
- Headline in colour: HOME RUN! (gold); OFF THE WALL - OUT, GROUND OUT, FLY BALL - OUT, STRUCK OUT!, STRUCK OUT LOOKING (red); FOUL BALL, SWING AND A MISS, STRIKE LOOKING, BALL, BALL FOUR - COUNT RESETS (white).
- Pitch line: name, MPH, IN THE ZONE or OUT OF THE ZONE.
- Contact: four pills (grade in its colour, “n MPH”, “LAUNCH n°”, “n FT” orange on a home run) and “TIMING: EARLY / LATE / ON TIME” plus “AIMED: PULL + LIFT” if a direction was held.
- Whiff: “SWUNG EARLY”, “SWUNG LATE” or “SWUNG ON TIME”. Take: “TAKEN”.
Feedback matrix
“Change” is what the feedback points the player to. No signal means the game does not say. Words used: quality is the hit’s 0-to-1 score from where on the bat it landed; spray is the hit’s direction (0 = straight to centre field).
| Outcome | Sees | Hears | Text | What it tells you to change |
|---|---|---|---|---|
| Whiff, early | Ring frozen white (if on); ball gone | Whoosh, glove pop, ooh | SWING AND A MISS; SWUNG EARLY | Wait longer |
| Whiff, late | Ring white (if on) | Whoosh, glove pop, ooh | SWING AND A MISS; SWUNG LATE | Swing sooner |
| Whiff, on time | Ring maybe yellow/green | Whoosh, glove pop, ooh | SWING AND A MISS; SWUNG ON TIME | Your timing was fine (within 25 ms) but the aim helper wasn’t on the ball. No signal which way |
| Foul (timing) | Ball off a line, FOUL stamp, grey FT | Crack, ooh, soft wood block | Grade popup; FOUL BALL; TIMING: EARLY / LATE | Swing later (EARLY) or sooner (LATE) |
| Foul (hooked) | Ball curves over the line | as above | FOUL BALL; TIMING may say ON TIME | No signal that the curve or A/D did it |
| WEAK (sour) | Grey popup, low or very high ball, OUT stamp (or a FOUL if the timing was also way off) | Crack (often soft), no ping, groan | WEAK!; GROUND OUT or FLY BALL - OUT (or FOUL BALL) | Get the ball to the middle of the aim helper. No signal tip or handle |
| GOOD | Sky-blue popup | Crack, ping only from quality 0.55 | GOOD! | Closer to the sweet spot |
| GREAT | Green popup, short hit stop | Crack, ping | GREAT! | Slightly closer to the sweet spot |
| PERFECT (not GREEN) | Yellow popup, hit stop; close-up if timing >= 0.6 | Crack, ping | PERFECT!; TIMING may say ON TIME | Swing a touch more exactly on time. A GREEN needs the hit to go almost dead centre (within 9 degrees), but the card already says ON TIME up to 18.75 degrees, so it can’t tell you which way |
| GREEN | Big green popup, flash, shake, longer hit stop, green trail, close-up, streak pill | Green crack, ping, cheer | GREEN! / GREEN! xn; GREEN STREAK xn. The play card’s grade pill still says PERFECT | Keep doing it |
| Home run | Hit show: GONE!, HOME RUN!, score stack, total flies to the score | Counter ticks, chimes, riser, bell, cheer, coins | HOME RUN!; “n FT”; “+points” | Nothing; distance and targets raise points |
| Big moment | Slow motion at the wall, then the replay with tracer and tags | as home run | INSTANT REPLAY; GREEN!, PERFECT!, SCOREBOARD!, BULLSEYE!, MONSTER SHOT!, WHAT A SHOT! | Nothing |
| Take, ball | Ball passes | Glove pop | BALL / BALL FOUR - COUNT RESETS; OUT OF THE ZONE; TAKEN | Good take |
| Take, strike | Ball passes, strike light | Glove pop, wood block | STRIKE LOOKING; IN THE ZONE; TAKEN | Swing at pitches in the zone |
| Strikeout | Out ball turns red | Wood block + groan | STRUCK OUT! / STRUCK OUT LOOKING | as the last strike |
| Out in play | OUT or OFF THE WALL stamp, grey FT sinking | Groan, wood block | GROUND OUT / FLY BALL - OUT / OFF THE WALL - OUT; LAUNCH n° | More distance. No signal what was wrong (zone, launch or power) |
Numbers
| What | Value | Where to tune |
|---|---|---|
| Grade popup | 1.3 s; pop 1.8x (GREEN 2.4x) over 0.15 s | HudView.GradeSeconds, DrawGrade |
| Big message (Now facing, INNING n CLEARED!…) | 1.8 s; hidden while a home run’s counter is up | HudView.MessageSeconds |
| Green flash | 0.25 s | HudView.GreenFlashSeconds |
| Green shake | 0.22 s, 0.035 m, 38 Hz | GreenFeedback |
| Hit stop | 0.09 s (quality >= 0.7), 0.16 s (GREEN), time scale 0.05 | AtBatController, SwingResolver.HitStopQuality |
| Crack | soft < 78 mph, medium < 96, hard >= 96, green crack on GREEN | SoundBank.CrackFor |
| Ping | quality >= 0.55, 0.03 s after the crack | GameAudio.SolidContactQuality |
| Huge cheer | home run of 450 ft or more | GameAudio.OnHitLanded |
| Timing label | Early / Late beyond 0.025 s (contact: spray beyond 18.75 degrees) | SwingResult.TimingLabel |
| Ring freeze after a swing | 0.35 s | TimingIndicator.FlashSeconds |
| Aim helper size | barrel half-height = 0.35 x reach, 0.04 to 0.1 m | AimBat |
| Held-aim pill lights | beyond 0.3 | HudView.AimRow |
In the code
| File | What it does |
|---|---|
Assets/_Project/Scripts/UI/HudView.cs | Grade popup, green flash, streak pill, play card, hit aim box, key hints, replay letterbox |
Assets/_Project/Scripts/Batting/AimBat.cs | The aim helper |
Assets/_Project/Scripts/UI/TimingIndicator.cs | The timing ring |
Assets/_Project/Scripts/UI/GreenFeedback.cs | GREEN camera shake |
Assets/_Project/Scripts/UI/HitCounterView.cs | Counter, stamps, shouts, chips (see Hit Show) |
Assets/_Project/Scripts/Audio/GameAudio.cs, SoundBank.cs | Every sound above, from GameEvents |
Assets/_Project/Scripts/Batting/AtBatController.cs | Headlines (ReportPlay), hit stop, trail colour |
Gotchas
- Settings > REPLAYS only stops the big-moment replay after the play. The contact close-up before the flight (GREEN, or a well-timed PERFECT) still plays.
- During a big replay’s contact close-up the tag reads “PERFECT!” for any non-green swing, even a GOOD one that earned the replay by distance or a target. The tracer part then shows the real reason.
- The crack follows exit velocity, not the grade, so a Power build’s WEAK hit can still sound hard.
- A whiff’s result appears 0.3 s after the ball passes the plate (the swing window stays open until then).
- Feedback for a co-op teammate’s swing comes from their result; the hit aim box and key hints are hidden while spectating.
Gaps and ideas
Analysis, not built
Outcomes where the player gets no or unclear feedback on why it went bad, and the code that would have to change.
- Tip or handle is never said. The zone decides the grade, but nothing says which way you missed the sweet spot.
SwingResult.contactOffsetalready has the sign (+ = toward the tip). Change:HudView.DrawPlaySummary(a “OFF THE END” / “JAMMED” line) orHudView.OnSwing. - “ON TIME” is looser than GREEN. The label flips at 18.75 degrees of spray (
SwingResult.TimingLabel, 0.025 s); GREEN needs 9 (SwingResolver.GreenTiming). A PERFECT that missed GREEN on timing can read “TIMING: ON TIME”. Change: a finer label or a timing meter fromSwingResult.timingQuality. - A whiff with good timing gets no aim hint. “SWUNG ON TIME” when the bat passed over, under, in front of or behind the ball.
SwingResolver.Whiffkeeps only a time offset. Change:BatCollision.Sweepwould need to return the closest miss, andHudViewto show it (“OVER IT”, “UNDER IT”). - Too high or too low on the ball is never shown.
SwingResolver.Classifycomputesunder(up to 6 degrees of launch) butSwingResultdoes not keep it. Change: store it inSwingResultand show it on the card. - Launch has no target. The card shows “LAUNCH 52°” but not that a sour hit rolls grounders or pop-ups, or what a good launch is. Change:
HudView.DrawPlaySummary(a zone word or colour on the launch pill). - The zones are invisible. Earlier aim-helper versions lit the nice and perfect zones; they were removed (commit d1502fc). Contact upgrades widen the zones with no visible change. Change:
AimBat(zone marks scaled byHitTablesx Contact). - A hooked foul is not explained. A ball can start fair and curve foul because of the held A/D or the batter’s curve. Change:
HitPhysicswould have to flag it,HudViewto say it. - W/S cost is silent. Holding W lowers power by 6%; only “AIMED: LIFT” shows. Change: the play card.
- No timing cue by default. The timing ring is off by default (
GameSettings.showTimingRing). Without it the only timing feedback is after the swing. - The play card hides a GREEN. Its grade pill shows
swing.Grade, which says PERFECT even on a GREEN; only the popup and the streak pill say GREEN. Change:HudView.DrawPlaySummary.
Related
- Batting Explained: what makes a swing good or bad
- Hit Show: counter, tracer, camera, replay
- GREEN Swings: the top grade
- Swing and Timing: the aim helper and timing ring
- Audio: how sounds are made
- Swing Log: the same data, written to a file