Touch: Tap anywhere to swing, timed against the incoming pitch - confirmed genuinely working by predicting the pitch's arrival time from its own live position and timing a real touch tap that produced a genuine hit, confirmed via the game's own hit counter and a tracked 'Foul ball' distance result · Keyboard: Click or press Space to swing, timed against the incoming pitch - confirmed genuinely working by predicting the pitch's arrival time from its own live position and timing a real swing that produced a genuine 'HOME RUN!' result, confirmed via the game's own hit counter and ball-state variable
About:
A satisfying, physics-driven baseball batting minigame by Frank Force with the LittleJS engine, shipped as Batting Practice rather than its source repository's original title (which displayed MLB's official contest name verbatim). Watch the pitch, time a swing, and see the result play out with genuine Box2D contact physics - foul balls and home runs each get a real tracked distance based on where and how centered the ball struck the bat. Confirmed genuinely functional on both platforms by predicting each pitch's exact arrival time from its own live position data and timing a real swing, watching the game's own hit counter and ball-state variable confirm a real home run (desktop) and a real tracked foul ball (phone).
Credits:
Made by A satisfying physics-based baseball batting minigame, 2026. Published here under the MIT licence.
Source code.
Phone check: 2026-09-09: renamed from the source repository's original title (a direct MLB trademark reference) to Batting Practice in both the HTML <title> and the in-game title-screen text before testing. Confirmed real swing timing and Box2D contact physics on desktop (a real HOME RUN result) and phone (a real tracked foul ball), by predicting each pitch's arrival time from its own live position data since its scripted pitch motion doesn't expose a usable velocity value directly, then timing a real swing and confirming via the game's own internal hit counter and ball-state variable. Install trimmed from the full 65-game, 8.8MB LittleJSArcade monorepo down to about 1.4MB, keeping the Box2D physics module this game needs. No third-party analytics found.
BlastmanPlace bombs to blast blocks and enemies, clear a path, and reach the exit door - confirmed genuinely working on both desktop and phone, with a real on-screen analog stick and fire button verified via direct game-state inspection.
Block CascadeA falling-block puzzle with real piece physics, a ghost-drop preview, and genuine VS AI / AI vs AI modes - confirmed genuinely working with a full movement/rotation/drop control scheme on desktop and phone. Shipped under a distinct renamed title for trademark reasons.
Bobble PopA Bust-a-Move-style bubble shooter with real match-3+ popping and disconnected-cluster drop physics - confirmed genuinely working with point-and-click aiming on desktop and drag-to-aim/release-to-fire touch controls on phone.