function boot() {
	// don't do anything if already initialized (should not happen anyway)
	if (initialized === true) {
		return;
	}

	// output melonJS version in the console
	if (!("__vitest_browser__" in window)) {
		console.log("melonJS 2 (v" + version + ") | http://melonjs.org");
	}

	// register all built-ins objects into the object legacy pool
	pool.register("me.Entity", Entity);
	pool.register("me.Collectable", Collectable);
	pool.register("me.Trigger", Trigger);
	pool.register("me.Light2d", Light2d);
	pool.register("me.Particle", Particle, true);
	pool.register("me.Sprite", Sprite);
	pool.register("me.NineSliceSprite", NineSliceSprite);
	pool.register("me.Renderable", Renderable);
	pool.register("me.Text", Text, true);
	pool.register("me.BitmapText", BitmapText);
	pool.register("me.ImageLayer", ImageLayer);
	pool.register("me.Tween", Tween);
	pool.register("me.ColorLayer", ColorLayer, true);
	// duplicate all entries if use with no namespace (e.g. es6)
	pool.register("Entity", Entity);
	pool.register("Collectable", Collectable);
	pool.register("Trigger", Trigger);
	pool.register("Light2d", Light2d);
	pool.register("Tween", Tween, true);
	pool.register("Particle", Particle, true);
	pool.register("Sprite", Sprite);
	pool.register("NineSliceSprite", NineSliceSprite);
	pool.register("Renderable", Renderable);
	pool.register("Text", Text, true);
	pool.register("BitmapText", BitmapText);
	pool.register("ImageLayer", ImageLayer);
	pool.register("Tween", Tween);
	pool.register("ColorLayer", ColorLayer, true);

	// publish Boot notification
	eventEmitter.emit(BOOT);

	// enable/disable the cache
	setNocache(getUriFragment().nocache || false);

	// automatically enable keyboard events
	initKeyboardEvent();

	// mark melonJS as initialized
	initialized = true;

	/// if auto init is disable and this function was called manually
	if (skipAutoInit === true) {
		eventEmitter.emit(DOM_READY);
	}
}
initialize the melonJS library.
this is automatically called unless me.skipAutoInit is set to true,
to allow asynchronous loaders to work.
@name boot
@see {@link skipAutoInit}
@public