Today, I’m going to write about a topic that I enjoy and participate in, Speedrunning. Many people have no idea what it is, and most people who know about it have misconceptions or straight out false information about it, so I will try to clear it up a bit. I will also try to make it interesting for complete newcomers, but I can’t promise anything. If you don’t like it, I can’t really change that.
Speedrunning refers to the practice of playing a video game with the goal of completing it as quickly as possible.
Since it is not widely recognized as an e-sport, the requirements and rules of speedruns are decided by the community of the game being speedrunned (speedran?), which often severely differ from one to the other.
I have been very interested in speedruns for years now, and even practiced it myself a little bit, specifically Valve games like the Half-Life and Portal series. I, for one, think speedruns are usually very entertaining. They are often a slap in the face, usually when it is on a game that you actually had trouble completing, and then you watch the speedrun and see just how easy the speedrunner makes it look, but either way it’s fun. Just like you might enjoy watching professionals play a sport you also play more than an unrelated sport.
But speedrunning is a practice that also attracts a lot of hate. First of all, as mentioned before, the community decides the rules. If you watched many Zelda speedruns, then went to watch a Doom speedrun, you might instantly think it is not legit because it did not use the same rules as you are used to. This, especially in Youtube comment sections, leads to arguments that are often full of insults and contain very little actual points.
Most of those arguments can be explained with the fact that at least one of the people involved isn’t aware of the categories.
In a game, when a specific action can be both easily avoided and easily used to drastically lower the time to completion, you usually see a category split. For example, some single player games allow arbitrary save points, which mean you can save whenever and wherever you want, and load saved games any time. This allows for “Segmented” speedruns, which consists in playing a specific segment (you choose start and end point) lots of times until you get the best time you can, then you use that “best time” save point (at the end) to start the next segment, then retry this one many times, etc. At the end, you put together the recordings of the segments, which technically consist in a unbroken chain of playtime using totally legit save points. This is technically legit, but also makes you spend much more time playing than what viewers see, so some people can hate those speedruns. This leads to a split, where the “Segmented” and “Single-segment” categories are created. Segmented speedrun are faster, while single-segment usually require more skill to get comparable results (since you have to start over from the beginning to correct any mistake). People who played games with fixed checkpoints might not be aware of that, and think that an external software was used to cheat and created the segments.
Speedruns are also very prone to use glitches in an attempt to attain the optimal time.
Every glitch is a bug, but not every bug is a glitch. A bug is anything and everything that result from a computer program behaving differently than expected by the creators. This goes from visual bugs, where a texture might be missing, to crash bugs, where doing a specific action crashes the entire game.
A glitch is a specific type of bug, from which the program can and will recover by itself with no long term negative consequences. In the context of speedrunning, a glitch is basically anything that can be used to the player’s advantage to save time, that was not intended in the gameplay by the developers. Of course, without directly asking them, it can be hard to know if something was intended or not, so when you are not sure, the community will decide.
Examples of glitches might be incredible things, like using objects a certain way to go through a wall, then play the map from the outside to avoid all obstacles, but also very little things like a 1% increase in speed when moving towards a specific direction due to the physics engine prioritizing some calculations. Some calculations may rely on the fps (frame per second) value, so intentionally creating lag can actually make the speedrunning faster in some cases.
The problem is, some glitches simply go too far. For example, in Portal, there is an easy to use glitch involving the Portal gun that allows you to go through walls in pretty much any map, and play all of it from the outside, skipping all the puzzles completely. Combined with the whole point of the portal gun, which allows you to instantly move from a point to another provided you have vision (which you always have from the outside of the maps), makes for ridiculously short speedruns.
If a glitch is powerful enough to completely change a speedrun by its usage, like the Portal one, where a speedrun using it will have nothing in common with a speedrun not using it, and possible to ban with a clean-cut description, then it will usually also result in a category split. In Portal, this is achieved with the categories OoB and No-OoB, which mean Out of Bounds and no Out of Bounds. One category is allowed to leave the bounds of the maps, as long as it is done without cheats, while the other is confined to them.
Many games have only such clean-cut glitches, therefore there exists a category “glitchless”, where the game is played exactly as intended, but fast.
But many games also have to very vague glitches. On the Half-Life engine, as with many other first person shooter games, Bunnyhopping is possible.
On some physics engines, there is friction with the ground when you are touching it, and movement is acceleration. At a certain point, the friction equals the acceleration, so you reach the maximum running speed. When you are in the air, there is no friction, so technically no maximum running speed. The acceleration is often much weaker or inexistant in the air, so you cannot simply jump to go fast.
But many such engines also treat player rotation in a special way, in order to keep the camera (the eyes) centered in the rotation even though it is not centered with the player collision model, so there is a small 3D space movement during rotations to compensate. In Half-Life, and similar games, this allows for movement in the air, and therefore obtaining speed while in mid-air, which is not lost due to friction.
In those games, if you move your mouse to rotate the right way in the air, combined with pressing the correct directional keys, moving in “S” shape patterns instead of straight lines will make you gain mid-air speed, with no maximum. If you jump as soon as you touch the ground, spending the minimum of one frame touching the ground, you will get absolutely minimal friction, and can then achieve greater and greater speeds as long as you keep hopping. This is called bunnyhopping. The exact way to perform it, and the speed increase, changes from game to game, but it is called the same.
Bunnyhopping is pretty much impossible to ban as a glitch. You can’t ban jumping, because most games become impossible to complete, and you can’t ban air rotation either, because it would require players to always let go of their mouse when jumping, which is completely impractical. This glitch is a total game changer, yet unbannable because it is only a very optimal way of performing unbannable actions. On any comment section of a speedrun using such an unbannable glitch, you will find heated arguments from one person saying that glitches are cheats and one trying to argue that they are part of the game. This always comes with the stupid comparison “If I modify the game files to instantly spawn in the last level would you think this is legit too?”.
Furthermore, some categories can be applied to pretty much any game. The TAS category, which means Tool-Assisted Speedrun, is usually split “by default”. A TAS uses software outside the game to automate some or all the actions, which results in a speedrun that is played “as if” the player had absolutely perfect aim, reaction times and skill. It takes much more time to automate the game than what would normally be required to complete the game, but the end result is a speedrun that is frame-perfect, and completely unachievable by any non-perfect human. But for many people, seeing the theoretical maximum is enjoyable once, like you might enjoy watching an AI play chess against the world best chess player, even though you know for a fact that the AI will win.
This category, even though it exists “by default”, is still a source of controversy. In some games, like older console games, you would require external tools to change key bindings, make save states, etc. In some other games, like Half-Life (I’m using it as an example often because I have the most experience with it), the game has in-game settings that allow you to literally rebind keys to any action, including multiple actions.
In Half-Life, by default, you move with the keys wasd. Key bindings work with + and -, which means that, by default, w is bound to the action “+forward”. Every time you press it, it sends the action “+forward” to the game, and when you release it, it sends the action “-forward”. You activate and deactivate actions like this, it is how they implemented the ability to press several keys at the same time without delay. You are also allowed to bind a key to multiple actions, which will be executed one after the other, with a maximum of one per frame. You can bind ctrl to “+duck;-duck”, so pressing ctrl will quickly duck and stand back up, within the next two frames. Furthermore, there is an action called “wait”, which means “do nothing for this frame”.
Using this system, all in-game, you can automate specific actions as much as you want. For example, you can make a script that presses a button, then waits the optimal number of frames before starting movement to get through the opened door as soon as possible without bumping into it. Or, you can make such a binding that will continuously spam the “jump” action, which will allow you to jump instantly as soon as you touch the ground, so bunnyhopping is perfect.
Any key binding that contains more than one action is called a script. It is not technically TAS, because it is all done in-game, with no external tool. But scripting in Half-Life allows you to do many things that would be completely TAS in most other games, so this is often a source of misunderstandings. Automating the whole game using in-game scripts would be tedious and require tens of thousands of hours, so nobody has done it yet, but it would be possible. Even shorter TASes are usually done with external tools for convenience, even though doing them in-game would be possible.
You will often encounter comments calling a scripted run, even using minimal scripts, a TAS for this reason. This also created a category split between Scripted and Scriptless. For now, nobody abused scripts enough for the scripted category to split between simple scripts (perfect bunnyhopping, short perfecly timed sequences, etc) and complex scripts (abusing save/loads, automating levels, etc), because of the sheer difficulty in doing that, but there is no doubt that as soon as someone dares to spend enough time for it to become a game-breaker, another split will come to avoid abuse of casual scripting for convenience into complete TASes.
Another “default” category split would be the 100% vs Any% vs Low%. Any% category requires you to reach the end using any means necessary, which can sometime include skips of entire game portions, either through a glitch or simply because they are not needed. In Super Mario 64, you only need 70 out of the 120 available stars to challenge the Final Boss and complete the game, so Any% would only get 70 stars, while 100% would need to get all the stars including bonus objectives. In a first person shooter, 100% might refer to grabbing all items or powerups, killing all monsters, entering every map, or a combination of those. In pokemon, you might need to complete the pokedex to qualify for 100%.
Low% is usually the opposite, being complete the game as fast as possible while getting the absolute minimum number of such items required. In the previously mentioned mario game, there could be a way to kill the boss faster by getting 75 stars instead of 70, therefore Any% would go for this amount, while Low% would be required to beat him with exactly 70. As with 100%, Low% requirements vary from one game to the other, and greatly vary by game type. In Diablo, a Low% speedrun might require you to beat the final boss with the starting gear if possible, or lowest possible hero level, for example. Many games do not qualify for Low%, due to the lack of obvious skippable objectives.
Speedrunning, to an external eye, might seem like a weird hobby where people beat a game fast instead of enjoying it. But in reality, it is an extremely complex community-regulated competition of skill in very specific settings. If you ask me, it is a sport, and even a form of art. If you ask anyone not into it, I’m very weird. That alone doesn’t make me wrong though.