Inspiration

When in physics class, I (Daniel Fu) was given a problem where we had to determine the trajectories of a ball thrown in a non-inertial reference frame - for example, on the inner surface of a spinning space station. We were interested by the odd trajectories that could result (such as throwing a ball backwards and having it return from the front). We wondered how a platformer game would work in such a system.

What it does

This is a puzzle/platformer game set on a rotating space station. There is no gravity - the force holding you to the ground is the centrifugal force. Arrow keys to move and jump. The goal is to collect all the keys and reach the portal at the center of the station to complete each level. Enemies (moving orange circles) may be stomped like goombas. The simulation is physically accurate and close to what you would experience in an actual centrifugal gravity station.

Effects you may notice:

  • Jumping up makes you move forward. This is the Coriolis Effect, for which the game is named.
  • Running with the direction of the spin increases gravity and running against it decreases gravity. Beware - not all levels spin in the same direction! This can be used to cause very long jumps.
  • You can move through the center of the station, suddenly flipping up and down.
  • Gravity decreases, and the magnitude of the Coriolis Effect increases, as you approach the center.
  • Running off a platform in the opposite direction of the spin can sometimes cancel out all your momentum, leaving you hanging in midair as the station spins below you. Time to reset!

This could possibly be a good tool in teaching rotational physics.

How I built it

Built with Processing.js and Javascript. Used Git for version control and hosted on Github Pages. There weren't any physics engines designed to handle non-inertial physics, so we built ours from scratch.

Challenges I ran into

The collision algorithm took a long time to get right. We had many issues with the player falling through the floor, sliding along a platform, or being thrown across the game space. Some of these issues happened only occasionally, and thus were frustratingly difficult to reproduce. The current version is both stable and realistic.

Accomplishments that I'm proud of

Movements are smooth and trajectories are physically accurate. The game is difficult, but rewarding to master. This project has definitely captured the weirdness of physics in a non-inertial reference frame, with tricks like jumping in a curve, running off a platform and drifting slowly to the ground, or hopping across the center easily possible. After playing for a while, we felt like we had an intuitive grasp of what moving around in such a weird environment would be like.

What we learned

We learned a lot about physics, computer graphics, and game design. We learned how difficult designing a physics engine is and how to make a game both challenging and fun.

What's next for Coriolis Game

We want to add more features, including

  • More levels
  • More enemies and obstacles
  • Explanations of the relevant physics behind this game
  • Different camera modes, such as one where you can see the game area rotating
  • Sound and music
Share this project:

Updates