A 2d HTML5 Canvas game engine