basic puzzle game engine