Practice English Speaking&Listening with: A Deep Dive Into Super Mario Maker's Crazy Loading Algorithm!

Normal
(0)
Difficulty: 0

Its time to say goodbye!

Mario Maker 2 is just around the corner and with its release MM1 will go into its well

deserved game retirement.

But before we allow Mario Maker 1 to finally sit down in a park and to feed birds, lets

push it once again to its absolute limit.

Today we are going to take one final deep dive into mario makers crazy quantuum loading

shenanigans.

We will take a look back at how some of the craziest mario maker contraptions worked,

we will take a deep dive into how mario maker actually works below its shiny surface,

and we will finally answer the eternal question: Does a Muncher exist if nobody looks at it.

But we are not only taking one final look at all those tricks to say goodbye to mario

maker 1, because there is a good chance, that a lot of those tricks are still going to work

in the sequel.

So are you ready?

Lets do this!

Okay so lets start by talking about how entities get loaded in mario maker and how

to make use of this.

So here our poor little plumber finds himself in the middle of a boss fight against bowser

jr.

Everything appears to be quite normal.

Jump three times onto jrs head, dont run into the ouching shell, dont touch the

hot fireballs.

Business as usual.

Or so mario thought, but in truth this bossfight is far from being an ordinary encounter.

Because as soon as mario leaves the small area in the middle of the room, and crosses

one of the fateful track lines, the whole arena starts to collapse!

Oh no!

It looks like Mario has to defeat bowser jr here, without ever leaving the small corridor

in the middle, while the heir to the koopa throne is allowed to use the whole arena for

the battle.

Thats not fair!

But even though everything here is rigged against our hero in a pantsuit, he still manages

to beat bowser jr against all odds.

Now he finally is able to leave this area with the key bowser jr dropped.

That is, uhm, if I hadnt forgotten to actually put a key into bowser jr.

Uhm...

Hooray!

Okay so how did all of this work?

Well its actually surprisingly simple!

The only thing we need to make this collapsing boss arena work, is this muncher on tracks.

Yup.

So its time for a couple of mario maker 1 loading experiments!

So here we have a super simple set-up to find out the exact timing when objects get loaded.

We simply have a shelmet on top of a spring.

As soon as this block gets loaded the shell starts to travel, and destroys the block at

the top.

So all we have to do is to slowly move mario forward, and once the shell starts to travel

we know how many blocks off screen are loaded in advance.

Aaaaand hooray!

The shell hit the block!

If we mark the spot where the camera is at once the shell activates, then we can see

that objects get loaded as soon as they are no more than 4 blocks away of the current

camera border.

With this knowledge it should be pretty obvious how our super unfair boss arena worked.

There is one muncher to the right and one to the left, each one at such a distance that

they get loaded as soon as mario crosses the line.

Once they load they start to destroy the ceiling.

And this ladies and gentleman directly leads us to our first universal principle of unseen

muncher behavior!

A Muncher exists as soon as it is no more than 4 blocks away of the current camera border.

Super simple stuff, but there is actually a lot more that we can do by exploiting the

loading orders.

See the thing is, objects that are within the enemy entity limit simply dont exist

before they are loaded.

Lets do another experiment to proof this claim.

So first things first items only despawn after they are more than 16 blocks outside of the

current camera border.

We can see this here, this shell destroys exactly 16 brick blocks out of sight, and

then magically disappears.

This means that items that got loaded, stay loaded for quite a while even when travelling

through unloaded areas.

So check this out.

Here we just copy the area from before, but we swap out all the brick blocks with bullet

blasters.

So if we now activate the shell, then the shell actually pulls off the impossible and

bravely travels through all the blasters, hits this brick block, and then falls into

this hole.

What a hero.

However, if we run to the right and then back to the left, before we activate the shell,

then the blasters got loaded previously, and the shell isnt able to magically traverse

solid blasters anymore.

This little trick is incredibly powerful, we can use it to test whether mario has entered

an area before, or we can test from which side mario approaches an area.

Here for example we have a setup where a pow block gets activated when mario comes from

the right, but the pow block wont trigger, if mario approaches it from the other side,

