Why this Two Pixel Gap is Among the Most Complicated Things in Super Mario Maker.

Since the release of Mario Maker the community
found many many crazy ways to build levels. We found ways to activate pipes if mario takes
damage, we found ways to forbid mario to jump, to run or to slow down, we found ways to build
binary storage and built turn based combat systems. We took a look at how all of this stuff works
previously on this channel, but there is one super weird, incredibly powerful, and unimaginably
complicated mario maker technique we never discussed in detail before. Namely the giant gap, and pow block memory. So with mario maker 2 around the corner, it’s
time for us to tie up some loose ends, and to finally take a look at what are probably
the most complex and weirdest techniques currently possible in super mario maker. So are you ready? Let’s do this! Okay so first things first, the giant gap. So check this out. Mario finds himself in the middle of a solid
brick block labyrinth. Everything is fine, all that our plumber has
to do here is to make his way through the confusing, totally not in danger of collapsing
labyrinth, while avoiding to touch the dangerous ouching saw blades that happen to live here
too. Business as usual. After a while Mario even finds a checkpoint. But this checkpoint is no ordinary checkpoint,
but actually an evil troll checkpoint. Because if mario decides to run into this
evil fake checkpoint then the floor transforms into shiny yet deadly coins because, well
because of course it does. That’s one way to use the giant gap, before
we discuss what this mysterious and presumably gigantic giant gap looks like, let’s first
take a look at another use case for it. Here mario finds himself in a long dark corridor
that leads our plumber to a small mini challenge. As soon as he enters this room, he becomes
entrapped and is forced to hit the three question blocks at the top in order to be able to leave
again. At first this may not sound like an out of
the ordinary challenge for our heroic plumber, I mean surviving such situations is what he
does for a living. This and plumbing. But actually mario has to make a really interesting
choice here. See there is a mushroom on tracks to the right. Usually eating each and every yum yum mushroom
is the way to go, but actually not today, because this mushroom is linked to a dangerous
contraption. As soon as mario takes a bite off of the mushroom,
two piranha plants get shot into the arena, which makes hitting the three question blocks
significantly harder. So mario has to decide here whether he wants
to overcome this challenge small, or if he likes to be able to take an additional hit,
but has to survive a much more difficult challenge as a tradeoff. Hooray! So how did this stuff work, well that .. is
actually surprisingly simple. We basically have a small globally loaded
contraption, that activates a pow block, or a p-switch as soon as the game lags. The game lags whenever mario takes damage,
eats a delicious power up or activates a checkpoint, and the way we are able to test for this,
is by using the giant gap. What basically happens is this. We have a bullet-blaster on top of a pow block
on top of a pow block on tracks. Since all items on tracks are globally loaded
this contraption never unloads. But as soon as the game lags something interesting
happens. As soon as the game lags, a gap appears. This gap here, namely a giant gap. So the reason I’m calling this five pixel
gap a giant gap, isn’t because it is so gigantic, but because mario maker user giant
or helgefan was, at least to my knowledge, the first one to put this really strange quirk
to insanely good use. So as soon as the game lags the pow block
on top of the pow on tracks suddenly is no longer on top of the pow, but floats a couple
of pixels above it, it is suddenly in the air, and no longer has contact to the pow
block at the bottom. If the current camera was more than four blocks
away this would mean that the pow block and the blaster above it are no longer on global
ground, since they are in the air, and because of this the blaster would despawn once the
game lags. That’s how the two contrapütion worked. If the game lags this pow block disappears,
which means this pow block gets triggered. But that’s enough theory, let’s do a quick
mario maker experiment. Experiment A: Airborne Pow Blocks
Okay so I just claimed that pow blocks become airborne for a moment when the game lags,
as long as they are on top of a moving entity on tracks. The problem is, there is no way to visualize
that, because the previous contraption only does something when outside of the current
camera border, since it uses the fact that items despawn as soon as they leave global
ground when offscreen. We can’t see bullet blasters offscreen,
but luckily for us there is an easy way to visualize this nonetheless. If our working thesis of momentarily pow block
airborness is correct, that would mean that a pow block has to interact with a spring
as soon as a giant gap appears. Because, well because pow blocks in air interact
with springs, pow blocks on the ground don’t interact with springs. Simple. So let’s test this, here we have a setup
where pow blocks are on the ground, but should for a moment be in the air once the game lags. The pows happily travel up and down and don’t
trigger the springs, but once we eat a mushroom and lag the game: Hooray, the pow blocks are
in the air, and therefore bounce off the spring. We just proved our thesis, isn’t science
fun! So here we have our first “First Principle
of Pow Block airbornes”. If the game lags while a pow-block on tracks
moves downwards, the pow block becomes airborne for a frame. Awesome, let’s try to put this knowledge
to good use. Here our plumber finds himself in a small
hallway. All that our heroic princess saver has to
do here, is to make his way safely through a couple of dangerous fireballs, that try
to burn him. Simple stuff, but once the fireball hallway
lies behind him, stuff becomes more interesting. The famous level ending axe is sadly blocked
by a nasty bullet blaster, and there is nothing in this room that could allow our mario to
get rid of the blaster. Nothing but this mushroom. So eating this mushroom has interesting consequences,
because the second mario eats this shroom a p-switch timer starts, two bullet bills
drop from the ceiling, and tons of evil fire spitting plants enter the arena. How horrible! Now our plumber is forced to avoid all the
hot and dangerous burning balls that are flying towards him until the p-switch expires. Because once the p-switch expires the bullet
blaster dies, and the path towards the goal finally opens up. Hooray! Okay so how did we wire all this stuff to
this mushroom? Well, we made simple use of the first principle
of pow block airbornes. It’s super simple actually, out of sight
are just a couple of contraptions that activate a spring as soon as they detect lag. This is how we shoot the bullet bills down,
this little contraption is how we trigger the p-switch, aaand this is how we get the
piranha plants to suddenly drop down. Simple stuff. So at the beginning of the video I claimed
that this stuff is among the most complex stuff currently known in mario maker, but
so far everything has been quite simple. So why did I make this horrendous claim? Well because stuff is a bit more complicated.Let’s
do another experiment to show what I mean. Experiment B: Weird airborne Pow blocks. So here we have the same setup we just used
to our right, and a very similar setup to the left. The only difference here is that the pow blocks
once fall onto the moving item from above, and once they jump onto it from below. Ninja style. So what happens here once the game lags? Well our first principle of pow block airbornes
tells us what will happen. All four pow blocks become airborne hit the
spring and bounce away, right? Well, let’s test it. Hm… that’s strange, only the pows that
fell onto the moving item from above are bounced away, the ones that jumped onto the pow block,
ninja style, aren’t affected. Looks like we have a mistake in our thesis. Hooray, isn’t science fascinating! So here’s the second principle of pow block
airborness: Apparently the first principle is wrong, because of spawn order pow block
memory. So what is pow block memory. See all pow-blocks are pow blocks, but no
two pow blocks are the same. Each pow block has the information of when
it spawned stored inside it, it remembers it’s spawning order, and weirdly enough
we are able to actually access this information, and this is, where this stuff becomes so ridiculously
complicated. Okay so if we want to understand why only
the pow blocks that dropped down from above are able to create a giant gap, then we need
to discuss spawn order and stack behavior of items. So check this out, here we once again have
two very similar setups. We have two pow block towers, that get picked
up by a blue platform as soon as we activate it. The only difference here is that one tower
is already put together in the editor, while the other tower drops down from above. So in theory we have the exact same tower
twice here, and common sense would tell us that both pow towers behave in the exact same
way as soon as they get picked up, but surprisingly that’s not what happens. Let’s take a look. The tower to the right is a perfectly straight
and beautiful pow block tower, but the tower to the left is equally beautiful, but behaves
out of the norm. The pow blocks wiggle around. So that’s the first difference between them,
but if we look closely we can actually see another difference: Only the pow blocks to
the left create a giant gap while moving down, while no giant gap appears in the tower to
the right. Weird isn’t it, if we want to understand
why this happens we have to take a super close look into the order in which the game spawns
entities, but since all of this stuff is a bit dry, let’s first take a look at a random
mario joke I just googled. So .. uhm: Why doesn’t mario need his own
movie? Well, because he already is a block-buster. … *hrhr*. uhm .. so back to our spawn order studies. Okay so when a screen gets loaded, like when
we leave a door, then the game loads the entities on screen from the bottom to the top first,
and second from the left to the right. Meaning items that are placed lower get always
loaded before items that are higher, and if two items are on the same vertical layer then
the item on the left gets loaded first. The reason why this is important, is because
items remember the information in which order they spawned, and the physics calculations
of mario maker is based on the spawn order of the entities. This is the reason why the two towers behave
differently. The tower on the left is ordered in a way
that the pow block at the bottom spawned first, and the one at the top spawned last, while
the other tower is ordered in the exact opposite way. This is the reason why they behave differently
when on tracks, if we simplify this a bit, the reason why one tower wiggles while the
other is static is because the collision of each pow block against each pow block is once
calculated from the bottom to the top, while the other tower is calculated in reverse. This gives us an incredibly powerful way to
store information in mario maker. The order in which the pow blocks spawn is
information, that we can write, manipulate and read! But before we take a look at how to actually
read this information, let’s google another mario joke: So .. uhm .. Why did the chain
chomp tweet out the blogpost? Well, because it was attached to this post. *cough cough* I’m honestly not sure if those
jokes make the video easier to watch. Anyway, so how to read stack ordered information:
Well we have two options. We can either use the wiggling or we can use
the giant gap. Let’s take a look at the wiggling first. Here we once again have a similar setup as
before, both setups are identical, but the left tower is ordered spawn order bottom to
top, while the other one is ordered from top to bottom. So watch out for what happens with this block,
and with the koopa at the top when we activate the platforms. The tower with the first spawn at the bottom
doesn’t hit the koopa but lands on top of the block. The tower with the first spawn at the top
however doesn’t land on the block, but kills the innocent koopa. Hooray we are reading the information how
the pow blocks are sorted by killing or sparing koopas! Next let’s read the information by using
a giant gap. So here we have the following setup. We have two pow blocks in the middle. When activated those pows get carried into
this spot where a skeleton roller coaster picks them up as soon as mario triggers it. The pows are then first carried upwards, where
they pick up their buddy the muncher and afterwards they travel so far to the left that they are
outside of the current camera loading border. There is a globally loaded bob omb there that
goes boom when the muncher travels into it, and activates a pow block while booming. Meanwhile mario becomes entrapped in the spot
where he activated the skeleton roller coaster and waits for a delicious yum yum mushroom
to slowly travel towards his mouth. The mushroom is timed in such a way that mario
eats it while the skeleton rollercoaster pow block and muncher team travel downwards outside
of the camera border, which means that if the pow block that spawned first is, at the
bottom of the pow block muncher setup nothing happens, and the bob omb goes boom, but if
the first spawn is at the top a wild giant gap appears and the muncher at the top despawns
because of it, which means that no pow never gets triggered and mario is entrapped here
for eternity. Holy fuzzy. So in short, if mario pushes the left pow
block into the contraption first, then the exit opens up, but if he activates the other
one first nothing happens. Hooray! Let’s take a look at another potential use
for this. Here we have a similar setup as before, the
only difference is that this time the order in which the items spawn is randomized by
pipes. The only way to get the key required to leave
this area again is by activating the pow blocks in their reverse spawn order, because only
if they get stacked in reverse spawn order no giant gap appears, and only then the muncher
doesn’t despawn, which means that only then the exit key appears. Okay so let’s rewatch how the pows spawned
once again in slow motion. Okay so this one spawned last, which means
we have to activate it first, that one spawned before which means it’s the second one,
then that one and finally this one spawned first. So if everything worked out mario should be
rewarded with the exit key. … and … Hooray, it worked! Every other combination of pow block inputs
would have lead to the muncher disappearing, and to mario once again being entrapped for
eternity. Okay so that’s the giant gap, pow block
spawn order memory and different types of moving contact explained. So how to use this in a level. Honestly: I have no idea either. It’s obviously an incredibly powerful way
to express information in mario maker, but sadly it’s so ridiculously complicated to
work with, that it is really difficult to come up with practical use cases for it. The problem isn’t actually thinking about
ways to use this, the problem is more that it’s surprisingly difficult to wire everything
together in such a way that we can move our pow blocks around. If anyone wants to check out what is theoretically
possible by chaining together those tricks I highly recommend to take a look at some
of giants levels, he build functional sliding puzzles, a rubiks cube and a tower of hanoi
puzzle stage in mario maker using those techniques, and he’s obviously incredible in general. Sadly putting those tricks to good use is
currently really difficult because of how limited we are in our options to sort, shuffle
and move the pow blocks around. BUT, there is actually a good chance that
those tricks are going to be still possible in mario maker 2. See those aren’t glitches, those are just
clever exploits of the way the mario makers loading and physics work, and I think there
is a good chance that mario maker 2 is going to use the same physics as the first one did. And if that’s the case this could allow
for crazy things in the sequel, because snake blocks give us a new option to carry items
from a to b, which means that juggling and sorting pow blocks around probably becomes
much much easier. So hopefully those tricks are still a thing
in the sequel. And with that being said, thanks for watching
this mario maker lecture, I hope you enjoyed it, if you enjoyed it don’t forget to leave
me a thumbs up, and maybe you feel especially like you just finished your mario maker bachelor
thesis today and want to hit the subscribe button as well. I hope that all of you have a wonderful day
and to see you soon. Goodbye!

