draw() {
		if (
			this.renderer.isContextValid === true &&
			(this.isDirty || this.isAlwaysDirty)
		) {
			// publish notification
			eventEmitter.emit(GAME_BEFORE_DRAW, globalThis.performance.now());

			// prepare renderer to draw a new frame
			this.renderer.clear();

			// render the stage
			state.current().draw(this.renderer, this.world);

			// set back to flag
			this.isDirty = false;

			// flush/render our frame
			this.renderer.flush();

			// publish notification
			eventEmitter.emit(GAME_AFTER_DRAW, globalThis.performance.now());
		}
	}
draw the active scene/stage associated to this game