flits,
you mean, if I'm using the level_load, the answer is b? But in big project, it seems strange if the engine load everything into the memory before the game start. It is a good feature for small project but not for a big project.

Quadraxas,
I call a sequence of big textures (1024x1024) on key_a as my effects. But it seems so fast and smooth if like you said, load on the current event. My code is something like this:
Code:
ENTITY* aaa[3];

function keyboard()
{
	if (key_a)
	{
		aaa[0] = ent_create("bigTexture1.png", bla...bla...);
		wait(-0.2); ent_remove(aaa[0]); aaa[0] = NULL;

		aaa[1] = ent_create("bigTexture2.png", bla...bla...);
		wait(-0.2); ent_remove(aaa[1]); aaa[1] = NULL;

		aaa[2] = ent_create("bigTexture3.png", bla...bla...);
		wait(-0.2); ent_remove(aaa[2]); aaa[2] = NULL;
	}
}

function main()
{
	level_load(bla...bla...);
}