My contribution to this game was building the physics engine. This physics engine built from scratch included the usual features such as gravity and collisions. However, it also included a momentum-based movement system which allowed for a surface’s friction level to affect the player’s movement. This allowed us to create slippery ice-like platforms which are fairly common in the platforming genre.
Instead of using an inheritance-based system, the whole game including the physics engine was built of a component-based system. This entailed having an abstract component class that all components were inherited from. These components could then attach to a generic game object class using polymorphism. This included a physics object component which when attached would cause the game object to obey the laws of the physics engine such as the player game object.