100 Replies to “Why this Two Pixel Gap is Among the Most Complicated Things in Super Mario Maker.”

  1. LOL I'm finding a similarity to Minecraft's code called order of entities. Whatever spawned first calculates and moves first each tick.

  2. I'm watching your videos for a long time already and I'm not even playing Mario maker. I find it interesting the way you discuss all the stuff hmmm… Keep on going… Hoo-ray !

  3. nothing says "lost control of your life" like watching some dude tell you about how pow blocks are actually extremely important in mario maker at 11 pm

  4. Oh ooh! I got one!
    ahem What did the boo tell the dry bone when he made a bad joke!

    Boo! Haha! Get it! Boo! As in, Boo!…
    I’ll go now…

  5. Airbornes, normally spelled as /E(y)ırnborn's/ in American AND British accents.
    Yours are rather /E(y)ırbornıs/, where the 2nd "e" is spelled as "ı".
    What in the Scottish accent is this? A thick Irish accent perhaps?

  6. Oh yeah that makes sense since the game probably has an array or linked list somewhere in memory that represents the entities. And then just goes through those entities with a for loop to refresh them. Cool!

  7. This could allow for builds where you want the player to both have a power-up but also only have one hit, making a drop out floor if hit, drop tons of enemies, etc? This could also be used to trigger forcing to give up a power up, floor drops out to allow you through after you take damage or use a different one.

  8. Ceave is like a doctor.

    When he says something is simple, it's super complicated
    When he says something is complicated, then you will probably die

  9. I think this is like the third of your videos I've watched and I just loved the jokes as well as the "Hoo-ray". Good content!

  10. Why would you google a mario joke? Duck it up instead and protect your privacy! https://duckduckgo.com/?t=youtube-comment

  11. Could this technique be used to create a highly "improbable" level, using a passcode system similar to that in MM2? I know that in MM1, it's sort of pointless since everyone can just download the level and read the number, but the challenge is still sort of interesting. If we could use a stack of n POW blocks spawned offscreen in a specific order, there would be n! permutations for that stack, of which only one would be correct. I'm guessing there is some relatively small maximum n for height reasons, but you could have many such stacks. If there are m stacks of n POW blocks each, there are (n!)^m ≫ 2^(mn) permutations, whereas with current methods having n digits of base m, there are only n^m = (log₂ n) 2^m permutations.

  12. I have a question are you human are you a cat I have a strange feeling that you are or maybe your cat just took your game and played it for you but if you are a talking cat I want you to join my military force you want to kill all humans and or enslave the ones we don't I mean there's a talking shotgun Bigfoot the Loch Ness Monster aliens Maybe then again they kind of like humans they want hurt us so I'll count that as being on our side we could really use a another Khajiit I'm sorry if that word is offensive to you but that's the only term for cat people we have and there is an actual khajiit

Leave a Reply

Your email address will not be published. Required fields are marked *