Speedrunning — A Primer For Beginners, By a Beginner
Note: This piece was originally written for the site Coopinionated, but with that site fallen out of use & my desire to consolidate my writing, I’ve transcribed it here with edits.
I had been aware of video speedrunning as a hobby-within-a-hobby for several years before I decided to watch a lot of Awesome Games Done Quick 2016 as it happened live. The experience shifted my perspective on speedrunning considerably and I decided to take a closer look at it all, highly intrigued by what I had seen. I am a newbie to watching speedrunning and sadly, nerve-ending damage in my hands means I probably will never be able to actually speedrun games myself. But I still enjoy watching runs and wanted to put down on paper (on binary code? HTML? .txt format? Metaphors were so much simpler before computers) a beginner’s manual to speedrunning. The twist on this particular one is that I myself am ALSO a relative newcomer to speedrunning, so hopefully in writing this I don’t go too far over your head in trying to cram some of the basics in your eyeballs. So here goes, this is the grand culmination of all the information I’ve gathered in preparation for this post:
Speedrunning is the act of playing a video game really fast.
That’s it. End of post, the rest of the article will be dedicated to inappropriately hilarious randomly-generated Cyanide and Happiness comics.
Okay, I admit, I lied. There is a lot that goes into speedrunning. When first engaging with speedrunning, one of the most important things to remember is that speedrunning is not simply the act of playing a game fast. In fact, often the actual “game” part of a game factors very little into it. When you get down to it, a speedrunner is not playing the game, they are manipulating an engine of physics and logic to reach a conclusion as fast as possible.
To this end, the atmosphere and even intended play-style of a particular video game may be entirely thrown out the window. We may have all noticed that constantly rolling in Legend of Zelda: Ocarina of Time was ever-so-slightly faster than just running, and side-jumping in Z-targeting was even faster than that. So, of course if you want a stopwatch to read as little time as possible when you finish, you’re going to want to go with the absolute fastest possible way of moving about. Because of this, in speedruns you’ll find that Link never walks anywhere, he’s always looking off to the side and leaping to where he wants to go, because that’s Fast.
To continue with the Ocarina of Time example, dungeons take a lot of time. Perhaps too much time, you might think. You want as little time as possible on that watch when you’re done. Wouldn’t it be nice if you could just excise those pesky dungeons from your quest to see Shiguro Miyamoto’s name in the credits just that much faster? A lot of speedrunners do exactly that! When you first start poking around the community to find videos to watch, you may notice various tags such as “Any%” or “100%”.
An Any% run is exactly that. Finish the game as fast as possible with no holds barred or actual completion requirements imposed upon the runner. You might think that they simply aim to cut as much of the game out as possible, then, which is a logical conclusion to draw. But there is a vast amount of theorycrafting that goes into building these route paths. Intense study of a game’s pathing might reveal that though one might gain x seconds by skipping a particular area of the game, the lack of a critical item from the part of the game that was skipped results in a loss of x+y seconds, so it is actually faster to lose the time going through a part of the game in order to save time later.
Adding on to that, sometimes it is possible that later on, somebody finds a credible skip for the second part, negating the need for the critical item, so skipping the critical item once again becomes viable. If this sounds really complicated, well, that’s because it is. But theory like this forms the basis of speedrunning, almost moreso than the actual playing of the game. New glitches are found even in ancient games all the time, that shake the established pathing for these games and set off a new round of strategizing and theory.
For example, it was theorized to be possible, but never proven, that a player could skip the first Bowser key in Super Mario 64. To do this would have required the player to somehow open an underwater door, which the physics engine did not allow. However, very recently (under several weeks ago in fact at the time of this edit in mid-November 2016) a skip was found that involved building up enough speed on a hill so that Mario zipped to the door and opened it before the game registered that he was underwater. However, this is currently not possible without tool-assist, which will be covered further on in this piece. The point in bringing this up is that a brand new, massive skip was found in an old game (Super Mario 64 was released in 1996) and now new routes are quickly being formed with respect to the new reality.
A 100% run on the other hand, requires that a runner not only end the game as fast as possible, but also acquire every single item and collectible in the game. Not surprisingly, these runs are often quite a bit longer than Any%, but just because you have to touch base with everything in the game, doesn’t mean that there isn’t any strategy involved in constructing the path. Again, there is a school of theory whirring behind many games to determine the optimal path of collecting items to make the game as fast possible. If you’ve ever played Mega Man, you know there is an optimal path whereby every single boss you beat will give you the weapon that kills the next boss in no time at all. This is that type of strategy, taken to an extreme. All sorts of glitches and tricks will be used to get items before their time so as to make certain sections that much faster and easier.
There are certainly more kinds of speedruns outside of Any% and 100%, and many games will have their own categories specific to that game, usually revolving around doing or deliberately foregoing certain tricks. Super Metroid, for example, has a category called “Reverse Boss Order” which is exactly what it says on the tin: Glitches and tricks are used to progress through the game in a completely inverse order from how it was intended. However, Any% and 100% are pretty universal categories and usually the most popular for any given game, hence my choice of them as the premier examples.
I’ve been dancing around the subject of glitches and tricks for a bit in order to get you the general framework of what a speedrun is, because this next part gets rather in-depth. As you might imagine, games are often not very permissive in how they get played. A developer will have an intended experience in mind and may take measures to lock a player out of accidentally progressing through the game in a way not intended. Of course, none of this is Good For Speedcoin. We want this game to be done now, dammit. So speedrunners look for all kinds of potential skips in order to get the game done faster than was probably intended, and if these tricks break the intended order of things rather than just speed them up (i.e. skip a part of the game, or do something majorly out of order) they are called sequence breaks.
Arguably some of the most famous of these can be found in the Metroid series. Many Metroid item skips existed long before speedrunning became a thing and have entered game lore, to the point where Metroid Fusion deliberately included an incredibly difficult skip that resulted in an Easter egg where several characters comment with surprise on Samus’s unexpected arrival.
“Not supposed to be here this quickly” is the mantra of the speedrunner. Runners will exploit game mechanics, taking advantage of a tiny little quirk that may only be able to be done during a single frame of animation (called a “frame-perfect” trick) or while on a specific PIXEL of the game’s geometry (called a “pixel-perfect” trick), sometimes even both at the same time. Of course not all exploits are that demanding, many do have leeway. In general, many of this is researched well-enough that while commenting on a run a runner will be able to tell you exactly the frame and/or location window for a trick.
One of the more famous tricks in speedrunning of this nature is the “Blue House Skip” in Paper Mario 64. It is the largest sequence break in the game, allowing a player to skip the vast majority of Chapters 2, 3, 4, and 5 and combined with another skip means that a player doing an Any% run has absolutely no need of Chapter 4 or Mario’s partner Watt at all. To see what exactly it entails, we go to video footage!
What the sam hill just happened?! It turns out that an incredibly tiny part of the blue house in south Toad Town has wonky collision detection. If one hits this collision detection and inputs the jump button precisely enough, Mario double-jumps on the house’s geometry and, owing to the fact that no physics barrier actually exists on the roof geometry of the house, he just waltzes right in, having full access to the pipe to Shiver City. Now, here a runner may have skipped everything in the game leading up to this point, but sometimes it might happen that a trick like this, skipping a vast majority of the game, leads to problems because you end up not having items that you need. However, Paper Mario routes have been refined around this trick and it has ultimately been figured out that you can proceed directly from this skip without needing to backtrack for items. This is but a single sequence break in a single game, and I’ve already written (and you’ve already read) two full paragraphs on it. Imagine how much stuff is out there.
But humans are squishy, and prone to mistakes and errors. Theoretically, it is extremely hard to get the absolute perfect speedrun. Too many variables and eventually even the best player will fall flat on their face. So we will never get the most perfect runs unless computers know how to play games. Disappointing, right?
Except that we can have computers play the games! Tool-assisted speedruns are meant to serve as the absolutely most perfect run that could possibly be executed. TASes, for short, are so exacting that single frames of animation are counted when determining the set-up for a run.
The big hint lies in the name: Tool-Assisted. These speedruns are constructed on emulators, using frame-by-frame advancement so that all button inputs are precisely optimized. This is an arduous task analogous to programming. The end result is what theoretically is possible for a player with inhuman reflexes and unerring timing to accomplish. Not surprisingly, these are often faster than meatbag speedruns, and often by a LOT.
Mostly, tool-assisted speedruns follow largely the same formula and strategies are often shared across TAS and “regular” speedrunning communities, but the unforgivingly precise nature of a TAS script means that sometimes strategies not accessible to a regular human being are available to the scripter. Take, for example, this TAS of the original NES version of Mega Man.
Starting near the middle of the run, the game’s graphics become completely garbage owing to the runner taking advantage of how the game is loaded into memory. For a normal human player, this would result in the game being unplayable. However, because in this instance the speedrun is actually a script being executed by the emulator, it can continue to “play” the game without an issue because it is running entirely off a script and does not need to have any sort of visual reference as to what’s going on on-screen. We can take this idea of interacting directly with the game’s code to another level.
Arbitrary Code Execution
This is where speedrunning gets a little existential. Your best friend Mario, who has provided you with endless hours of entertainment? All he really is, is a graphical representation of a hitbox, centered around a position variable, which has its position on the screen manipulated according to inputs from the controller cross-referenced with the physics engine and level geometry. He’s code. The entire universe he occupies is code. It gets loaded into memory, and if the memory of the game is manipulated in very specific ways, it turns out that Very Weird Things can end up happening. Witness Pokemon Yellow being beaten in 1 minute 9 seconds.
Sort of gets out of control around the video’s minute mark, no? What happened here is the speedrunner gained access to several glitchy item and Pokemon party slots that, owing to the extremely slapdash nature of the Generation I Pokemon engine, end up manipulating game memory in a very specific way that it would probably bore you to read the specifics of (although if it wouldn’t, you can read the author’s technical commentary here). This memory manipulation gives the runner absolute control over the game, and they use it to execute a script that instantaneously ends the game by activating the sequence that begins when a player beats the Champion of the Elite 4, triggering the ending Pokedex rating and subsequently the credits. That’s it! The game has been completed.
This type of execution can also be used to show off. Extreme examples of arbitrary code execution are often the centerpiece of Games Done Quick TAS blocks, and usually these types of runs do something entirely outside the purview of the game. This run, for example, programs the games of Pong and Snake into Super Mario World:
It also has the value of demonstrating the manipulation of memory via gameplay. All the things that Mario and Yoshi do up until the game gets reprogrammed seem like totally random garbage, but in fact items are being placed and left in precise locations in the game’s memory to leave it vulnerable to reprogramming.
Interestingly enough, this type of run is not limited just to TASes! A particular code execution run in Super Mario World was discovered to actually be doable by human players. Here is a four-way race of human players attempting an code execution run of Super Mario World to finish the game with zero exits credited on the file:
Not only that, but TASes themselves can also be executed on actual systems, in certain circumstances. Which leads us to…
Console Verified TASes
The final step on our journey, console-verified TASes are essentially the pinnacle of tool-assisted runs. Through hardware wizardry, a computer is hooked up directly to a console and executes a TAS script on an actual game running on actual hardware. Currently it is a very niche market because, as you would imagine, the process of hooking a computer up directly to a console in order to spoof a controller is very technically intensive and requires a very high degree of expertise. Regardless, console-verified runs are often the centerpiece of Games Done Quick’s TAS block, and often feature arbitrary code runs, to boot. The Super Mario World run just above was executed on an actual SNES console at Awesome Games Done Quick 2014.
It is only fitting, having gone through a quick shakedown of most of the popular categories of speedrunning, that we finish with a human speedrunner playing a game that was reprogrammed by a TASer via arbitrary code execution, on an actual console.
The run starts at 7:05 in the above video.