Skip to content

Latest commit

 

History

15 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🏀 Virtual Basket Game — Unity Arcade Prototype

A Unity 6 arcade-style basketball game prototype built to demonstrate clean architecture, SOLID principles, and AI-assisted development using GitHub Copilot and Codex.

Role: Solo Developer — Architecture, Gameplay Systems, Input System, Physics Tuning
Engine: Unity 6 (6000.2.0b12) · Language: C# · Input: Unity Input System v1.14.1


🎮 Game Concept

  • Arcade machine where the player throws basketballs into a hoop.
  • Progressive difficulty levels: static hoop → moving hoop → timed challenges.
  • Virtual joystick controls direction, force, and angle — parabolic shot trajectory based on joystick input.

🏗️ Architecture & Design Patterns

This project showcases production-grade architecture applied to a small-scope game:

Pattern Implementation
Service Locator Decouples IInputManager from consumers via ServiceLocatorProject / ServiceLocatorScene
SOLID — SRP Each class has a single responsibility: InputManager, BallController, PlayerController
SOLID — OCP New levels and input methods can be added without modifying existing classes
SOLID — DIP PlayerController depends on IInputManager abstraction, not a concrete implementation

Project Structure

Assets/_Scripts/
├── Core/           # Interfaces, services, ServiceLocator
├── InputSystem/    # InputManager, input logic
├── Dependencies/   # Installers (Bootstrapper, InputSystemInstaller)
└── Player/         # PlayerController, BallController, shot logic

🔧 Key Technical Implementations

Input System

  • InputManager implements IInputManager
  • Events: AimStarted, AimPerformed(Vector2), AimCanceled
  • Property: AimVector

Physics Tuning

Parameter Value
Rigidbody.mass ≈ 0.6 kg
Drag 0.1 – 0.2
Angular Drag 0.1 – 0.2
Bounciness 0.7 – 0.8
Friction ≈ 0.2

🤖 AI-Assisted Development

This project was developed using GitHub Copilot and Codex as active development partners:

  • Architecture decisions and code generation guided by AGENTS.md
  • Spec-Driven Development workflow with structured prompts
  • CI/CD pipeline with Unity Test Framework (EditMode & PlayMode)

🧪 Testing & CI/CD

  • Unity Test Framework: EditMode and PlayMode tests
  • setup.sh automates environment setup: Unity Hub, Android SDK/NDK, .NET, Git LFS
  • Test results output to test-results/

About

Arcade basketball prototype in Unity 6. Features parabolic shot mechanics, virtual joystick input, Service Locator pattern, SOLID architecture, and CI/CD with Unity Test Framework.

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages