A 2d game engine