Dec
02
We Built A Computer in Mario Maker! | Game Theory (Super Mario Maker)


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.