because once, the blaster that blocks the shell is loaded before the shell, and once

its the other way around.

This directly leads us to the second and third principle of unseen muncher behavior.

First: Once a muncher exited once, it exists until the camera is more than 16 blocks away.

And second: A muncher that hasnt been loaded, doesnt exist.

Okay so thats enough basic loading stuff.

Lets talk about advanced loading stuff next!

Lets take a look at global ground, and global loading.

*click*

Alright, so bowsers space base just shot down marios spaceship and he crashed onto a hostile

and mysterious planet.

He lost all his power ups, he has no way to communicate with the space engineering toads

back at home, and his only chance to ever get a chance to rescue his princess again,

is to explore this foreign planet.

After a bit of exploration, mario finds this area, deep below ground.

There is a totally a chozo statue, that carries an ancient relic, that is mario's only chance

to escape, because this ancient relic would allow him to reach the planets exit door.

But how should he reach it, the path towards it, is blocked by black bullet blaster colored

door, and the path to right is blocked as well.

This time by a red door.

Hm, mario obviously needs to find the mechanism that opens up those doors, and would you believe

it, there is actually a door opening question block hidden in this cave.

All that mario has to do here, is to hit his head against this question block, aaand hooray,

the red door opened up!

This path leads or mustache wearing space plumber to another door opening device, this

time it is colored black.

So if everything worked out, the path towards the totally a chozo statue should now be open.

Aaand it is!

Empowered by the power of this very powerful, ancient headgear, mario is finally able to

leave.

Alright so how do we open up doors on the other side of the level, by hitting a question

block?

Well, lets do a quick mario maker experiment!

So here we have a very similar set up three times.

Once we shoot a shell outside of the current camera border on normal ground blocks, towards

a question block that is more than 16 blocks away of the camera border.

Once we do the exact same, with the only difference that the shell travels on top of platforms

on tracks, and then we do it a third time, but here the shell travels on top of firebars.

Well run this experiment twice, once we will load in everything before shooting the

shells, and once we will shoot the shells into an unloaded area.

Okay, so first lets simply shoot the shells, and see what happens.

The shell that traveled on top of the firebars behaves as expected, it despawns before it

is able to reach the question block, the same happens to the shell that traveled on top

of the ground blocks.

No surprises here.

Buuuuut, the shell that traveled on top of the platforms on tracks didnt despawn.

Weirdly enough this shell refused to disappear, and actually hit the question block!

Strange I wonder what happens if we run this experiment again, but this time we load in

everything before the shells start to travel.

So lets take a look at the results.

Once again the shell on top of the platform reached the question block, once again the

shell on top of ground didnt and once again, well wait a second.

Thats weird!

This time the shell on top of the firebars was able to trigger the block with the question

mark!

Okay so whats the solution to this little riddle?

Well the reason why the shells behave differently depending on the ground they are traveling

on, is because some ground is global ground.

For some strange reason there are three surfaces in the game, that never unload, and that keep

everything on top of them loaded.

Its fire-bars, but only if they were loaded once, its items on tracks, and weirdly

enough: p-switches that spawned from a question block.

Every item that is on top of one of those three surfaces never unloads.

Not even when it is away more than 16 blocks from the current camera.

The only way to unload those objects is to completely reload the area, by walking through

a door, or a pipe.

Lets add this to our little list, since this, conveniently, also is the fourth principle

of unseen muncher behavior.

Once loaded, a muncher on global ground doesn't cease to exist, until it leaves the global

ground.

Hooray!

Okay so thats the first knowledge puzzle piece that we need if we want to understand

how our doors from before worked.

The second puzzle piece, is that all entities in the ground block entity limit are always

loaded.

No matter whether we pre-load them or not.

Lets quickly proof this!

Here we have an ultra simple setup, we simply have an explosive bob omb, and a muncher that

drops onto this walking boom-bot, a couple of nasty coins, and a goomba.

If we approach this area from the left, then the muncher and bob omb load before the coins

and the goomba are loaded.

So lets load in the explosion, and see what happens.

