Glitches in the Matrix: Overcoming Deterministic Systems
Growing up I used to wonder if a ‘perfect’ game of Mario or Zelda were possible; one without any deaths, completed with perfect efficiency. It turns out I wasn’t the only one, and in the past couple of decades a community has grown up around the concept, men who compete to complete video games in record times, developing new tricks and techniques to shave off seconds from their run and set a new world record. They call it speedrunning.
I find this hobby fascinating. Not just for the competition, but also for of the ethical challenges and even the ontological implications which the hobby creates. Lady Lovelace once said “Computers can’t do anything you don’t tell them to do.” Which is true, of course, assuming you assign the correct value to the verb ‘to do’. Take the following video for example (you only need to watch a few seconds worth) and you’ll see some amazing feats that the developers of Megaman never would have thought possible – and yet it’s all happening within a deterministic system. The programs only doing what it was programmed to do; yet not what it was intended to do.
The creator of that speedrun employed a number of ‘glitches’ to accelerate the gameplay, abusing the physics engine so he can glitch through walls, and in some instances skipping entire portions of the level and going straight to the end. If you originally came to this video with the desire to see an expert play a ‘perfect’ game, you might come away disappointed – this user is cheating his way through the levels! It’s for this very reason that during the early days of speedrunning exploits and glitches were banned. It just seems like common sense, after all – the competition is supposed to be about player skill, not abusing the code. But as the years went on this began to change – not merely because players wanted to go harder and faster, but ultimately because defining a glitch turned out to be ontologically impossible.
The problem with trying to define what is and isn’t a glitch is that all software has some form of emergent behaviour. Lovelace is correct, that a program will only do what you tell it to do – but that doesn’t mean that you know what it’s going to do. Create a program to calculate an irrational number, for instance. You know that it’s going to output numbers – but you don’t know what those numbers are going to be. Similarly, when you program a video game, you might have an initial developer intention as to how the video game is supposed to be played, but it’s impossible to fully predict all of the emergent play styles which will fit within the structure defined by your code – and some of those emergent behaviours will be embraced by the developers.
A famous example of this is the “Ghandi Glitch” from the original Sid Meier’s Civilization. In that game, each computer opponent had an aggression rating on a scale of 1-10. Ghandi’s AI, inspired by his namesake, was set to 1. However, upon adopting Democracy, a leader’s aggression score would be reduced by 2; and because of how values are stored in Civilization’s code, this sets Ghandi’s new aggression level to 255! Thus was born “Nuclear Holocaust Ghandi” and it’s been included as a feature in all the subsequent games of that series.
If this glitch appeared during your speedrun, should that invalidate it? Of course not.
In The Legend of Zelda the developers intended you to start the game with the immediately available wooden sword; speedrunners will bypass this, and instead go straight for the best weapon of the game, the magical sword. During a normal play through this would be impossible since the players hasn’t received the clue about where the magical sword is located. Nonetheless, bypassing this portion of the game in a speedrun can hardly be considered cheating. Nor does finishing the dungeons out-of-numerical-order, using a more time-efficient route, seem to be cheating.
What about ‘forcing’ enemy item drops? The game is designed so that certain enemies will sometimes drop items, with different item sets coming from different enemies. Speedrunners eventually figured out that this wasn’t random behaviour, there was a table underlying it which only made the drops feel random. By keeping track of enemies defeated – sort of like how a Blackjack player might count cards – the player can ‘control’ which items drop at which times, saving themselves from unnecessary grinding, and shaving seconds off the game.
Is that cheating, or simply mastering the algorithm to an apparently superhuman level?
From here we can jump to a high level of system-exploitation. There is a trick which can be performed to skip one directly to the end screen. It involves going to a particular screen, activating a specific number of ghosts, waiting until the music hits a particular note, and then using the flute item. This results in a data-overflow, triggering the warp to the final stage, and the completion of the game (you can see a full explanation of the phenomenon here).
At first blush this might seem like an obvious cheat which should invalidate the game. But how is this any different in principle than ‘counting cards’ to control the enemy drops? Or discovering an unintended optimal strategy which ‘breaks’ the game? Or using a terrain glitch to shave off half a second of play? Ultimately, all the player is doing is mastering the game; understanding it inside and out, and creating a series of inputs which achieves the desired outcome with the greatest possible efficiency. The developers may not have intended this behaviour to be part of the game, but neither did they intend for you to skip the wooden sword. “But they offered you the freedom to skip the wooden sword,” you might say. Did they? Was it a conscious intent? Or a side-effect of having a game where open exploration was part of the base design? And could they even tell you whether this was an emergent bug, an intentional design choice, or a piece of serendipity like Nuclear Ghandi? As creators, do we truly know what we’re creating, or do we stumble into it? Creation is not a singular act of will, but on ongoing process which often takes months or years; a mission statement can guide, but never confine.
At no point can game designer be said to have ‘chosen’ what the intention of the game was. And likewise, there is no hard-and-fast line in the sand between exploiting the system correctly versus incorrectly. Anything which is possible is possible. And so speedrunners have abandoned the concept of ‘glitches’ being verboten, and embraced a simpler metric: “Speedrun, no warps” vs “Speedrun, warps allowed”. The categories are determined by the crowd – what the speedrunners and the audience find most interesting, on a case by case basis – with no claim to one category being ‘objectively’ better than any other.
By this point some of the broader implications have likely started to become evident to you. The first is the inevitable failure of legal systems which are guided purely by logic, without any sense of the spirit behind them. Speedrunners could have held hard and fast to the “No Glitches” rule, assigning a “Supreme Court of Gamers” to determine which glitches were allowed, and which glitches were banned. Ultimately these choices would have been extremely arbitrary, adhering to whatever felt like cheating to the judges of the time. Instead, the community focussed on what brought them all together in the first place: the fun and challenge of running. Ergo, external cheats – such as splicing together footage from separate runs – is forbidden, but internal-system manipulation is embraced. Likewise, real world legal systems inevitably develop loopholes. If we embrace strict legalism, we wind up creating a massive body of law which serves no-one, and becomes nigh inscrutable. If, however, we remember the spirit of the law – the Catholic concept of social justice, before the term was coopted by radicals – we can amend our legal systems to maintain human liberty and encourage human flourishing.
The second thing which these speedrunning glitches demonstrate is that the answer to the Free Will vs Determinism debate is Emergent behaviour. If a video game could be said to have its roots in the code which create it, we similarly have our roots in the physical and mathematical systems which underlie reality. As certainly as a video game comes out of its code, we come out of a deterministic universe where events happen because of causes, where all is not solipsistic madness. But to then state that we are bound by determinism is to fundamentally misunderstand what determinism means. While the video game will never be other than what it is coded as, this doesn’t mean that it is predictable. Similarly, the physical, mathematical, and philosophical limits which exist in reality will never be other than what they are, but that doesn’t mean that we are limited and predictable.
Take, for example, our habit of adopting gendered nouns in so many of our languages. In retrospect, this makes perfect sense. The complementarianism of the sexes is so obvious and omnipresent in our daily existence that it seems inevitable that we’d tend to view the world around us through this lens. Cats, and cows are feminine (their counterparts being toms and bulls); dogs and foxes are masculine (their counterparts being bitches and vixens). As a species it comes so naturally for us to separate the sexes into their own communities, only to then come back together in marriage – and then to separate again, and rejoin again. It’s the rhythm of our lives – how could it not become the rhythm of our grammar? And yet, as obvious as this is in retrospect, could any philologist or angel who happened to be standing nearby at the birth of Man, have predicted this linguistic quirk which appeared in so many tongues?
The only way to truly know what the program is going to do is to run it. Deterministic does not mean predictable.
This principle applies to the outside world as well, not just to our inner lives and the study of our souls. Just as the speedrunner finds glitches that no developer anticipated, so do we find glitches that allow us to master the physical. This is the entire premise of Engineering: to find cheats and hacks which allow us to perform ten units of work with one unit of effort. The elevator is my favourite example of this. The energy expended in ascending and descending an office tower is enormous, prohibitively so for most men, and so we employ elevators. But these devices don’t merely replace muscle energy with an electric motor – they’re far more wondrous than that! By incorporating pulleys and a counterweight, the act of moving you up and down floors becomes practically free – only a few joules to get the initial acceleration, the rest takes care of itself.
Energy can’t be created or destroyed, but it can be applied to different gearing ratios. We can’t deny gravity, but we can skim through the atmosphere in great aluminum birds. We can’t ignore our base animal nature, but we can incorporate it into great civilizations and feats of artistic mastery.
It is a great error to think that we can only exalt the human soul by denying its physical substrate; it is the equal opposite error to deny the human soul because one acknowledges the physical substrate. Nor should we cleave to the physical as if it’s some sort of moral limit, the earth a tombstone on our ambitions! Rather, we should embrace the physical – find all the clever exploits that we can – and use that to achieve the higher, incorporating and sacralising it, as we seek after He who might sacralise us.
Gravity says that we weren’t meant to fly, but our hearts call us to soar higher than the birds.
Another well-known and heavily-exploited glitch is the “backwards long jump” in Super Mario 64. The game enforces a speed limit of, let’s say 40mph, (if speed > 40 then speed = 40) but traveling *backwards* at 2000 mph is allowed because -2000 is less than 40. Unsigned integers have an inherent lower bound of zero, which you don’t need to check, but with signed integers, the programmer must define and enforce upper *and* lower bounds!
Abnormally high speeds don’t just get you places quickly, they allow you to skip through walls because unlike the real world, where time is continuous, video game time proceeds in discrete steps.
My favorite glitch was from Return to castle wolfenstein. During the final boss fight, just wait before entering the arena until those annoying undead enter into the tunnel you’re in. Then sprint out before they can follow you. They all get trapped when the exit is sealed behind you, leaving only the final boss to deal with. They’re still alive but unable to respawn outside of their trap, making the final fight super easy.
For me a cheat is something that alters the basic mechanics of gameplay, or feeds bad data to it to get the outcome. You see this mostly in multiplayer with the script kiddies and their wallhacks and such.
The thing about IRL though, is there’s no wallhacking your way out of it. Which is a good thing.