Inertia is a real-time futuristic racing game inspired by the WipEout series. It features a procedural track generator, a few nice rendering effects, a from-scratch barebones game engine, and a decent gameplay experience. This was done in about 3 weeks, as a final project for CS184. My class report is available online.


Inertia was my CS184 final project, done with Andrew Lee and Chris Tandiono in Spring 2011. We were given about three weeks to develop the game from almost scratch.


Our project was written entirely in C++, utilizing OpenGL, OpenAL, GLUT, GLEW, and FreeImage.

  • Real-time gameplay: The game can be played using a keyboard or gamepad, and we made it a top priority to keep the gameplay smooth.
  • Crepuscular Rays: We used GLSL to implement a GPU-based post-process crepuscular ray effect.
  • Soft Shadows: We used variance shadow maps.
  • Procedural Track Generation: The track is procedurally generated utilizing b-splines, with physical constraints to make the track feasible
  • Procedural City Generation: The city surrounding the track is also procedurally generated.
  • Physics: Inertia features a simple simulation of momentum and force. Because of its inertia, the ship will drift, and can be challenging to drive.
  • Heads-up Display: We have a simple heads-up display to show the game’s mechanics, such as the lap time or velocity.
  • Custom Soundtrack: Inertia features its own unique soundtrack, created by the team members.
  • Cross-platform: Our game runs on OSX, Windows, and Linux, and the limiting factor is support of OpenGL - our game runs smoothly even on a 2010 MacBook Air.
  • Texture Mapping: The ship and its environment is texture mapped.