A tile based 2D game engine