All the coins got affected by the explosion from before and fell down, meanwhile the goomba

is doing fine even though he just was in the middle of an explosion.

The reason for this is surprisingly simple.

The goomba didnt exist when the bob omb made his boom thingy, while the coins were

there, even though we never pre loaded them.

Coins live inside the block entity limit, and all items inside of this limit are always

loaded.

Thats brick blocks, block blocks, clouds, donut blocks, ground tiles, coins, question

mark blocks, ice blocks, spikes and most important of them all, donut blocks and invisible blocks.

So thats where stuff becomes a bit complicated for a second.

Lets say we have an invisible block behind a bullet blaster, then it is impossible to

trigger the invisible block, because the bullet blaster is on top of it.

If, against all odds, we somehow still find a way to activate the invisible block, then

the blaster wouldnt be able to load anymore, because then a solid block would be spawn

blocking its spawn.

So this is where it becomes complicated.

If we are far enough away from the blaster, then the blaster isnt loaded anymore, the

blaster literally only exists if the camera is close to it.

Invisible blocks however dont share this quantuum property, they always exist.

What this means, is that we can send a shell on global ground towards the blaster that

isnt there currently, and have the shell trigger the invisible block behind the absent

blaster.

If we now go back to the area where the blaster should be, and load it properly, then the

blaster cant load anymore, because the invisible block is now visible.

And this ladies and gentlemen is how the doors from before worked.

Once we trigger the question block this setup activates a shell on top of the stage.

Now this shell simply travels on top of global ground towards the blaster, that blocks the

door.

There it hits the invisible block, and hooray, the evil door blocking blaster cant spawn

anymore.

Okay so thats the basic loading stuff, and the advanced loading stuff.

Time to take a look at the really bonkers tech.

Lets talk about entity limits and how to manipulate them to our liking.

Lets best start with an example.

Here our plumber finds himself in the middle of one of bowsers many castles.

But what is this, the path forward is blocked.

Oh, no!

Hm, but wait thats strange, this bullet blaster isnt firing anything.

Oh, I see, that blaster is linked to a goomba switch!

This goomba is the key to activating the blaster, all that mario has to do here is to kill the

walking mushroom, and hooray, the blaster activates!

Next our mustached hero has to make his way through an empty corridor, before he becomes

entrapped in this room with three question blocks.

But what is he supposed to do here?

Aaaah I see, thats a combination lock, all that mario has to do here is to hit the

three question blocks in the right order and the exit opens up, but what if we hit a wrong

block.

Well if we hit a wrong block, then the pipes at the top suddenly decide that they are filled

with hungry chain chomps, and our poor plumber gets eaten alive.

How ouching!

But thats really marios fault for not paying attention.

The hallway up to the combination lock showed three bowser statues a couple of times.

All that mario has to do is to hit the three question mark blocks in the order the statues

showed him earlier.

Its the smallest one first, then the one in the middle and finally the biggest one,

aaaand hooray!

The exit opens up, and no chain chomp pipes become activated!

Alright so how are we able to activate pipes when mario hits the wrong question block,

and how did we wire a blaster to a goomba?

Well we do it by clever manipulation of the entity limits.

Time for another experiment.

So here we have three question blocks that contain munchers.

We can load the game, hit them, the munchers pop out, everything is fine.

However, if we approach this area from the left side and hit the same three question

blocks, something strange happens.

They dont release anything anymore.

We can do the same with blasters and pipes.

Here we have two blasters that shoot munchers and pipes that spawn goombas.

Everything is fine when played normally, but if we approach the area from the side, then

suddenly the pipes stop spawning, and the blasters shooting.

To make everything even weirder, they start to behave normally again, once we hit this

p-switch.

At first glance this may look a bit strange, but there is actually something surprisingly

simple going on, hidden off screen, that explains this little riddle.

Basically, we load in 100 goombas at once and place them on top of of a single offscreen

firebar.

Since firebars are global ground the 100 goombas dont despawn when we leave this area.

Mario maker stops to spawn new enemies once the in game enemy limit reaches 100.

Since we loaded 100 goombas on global ground, 100 goombas are permanently loaded and therefore

