Video game engine for a platformer using principles from http://gameprogrammingpatterns.com/