Polarity was a group project for the graduate course 3D Graphics Programming. It is a puzzle platforming game based on magnetism. The player can swap between positive and negative charge. Charged plates in the level will attract or repel the player depending on his/her charge.


I worked on Polarity with 4 graduate students: Bradley Blankenship, Eric Baker, Brian Murphy, and Mohamed Farhan. We coded the engine from scratch, using DirectX 11 for rendering. My efforts were mostly concentrated on the content manager, level loader and shaders. We used Autodesk Maya to create the levels, and then exported them to FBX files. The level loader uses FBX files to create the level geometry, collision data, and other game objects.

The shaders I worked on:

  • heat haze/distortion shader
  • A phong shader with support for normal mapping, alpha testing, and up to 8 lights
  • bloom shader (not used)
  • lava shader
  • spritefont shader
  • sprite shader

Polarity can be found on RIT’s Interactive Games and Media website: http://igm.rit.edu/node/874