the pipes cant spawn, the blasters cant shoot and question blocks cant release

their content anymore.

Only if we defeat a goomba, new enemies are able to spawn.

This is where the p-switch comes into play.

There is simply a coin placed behind our 100 global goomba setup.

Since coins are always loaded, they also always turn into brick blocks, no matter where in

the stage they are, so as soon as we hit the switch, the evil coin becomes an alright brick

block, that kills all 100 goombas, and frees the entire entity limit.

Thats how we wired the goomba to the blaster before.

Here we just loaded exactly 98 items globally into the in game entity limit, then the goomba

and the blaster loaded, which brings the limit to exactly 100, and therefore prevents the

blaster from shooting.

If we now defeat this poor goomba switch, then one spot becomes freed again, which gets

immediately filled by the shell that the blaster shoots.

This finally leads us to our fifth and final universal principle of unseen muncher behavior.

A muncher inside a spawnable object, like a question block, only exists if there are

less than 100 enemies loaded.

Hooray, but this still doesnt explain how the combination lock from before worked.

Well to understand this, we have to quickly talk about donut overflowing, and this is

where all the different things we discussed so far beautifully come together.

The thing about the in game enemy entity limit is, that a couple of things count towards

it, that dont count towards the limit while building a stage.

The limit during stage creation is the limit A, while the entity limit B or short ELB during

playing follows different rules.

Doors for example, take a spot in the ELB once loaded, cannonballs shot by cannons do,

and most interestingly, donut blocks do as well.

But not ordinary donut blocks, only falling donut blocks count.

As soon as a donut block drops down it takes up one spot in the elb, and this spot gets

freed as soon as it respawns.

So ... if we want to make use of this, then all it takes is twenty good big thwomps, 20

helpful firebars, 20 dumb coins and 60 donut blocks.

All that we have to build is this following setup, and to load it once, then the ELB immediately

becomes filled.

Heres how this works.

Each thwomp and each firebar count as one entity towards the elb, which brings it to

40.

Then there are 60 donut blocks, since a thwomp is permanently on top of them, they permanently

drop down, and therefore permanently bring the elb up to exactly 100.

The firebar ensures that the thwomp is permanently loaded, the donut blocks are in the ground

tile entity limit, which means they are always loaded as well.

In short once we load this contraption in, the elb is permanently filled in our stage,

but the creation mode entity limit is only at 40.

Once again, we are able to place a coin behind the thwomps to immediately free the whole

ELB as soon as a p-switch gets triggered.

So this is the setup we used to make the pipes spawn chain chomps as soon as we enter a wrong

combination.

Basically up there is a quickly hacked combination lock contraption, that triggers a pow block

if the combination is entered correctly, and otherwise it triggers a p-switch.

If the p-switch gets triggered then all the donut overflowing thwomps we loaded in before

disappear at once, which allows the pipes to spit out biting dogs.

Thats the whole trick.

Hooray!

So there is actually much much more possible in mario maker by abusing its loading algorithm,

but those were the most basic concepts of mario maker 1, and hopefully most of this

stuff still works in the sequel.

So to finally answer the question from the beginning of the video: Does a muncher exist

if nobody looks at it?

Well, if it is less than four blocks away from the camera yes, otherwise, no except

it stands on a fire-bar since this is global ground, but only if the fire-bar got pre-loaded

before otherwise its no again.

If the muncher lives inside a question block than it does exist as long as the block isnt

more than four blocks away from the camera, otherwise it doesnt except the elb value

is currently above 100 in which case it doesnt exist until the limit is cleared, and if the

muncher is on track then it doesnt exist until it is loaded for the first time, but

afterwards it always exists.

So the next time someone asks you this, now you know the answer.

Hooray!

Okay and with that being said, I hope you enjoyed this little video, if you did dont

forget to leave me a thumbs up and maybe you feel especially hyped for mario maker 2, and

want to hit subscribe button as well.

I hope that all of you have a wonderful day and to see you soon.

Goodbye!

The Description of A Deep Dive Into Super Mario Maker's Crazy Loading Algorithm!