update(dt) {
		// only update the quadtree if necessary
		if (this.physic === "builtin" || hasRegisteredEvents() === true) {
			// clear the quadtree
			this.broadphase.clear();
			// insert the world container (children) into the quadtree
			this.broadphase.insertContainer(this);
		}

		// update the builtin physic simulation
		this.step(dt);

		// call the super constructor
		return super.update(dt);
	}
update the game world
@param {number} dt - the time passed since the last frame update
@returns {boolean} true if the world is dirty