davue / physsim-pinballers

Project repository of group 20 of "Physically-Based Simulation in Computer Graphics"

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

PBS Group 20 - Pinballers

This is the project repository of Group 20 of the ETH lecture: Physically-Based Simulation in Computer Graphics.

Motivational video

Files for final hand-in

Installation

To build the project you need the .NET 6 SDK. Then you should be able to build it using dotnet build or directly run it using dotnet run.

If that doesn't work you can find pre-built binaries in the Final Release.

Controls

  • ESC: Exit simulation
  • A / : Trigger left flipper
  • D / : Trigger right flipper
  • SPACE: Spin both flippers
  • M: Spawn balls in the top middle
  • Mouse Left: (Re-)spawn ball 1 at mouse position
  • Mouse Right: (Re-)spawn ball 2 at mouse position
  • Mouse Middle: Spawn more balls at mouse position

The Simulation

This is a rigid body simulation, recreating a Pinball game based on the above video built with MonoGame. As MonoGame itself doesn't have any physics engine, all the interactions between rigid objects had to be implemented from nothing. We had the following goals in mind:

  • Minimum Target:
    • A simple setup with enclosing walls
    • Only one ball
    • No obstacles
    • Non-controllable flippers that spin on its own
  • Desired Target:
    • User-controllable flippers
    • Some simple rigid obstacles
    • Multiple balls
  • Bonus Target:
    • Soft-body simulated ball
    • More complex obstacles (bumpers, rotating obstacles)
    • Simple scoring system

We sadly did not have enough time to try soft-body simulation on our balls.

About

Project repository of group 20 of "Physically-Based Simulation in Computer Graphics"


Languages

Language:C# 100.0%