Game6: Physics

In Game6 you must build a game that uses physics, interpreted rather broadly.

Your goal is to start with a fork of the game6 base code and develop a new game that includes multiple dynamic objects that move in a continuous space along non-kinematic paths and interact to create emergent, gameplay-relevant complexity.

Physics introduces (at least) two challenges to your game. First, emergent behaviors are hard to tune because the things you are tuning (e.g., accelerations) have indirect effects on the overall gameplay. Second, chaotic systems are sensitive to small perturbations, so if you strive for a uniform gameplay experience across platforms, pay attention to sources of small perturbations (e.g., use a fixed update step for your physics).

What You Need To Do

(More on game scoring.)

How To Do It

The challenge of this assignment is understanding two new and complex libraries and integrating them with the game code.

  1. Fork the base6 code as a starting point.
  2. Develop and tune a physics.
  3. Fill in the missing sections in README.md to document your project; replace screenshot.png with a screenshot of your game. (The base code is already set up to capture a screenshot whenever you press the PrintScreen key.)
  4. Turn in the game using the form linked above.

Extra Credit

warning sign

I will award extra credit if your physics are: deterministic (+0.5pts) -- the same sequence of inputs always results in the same game state, on every platform; and/or rewindable (+0.5pts) -- players can roll back time to explore alternative sequences of inputs. To receive this credit, you must document in your README.md how I can verify these properties.