Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Plastic Ball Lab

A 3D arcade-simulation sports game about the movement, improvisation, and neighborhood rivalries of backyard plastic-ball baseball.

The project is currently in pre-production and begins with a Pitch Lab: a deliberately small playable prototype for tuning pitches, wind, ball aerodynamics, and the strike-zone experience before building full games or management modes.

Current prototype

The combined Pitch and Batting Lab currently provides:

  • Five quick-select pitch presets spanning overhand and submarine release slots
  • A custom aerodynamic force model layered on Unity physics
  • Predictive targeting that compensates for each pitch's break, drag, steady wind, and selected power
  • Pitch-specific release slots, including a low Tyler Rogers-inspired submarine delivery for the plastic riser
  • A Rogers-inspired submarine slider that sweeps glove-side and resists drop from the same low slot
  • Wind and gust simulation
  • A warm backyard field combining procedural turf/dirt shading with original Blender-authored fence, mature trees, shrubs, shed, neighboring homes, porch, picnic table, flowers, and yard equipment
  • Compact role-specific HUD panels with persistent pitch/bat targets and a live flight readout
  • A straight-on batter's-eye camera plus an offset pitcher camera
  • A trajectory-follow camera for meaningful balls in play, with a smooth return to the role view
  • Swept bat contact that catches fast pitches between physics frames
  • Early, perfect, and late timing plus five contact-quality outcomes
  • Exit velocity, launch angle, restrained contact flash/camera impulse, sound-ready events, and contact slow motion
  • Rapid at-bat reset for pitch-after-pitch testing
  • A low-profile collidable mound, complete batter boxes/foul lines, and a full left/center/right backyard wall
  • A right-field pool beyond the home-run wall that batted balls can land in
  • High-contrast spinning seams and perforations for batter-side depth judgment
  • Batter- or pitcher-controlled roles with an imperfect computer opponent that can miss, chase, take, and lose command
  • Original Blender-generated, skinned stylized pitcher and batter models with bone-driven ready stances, handed grip, swing, windup, lead-leg stride, release, and follow-through
  • Left- and right-handed batting and pitching; pitcher handedness mirrors release slots and horizontal pitch movement while preserving vertical break
  • Power swings use a readable load with near-contact timing cadence, a slightly wider collision assist, and legitimate wall-clearing exit speed; contact and power swings recover smoothly after misses without pausing global time
  • Pitch physics release synchronized to the visual delivery release point
  • Edit-mode tests for the aerodynamic model
  • Unity 6.5's Universal Render Pipeline

Controls:

Input Action
[ / ] Browse the complete pitch catalog
15 Quick-select four-seam, sweeper, 12–6 curve, plastic riser, or submarine slider
W / A / S / D Aim the pitch or bat, depending on the controlled side
Q / E Decrease or increase pitch power
Space Throw a pitch or contact swing, depending on the controlled side
1 / 2 / 3 Select contact, power, or bunt while batting
F / left click Contact swing while batting
G / right click Power swing
B Bunt
H Switch left- or right-handed batter/pitcher for the role you control
Enter Reset the current at-bat
Tab Switch the player-controlled side (batter or pitcher)
Left / Right Change crosswind
R Reset wind
C Clear retained comparison trails

Opening the project

  1. Install Unity Hub.
  2. Install Unity 6000.5.3f1 (Unity Hub and this editor are installed on the current development Mac).
  3. In Unity Hub, choose Add project from disk and select this repository.
  4. Allow Unity to import the project.
  5. Open Assets/Scenes/PitchLab.unity if it is not opened automatically.
  6. Enter Play mode.

The scene is generated on the first successful Unity import by PitchLabProjectSetup. It can also be regenerated from Plastic Ball Lab → Create Pitch Lab Scene.

Demoing the Pitch Lab

In the Unity editor

  1. Open Unity Hub and select this project.
  2. Confirm Hub opens it with Unity 6000.5.3f1.
  3. In the Project panel, open Assets/Scenes/PitchLab.unity.
  4. Press the Play button at the top of the editor.
  5. Click once inside the Game view so it receives keyboard input.
  6. Use [ and ] to browse the pitch catalog (or 15 for quick slots), then press Space to throw.
  7. Use the left and right arrow keys to change the crosswind, and R to reset it.

Try the same pitch several times with different crosswinds, then compare its trail with the other pitch families. Exit Play mode before editing the scene.

As a standalone Mac app

Build the app with:

./scripts/build-macos.sh

Then open Builds/PlasticBallLab.app. The standalone app uses the same controls and does not require the Unity editor to remain open.

As a standalone Windows app

The development Mac can cross-build the Windows version. In Unity Hub, find Unity 6000.5.3f1, choose Add modules, and install Windows Build Support (Mono). Then run:

./scripts/build-windows.sh

The build is written to Builds/Windows/ with PlasticBallLab.exe. Copy or zip the entire Builds/Windows/ folder when moving it to a Windows machine; the generated data folder and Unity runtime files beside the .exe are required.

To build through the Unity editor instead, open File → Build Profiles, select Windows, choose Switch Platform, set the architecture to Intel 64-bit, and build into Builds/Windows/. If Windows is unavailable in Build Profiles, install the Windows Build Support module through Unity Hub first.

Project map

  • docs/GAME_VISION.md — product identity and design pillars
  • docs/FIRST_PLAYABLE.md — exact scope and acceptance criteria for the first playable
  • docs/TECHNICAL_DESIGN.md — physics and code architecture
  • docs/ROADMAP.md — milestone order and explicit deferrals
  • Assets/WiffleBallGame/Scripts — prototype runtime code
  • Assets/WiffleBallGame/Tests — edit-mode physics tests
  • art/blender/backyard_players.blend — editable source for the original player models
  • art/blender/backyard_scenery.blend — editable source for the original backyard scenery kit
  • tools/blender/generate_backyard_players.py — reproducible Blender 5 headless asset generator
  • tools/blender/generate_backyard_scenery.py — reproducible Blender 5 headless scenery generator

Regenerate both original Blender asset sets with:

/Applications/Blender.app/Contents/MacOS/Blender --background --python tools/blender/generate_backyard_players.py
/Applications/Blender.app/Contents/MacOS/Blender --background --python tools/blender/generate_backyard_scenery.py

Verification

Run the automated edit-mode verification:

./scripts/verify.sh

Create a local macOS build:

./scripts/build-macos.sh

Create a Windows 64-bit build from macOS after installing Unity's Windows Build Support module:

./scripts/build-windows.sh

Tests are also available in Window → General → Test Runner → EditMode inside the editor.

Working-title note

Plastic Ball Lab is a descriptive development title. It intentionally avoids using another sports-game franchise or equipment brand as the product name; commercial naming still requires a dedicated clearance pass.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages