Games are bigger and more complex now than they've ever been.
"XBOX ONE X, the most powerful console ever made."
"It's 4 times more powerful than the XBOX ONE X."
"The massive local storage."
"6 teraflop GPU."
"With HDR and surround sound."
"Up to 20% faster per frame."
"Up to 120 frames per second."
"More immersion..."[blended audio about computer specs]
"...Open world video gaming."
But what if I told you that this (high-pitched "ya-hooh!"), is the world's most complex game?
*Intro*
Hello, Internet, welcome to Game Theory,
the shell jump of YouTube shows.
Seriously, we are exactly like a shell jump.
Takes a little bit of work to fully get used to but once you get it, you feel awesome!
and you look super stylish when you do it. And by do it I mean talk about theories on your favorite video games.
Impress your friends with your knowledge, probably annoy them a little bit.
But you know what? They're annoyed because they thought what you had to offer was pretty cool,
at least, I could only assume that's why they are annoyed.
ANYWAY,
Speaking of shell jumps,
that is a not-so-elegant way segue into the fact that Super Mario Maker 2 is releasing like,
NOW!
I cannot tell you how excited I am for this game.
Infinite Mario levels at whatever difficulty I want, whenever and
wherever I want on the switch.
Take my money, Nintendo!
For the last time, you fools! You've given me the Mario game to end all Mario games. Teach a man to fish, he eats forever.
Give the man Mario Maker on a portable console,
and he plays for a lifetime while only paying for the game ONCE. In a year full of, well...
in a year that's devoid of really big releases
that doesn't have a lot going for it. Mario Maker is still
a shining beacon of hope not just for me as a gamer,
but for literally every other gaming YouTuber whose thumbnails don't have #1 Victory Royale
plastered in the corner or ninjas face somewhere.
Now the last time we talked about Mario Maker we discovered just how gigantic of a game this is.
The number of possible levels in Mario Maker is so big that it can
barely fit on screen.
A number so large it was more than the number of atoms in the known universe.
A number SO massive we had to give it its own name: the Marioplex.
But instead of doing the same calculation to see how much bigger this new game is,
I actually wanted to ask a different question this time.
Not how big super Mario Maker is, but rather how complex it is.
Now that might seem like I'm just splitting hairs but think about it this way:
I can throw in a math equation that combines really big numbers or
mixes in some exponents.
But even someone with basic math skills could solve it with the basic principles of addition and multiplication.
Adding in layers of parentheses within parentheses in that math equation though,
addition and then an exponent for instance, now that makes the problem more complex.
And complexity matters, because in some ways, it's a measure of how smart a game is.
And when you actually look at super Mario Maker that way,
not only is it one of the biggest games of all time,
but it's also one of the smartest games of all time.
And to show that we actually built a computer inside of Mario Maker.
You see, the true measure of a game's complexity isn't just in presenting you with problems to solve,
it's in the game's ability to solve the problems on its own.
Video games are, at their core, just a computer programs, right,
programs built to execute code that takes you on grand adventures.
But when you're suddenly able to build an actual, working, functional computer INSIDE of a video game,
well, now you've unlocked something that's a lot more significant.
You've created something that can run any algorithm,
or any set of algorithms.
In a theoretical sense it can run any program that your computer can run.
Including other video games.
Now, obviously there are MASSIVE restraints to this,
but in essence you have created a machine that can run the game
within the game itself.
Minecraft is probably the best example of this,
where some creators like Rick Wagg have made full on Game Boy emulators that play Pokémon Red within the world of the game.
Now, Mario Maker isn't able to be THAT complex,
but the basic tools to do that exact same thing are there.
Which is not that far off.
First off, if we're claiming that Mario Maker allows you
to actually construct a computer within the realm of the game,
we need to understand, at it's most basic level, what exactly a computer is.
The man credited with inventing the computer is Alan Turing.
Remember 'The Imitation Game' from a few years ago starring Doctor Strange?
Well if not, it's a great movie that you should totally watch that tells the story
of Alan Turing working to break the German's unbreakable Enigma code in 1942,
smack dab in the middle of the WWII.
What that movie doesn't show, though, about Alan Turing,
is that he'd already made history 6 years prior,
back in 1936 by laying the groundwork for the way that all modern computers will work from there on out.
Basically, he described a theoretical machine that could solve any problem,
as long as that problem was described by simple instructions coded onto a paper tape,
with cells that could be in 1 of 2 states.
Either filled in with a symbol or a blank square.
Nowadays, instead of a paper tape and blank squares,
we actually have computer memory and binary code.
You ever wonder why binary is the most basic level that a computer operates on?
It all dates back to Alan Turing.
0's and 1's are just the modern equivalent of empty squares and filled in circles from 1936.
So in it's most basic form, a Turing machine,
a.k.a. the most basic form of computer,
needs to be able to do 4 different things,
1. Store values in some sort of memory,,
2. Read and write values from and onto the memory,
3. Keep track of where it is in the memory,
and 4. Follow an algorithm,
which are basically the instructions that tell it what to do depending on what state it's in and the value that it's seeing from the memory.
And sure, over time computers have gotten faster
and we've developed things like programming languages that make it easier to communicate with them,
but at their core, a computer from 2019 is still
performing the same basic operations as
one from 1984. Or heck! ONE FROM THE 1940s, iIf you wanna go that far back. So, knowing all of
this, how do you make a computer inside of a video game,
like Minecraft or Mario Maker? And how complex
is this thing able to get? Well, in Minecraft,
it's actually a bit simpler to do. You have switches and
torches and redstone, and from those rudimentary tools,
you're able to build everything from game emulators to full
on working VIDEO PHONES. Mario
Maker's gonna be a lot more limited based
on the more streamlined gameplay and toolset,
but it too can show-
off it's functionality as a simple Turing machine by
running...DRUM ROLL PLEASE!
Basic addition, ladies and gentlemen, I present
to you, the MARIO MAKER
CALCULATOR! [Bell rings]
[Game soundtrack]
In this level, we're able to add togather any 2
numbers between 0 and 7.
And after a bit auto-scroll, display the FINAL RESULT!
IS YOUR MIND SUFFICIENTLY BLOWN? No?
But just wait, because once you know how and why this thing
works, you're gonna really appreciate how crazy builds
can get inside Mario Maker. And how it's gonna reach whole new
levels, in Mario Maker 2. So, this level,
titled, 'The Cluttered Chaos Calculator'
was originally designed by user, Helgefan.
Using his model, we
actually re-built the whole thing piece by piece,
kinda like you follow the instructions for a Lego set.
All in our attempt to understand how a computer like this
would operate as well as just how far it's able to be pushed.
The FIRST and most important question with a build like this is,
how do you recreate binary in a game like
Mario Maker? In Minecraft, like I said, it's actually a lot
easier. Torches can act as your 1s and 0s.
If they're lit, they're a 1. If they're extinguished,
they're a 0.
Easy. Kinda... I mean it's not
rocket science. But it is computer science through the realm of the video games, with
a couple of layers removed, but still. Anyway, what is our
binary equivalent in Mario Maker? One
word, shells. Just like a filled in
box in the original Turing machine's was a 1 and the blank box
was a 0, the presence of the shell is gonna be our 1,
and the absence of the shell is gonna be 0.
The shell is actually the carrier of data
in our Mario Maker computer. So, a sequence like
this one that you see on screen right here, in which two shells are blocked
and one gets through, well, that would read
as 100 in binary,
and this gets to our first major limitaion of
Mario Maker as a computer. You might be wondering
why the calculator is limited to only the numbers 0
through 7, well, you've heard of bits, right?
Well, a bit is the smallest possible piece of data;
a digit that can only represent one of two
possible states. Those two possible states being a 0
and a 1.
In a normal base-10 counting system with a single digit, you can count all the way up to 9.
And with a second digit, you can count all the way up to 99.
Three digits let you count as high as 999,
pretty straightforward, makes sense. However, if each bit
can only store 2 possible values,
0 or a 1, like in binary, then our counting system
is gonna look a lot different. It starts with 0,
which is just zero. Then it goes to 1. So far, so good, pretty easy, right?
But, where do you go from there? You've run out of space,
since there are only 2 possibilites for that first
digit. So now, you've got to introduce a second bit to store
more data. By introducing a second bit, we can now
hold two more numbers. 10, which is now 2,
and 11, which is three. Once again,
we've reached a limit of space. Meaning that now,
we introduce a third bit 100 is 4,
101 is 5,
110 is 6, 111 is 7.
If we wanted to get up to 8, we would need to add yet another bit,
1000.
The issue here is, each of those digits takes up
more and more memory,
1 bit of memory to be precise.
Going from 7 to 8 might seem like it's a small deal,
but for a simple computer like the one we're making in Mario Maker, that increases the memory
storage space from 3 bits to 4.
It's a whopping 33% increase in the amount of data that we need to store, and
a massive amount of additional level that needs
to be created to account for that
additional memory. That's why, on the first screen, you are able to
input any number from 0 to 7. That's as
high as we can count in three bits.
So, let's say for example, we select 4, according to our
binary chart, 4 equals 100.
Shell, no shell, no shell. And just like that,
we see these two bounce off the P block, only the
first one can get through. By converting our numerical number
4 into 1's and 0's, or in Mario Maker language,
shells and no shells, we now have
it stored in a form that our Mario Maker computer
can actually do things with. And that means that it's now time for the
actual math, which is
like back in elementary school. You start with the ones
place, and then you work our way to the other digits
from right to left. If we follow the path of the shell, you'll see
that both A1 and A2 shells are
being taken to a section labelled HA.
H.A.That stands for Half Adder,
where our first two bits on the far right are added
together. If the sum is too large to fit into a single
bit, then that tells us
to bring the one over to the next
place. It's just like adding when you get 5 and 5.
You get 10, but you have to carry that 1 over
to the next digit. In binary, when you add
1 and 1, you have to carry that 1 over
into the next digit. You'll notice that every
other shell here is ending in FA.
Full adder. The difference here, what makes it
full instead of just being half is that instead of just adding 2
bits of data, full adders are now actually adding three. The two shells we inputted at the beginning,
plus the possible carry-over bit coming from the
half adder above.
If that sum is now too large to fit into that second bit
and it has to be carried over into the third bit and
patterned below that and so on and so on.
Remember though that our final answer can be as high as
14. That's a four-bit number there,
my friends. 1110, and as such,
we have to make sure that we add an additional before
along the way. That's the D that you see right here.
We have our input, we have our addition, and that's basically it.
We have our answer, and the rest of it is
just destroying ice blocks to display it, which
, as you can see, is easier said than done. YEAH!
Simply writing out a number like this requires a LOT of
different functions. There is one final
snag though that we run into when using turtle shells as
our method of storing data.
Mario Maker only keeps track of objects that it
considers to be relevant, i.e.
it only keeps track of shells and enemies that Mario is close enough
for them to matter to him as the player.
In an ordinary Mario Maker level, this makes
total sense: If a shell goes way off to the other side
of the map, it's basically irrelevant, it makes sense
to despawn it so the game can save on processing power.
This becomes a problem for our calculator, though, as all
these shells are relevant, Sure they may not be touching
Mario, but they're carrying valuable data that we need for
our calculations. This is exactly why this level
winds up being an autoscroller: Mario has to move
with the shells to prevent them from despawning.
Knowing how all of this works, it would
just be to show off the fancy
mechanics of shells bouncing around inside of a calculator
or as a means to pad out it's length, but in truth
Mario is taken on a grand adventure
A. cause it takes this long to perform an operation and B.
because without Mario, shells would be considered
irrelevant and just disappear from the map.
All of this! All of this time and maticilous attention to do
something a 1st grader could do.
At the start of the video, we established that a Turing machine could do
anything a modern computer
could do, it's just that an analog Turing machine would process
things much, MUCH slower than your typical computer nowadays.
See, a basic calculation like adding 2 + 3 = 5
actually requires a Turing machine to do 5 steps.
As such, you can imagine that a more complex
problem like multiply these two numbers together,
or, something a bit more ambitious, create the data
inputs needed for my monitor to display this exact configuration
of two million pixels, and do that sixty
times every second is gonna require just a
few more steps. Modern computers
are capable of processing billions of instructions every
second. Our Mario Maker Turing machine is going to be
just a wee bit slower than that,
since our instructions are carried out by moving shells.
Even if we're performing the most basic calculations, each step in the
process is gonna take a couple of seconds.
So let's do the obvious thing: compare our
Mario Maker computer with a modern 2019 computer,
and see how they stack up.
A typical modern computer built in the last 5 years is gonna average about
200 billion instructions
per second. Our Mario Maker equivalent would take about
12,680 years to do
what a modern computer can do in just 1
second. Try matching 16 seconds of operation
from a computer and the Mario Maker machine is gonna be taking over
200,000 years. That is longer than
humans have walked the earth.
That is 16 seconds of processing power from one modern
computer over 200,000 years for Mario
Maker to accomplish. Needless to say, while a Mario
Maker computer is theoretically possible,
you'e not gonna be using it for much more than basic arithmetic if you want
to get an answer within your lifetime..
Or your child's lifetime. Or your grandchild's grandchild's
grandchild's lifetime or HECK! You'll
barely get an answer worth 16 seconds of modern
computing within the time it takes for the universe to die
from heat death.And of course, this
is all assuming that Mario Maker has infinite
processing power. It would actually take a lot less time than
that for your Mario Maker computer to just run out of space.
While our Mario Maker storage is measured in bits, a computer's storage is measured
gigabits, with each gigabit representing 8 billion
bits. Literally two BILLION times as much data as
the final four-digit number produced at the end of our very basic
adding function.
So yeah, I would say that Mario Maker has a few limitations, but again,
so does every computer. Every computer
, even the really really fast ones with tons and tons of storage
have physical and finite limitations.
So, no machine counts as "Turing complete"
in the sense of actually being able to perform any operation.
You could always throw something at it that would require more space and speed than it can muster.
But if you remove that limitation, that computer can be
capable of basic functions, no matter how slowly it does it
can theoretically be Turing complete.
Including one that was made
inside of Mario Maker. Thereby making it one of
the world's most complex games.
But hey, that's just a theory.
A Game Theory! Thanks for watching.