Pinball
Physics Simulator

PC · Unity · 2025 All Projects
Pinballs bouncing off obstacles Paddle hitting pinballs Pinballs colliding with each other Game Over Screen New game started
1 / 5

About the Simluator

This is a project I completed for a class and then expanded upon, it is a simplified pinball machine game with a completely custom physics and collision system. My core focus was implementing a custom ECS (Entity Component System) architecture from scratch and using it to process the real-time physics simulation, which included collision detection and response, rigid body movement, and player input.

This was a solo university assignment for one of my classes at McGill. When working on the project and inspired by my internship at Perfect Storm, I decided to expand on the basic requirements and designed a functional ECS architecture, building out a ColliderComponent, PlayerComponent, and RigidbodyComponent, each managed by a respective system class with a shared IGameSystem interface. A GameManager ties it all together, ticking each system in order and handling object spawning/deletion. I learned a ton about how physics engines actually work under the hood.

What I Did

  • 01 Designed and implemented an ECS architecture with three components and dedicated system classes each implementing a GameSystem interface
  • 02 Built a GameManager to tick all systems in order and handle full object lifecycle, including spawn setup and deletion cleanup
  • 03 Implemented rigid body physics simulation with customizable gravitational acceleration, per-surface energy absorption, and both static and dynamic collision resolution
  • 04 Developed collision detection and response across multiple geometry types, including oirented bounding boxes and circles
  • 05 Procedurally placed all interior obstacles at runtime with guaranteed non-overlap and full pinball clearance which are randomized during each session
  • 06 Created simple game logic handling point calculations, number of lives, game state, and managing the UI
  • 07 Supported two simultaneous pinballs with physically accurate ball-to-ball collision response

Next Project

Shelly's
Snack Search