About a month ago, we sat down to record our podcast. It was the week before the launch of Splatoon 2, so we had a lot of excitement to share as we all eagerly anticipated its release. Part way through the recording, my computer hung for a moment and produced a notification that read, “Error: Disk write too slow.”
Although not ideal, this was expected and we’ve learned through the years to deal with it. We cut off the chunk of the recording that led to the error, and picked up where we left off. We continued the rest of the show and I sought after some music to add to the episode before exporting and uploading. Matt and Marc sat playing on their phones and just chatting, as we always do after a podcast.
I attempted to add the music to the episode and received errors each time. I then tried to just export the file without any edits, just to save something. Again, more errors. We spent a while trying some different techniques to get the file to save somewhere, somehow- but it all ended with errors. Our final attempt was what would set forward a new obsession and awaken something within me that I didn’t know I wanted.
When we finally learned that I was unable to boot into the operating system any longer and could only mount the recovery partition of my machine, Matt and I tried one final trick to save this file. With access to Terminal, we looked up a list of Unix commands to help us on our quest, some of which Matt could recall learning while playing Hacknet. We stumbled our way through the hierarchy of my file system until we reached the folder containing the file. Using a command, we began transferring the folder over to an external hard drive. We let it sit for a while, before thinking that perhaps it got stuck somewhere along the way and was having trouble writing anything from the internal disk. We killed the process and instead broke open the folder to see what was inside. We learned that despite our attempts to save it, there was no actual file to be saved in the first place. The original recording was corrupted from the start and we had to move on without it.
While we lamented the loss of our time and what we felt was a really great episode, Matt and I shared a common rush of adrenaline. We both felt something new for a moment as we looked into that Terminal window and saw our commands coming to life. There was something refreshing about it that I didn’t realize would begin to alter my brain over the next month.
Some time had passed as I got further away from that night but I still felt myself with a rush when I thought about that feeling of control over the computer that we had that night. It wasn’t anything that I dwelled on, but something that when it popped up in my head, I looked back on fondly. On a random day off, I realized that I had spent more than half of my week without playing anything. I had been so caught up in chores and work and writing that I didn’t give myself any time to just sit and lose myself in something for a few hours. Without a real appetite for anything, I glanced at the case for my Raspberry Pi and plugged everything into the TV to get it going. I ran through the list of games that I have on the Pi and came up with nothing to play, despite the many options available to me. I remember that a while back, the last I had checked, there was a person who had started work on appropriating the NES Classic Edition theme to run on the Raspberry Pi. I looked into installing the theme to give the little box something new, and found that it had been a while since I updated the software.
With the simple press of the F4 key, I was staring at the shell awaiting my command. Suddenly, I was thrown back at that Sunday night and the rush of adrenaline as I tried something new and watched it work magic on the screen. I ended up going a little too far, as I ended up editing a file through the shell that was crucial to the boot sequence of the operating system. I was back in the same situation I had been in on my Mac, but a little more willing to play with fire on the $35 Pi.
Still not having played anything, I then spent the rest of the day and better part of the evening playing with the shell script on the Pi. I wiped the machine and reinstalled RetroPie, a popular image that sits on top of an operating system for the Pi and allows you to build a retro gaming platform on this tiny computer. Then, I went through and installed and updated every supplemental piece that opens up the machine a little bit more. I changed some customization options around and installed that aforementioned NES Classic Edition theme.
An afternoon of mild boredom turned into a resurgence of something that I didn’t realize I had desire for but left me engaged with learning a new skill. It took another week, but I eventually started playing games on the Pi again. My first big stretch of time has been Doom. id still hosts the original shareware version of Doom and through emulation on the Pi, you can download and install the file to play.
I’ve spent time with Doom, but never to this extent and never in this fashion. Most of my exposure to Doom has been through different console ports through the years, and I usually play through the first level and move onto something else. It’s always been something that I played with a controller, get my fix of it, and return to do the same after a few years. This time, I have a mouse and keyboard set up with the Pi, and I feel like its 1993. It’s not directly the same, obviously, but as I installed the shareware version and first booted it, I was having flashbacks to the book Masters of Doom. In it, the author details the development and release of Doom, among many of the other properties that id had created. During the chapters surrounding Doom, the author recalls the night that Doom was first uploaded to the servers and made available. He talks a lot about how the game spread and a lot about how quickly people were lighting up about it among different IRC channels. All of this is swirling through my brain as I finally play through Doom in a way that I feel it was meant to be played.
I missed the opportunity to learn any of this when I was a kid. The stuff that takes place in the first chapters of the book, where both John Romero and John Carmack are learning how to write code, all happened a decade before I was born. By the time I was first using computers, we had a graphical user interface to navigate the computer, and the need to learn a language wasn’t there. We saw the NES rise to popularity in the states and didn’t have the same home market for the likes of the Commodore 64 that Europe did. For me, there was never any reason to explore programming. By the time I felt myself remotely interested in learning, I was in my twenties without the time to learn it. In the last few years, I’ve pushed myself occasionally to try to learn a language, but I never get very far. Something distracts me away from it and I lose focus. While me using a shell script on a Pi to regurgitate a few commands I’d picked up is far from learning a language, it’s enough to begin to motivate me to take the next steps.
Somewhere within all of this, I found myself without a strong desire to jump into one game over another. When trying to find something to pass the time, my girlfriend and I stumbled onto the television show Mr. Robot. I recalled a co-worker recommending it at some point, but other than that I knew nothing of it. As it turns out, the show was exactly what I needed at that point in time.
It follows a character called Elliot Anderson, who has a background in programming and his social anxiety leads him into becoming someone who hacks people’s information rather than getting to know them. Along the way, he is recruited by an underground hacking group called fsociety who is planning to take down one of the world’s biggest conglomerates.
I know that me learning some commands and playing with a Raspberry Pi has absolutely nothing to do with some underground hacking society, but Mr. Robot became that much more engrossing during the serendipitous crossover of these different parts of my life. It comes down to that element of control over the computer I mentioned before. Seeing Elliot with the world at his literal fingerprints is attractive and enticing. It’s something that makes for great television, because we like powerful characters; Combined with character traits that we see within ourselves makes it only that much more alluring.
There’s a lot that I see him type that I get lost trying to follow, but there’s a good amount of the commands that splash across the screen where if I don’t actually know the command, I can follow the logic of the command to understand just what is going on. It’s a bit like watching The Thing– if you speak Russian, then you know the ending of the movie right from the start. Seeing some of what Elliot is doing has given me little clues if only for a second to what he’s up to and where the story might go next. It should be no surprise that I flew through the show at a pretty fast pace, catching up on both seasons that have aired. Within the two seasons available, there’s a significant amount of character building and a lot of narrative, and it all takes place with hacking at the center of it.
Coincidentally, Night School Studio of Oxenfree fame followed up last year’s breakout title with a Mr. Robot game for mobile devices. I’ve yet to play it, but I quickly found it as I was eager to consume anything and everything about the show. The further I dug, looking for more about the show, I realized that what I was looking for was a way to do what they’re able to do in the show. I craved more of the story, yes, but really what I was looking for was a way to feel the same power and control that the characters on the screen are able to feel. The difference between this and the feelings that I get when I watch something like Batman Returns is that I don’t know if I have the physique or strength to launch myself off of buildings, and I certainly don’t have the money for a Batmobile.
I do have a computer. And I do have the motivation to dig a little deeper into this new obsession. More, I already had a copy of Hacknet in my Steam library and no excuses not to play it anymore. I took a day off with nothing else going on to settle into Hacknet and really see what it had to offer. Matt had previously played through it, and quite liked it. It seemed like just the thing I needed to scratch this untouchable itch.
Hacknet begins with you, the player, receiving an email from a person called Bit. The email asks for your help investigating their death. Your first task is to get acquainted with the basic commands of the game. You learn how to connect to another user’s computer and how to probe their security on the machine. Then, you learn how to navigate through their computer using simple commands.
As the game progresses, it teaches you new commands. You’ll learn how to copy or save a file from someone else’s computer. You’ll be able to delete a file, including an operating system, from someone’s filesystem. Of course, you’ll learn how to bypass security on a machine, although the commands in the game are not actual techniques for hacking, but rather an appropriation of commands that help you run an executable file designed to hack.
There’s a narrative woven through in subtle ways. You slowly uncover a bit more about the character Bit, but largely you learn about yourself. In a meta kind of way, you learn that you can do more than you otherwise believed. When I play any video game, I’m usually tasked with doing something that I otherwise couldn’t do in reality. Perhaps I’m jumping higher than normal, or I’m shooting a gun that could never exist in our world. I might just be running through Dracula’s castle and murdering my way to the magnificent monster at the center. You always do things that you wouldn’t believe you could do, because they don’t exist. However, most video games require the use of a button to execute these commands. Even with an immersive toolset like VR, you’re still using wands and a head-mounted display to simulate an experience. Hacknet sets itself apart because the button presses that you execute are the same ones you’d do if you really were running a shell script.
There’s no disconnect between the actions you do in the game and what you’d do in reality and that blurring of the lines is what pushes this game to another level. I can’t think of another game that enabled me in such a way. The closest thing I can recall are the educational games we’d play in the computer lab when I was in second grade. Things like Number Munchers would teach us math through its gameplay, and there was something we played that taught some really primitive art and design tools through playing around. Both of these examples, and any others I might recall, weren’t directly correlating to the actions we’d do. They would teach us a new concept and teach us new facts, but not necessarily a new motor skill.
Hacknet has the uncanny ability to teach my fingers something new. It’s teaching my brain a new language. It’s doing it all together, without my realization. I might not pursue this thing any further after a week from now, when my usual expiration date for obsessions kicks in. However, there’s little pieces that will remain a part of me. There might not be a reason for me to ever do so, but if I were to open Terminal, I could navigate to a specific part of my hard drive and copy a file to an external drive. I can remotely access another computer on my network and tear through its filesystem to find a file that I need. I believe that if I had to, I could spend enough time digging, and restore a lost operating system to my machine.
Beyond just the correlation of the game teaching me how to use my computer in new ways, it has opened up my mind to new levels of potential. For so long, my brain’s association with programming has always been that it’s something that other people can do and I can’t. It’s not a “can’t” because I don’t believe I have the brain capacity for it, but that I “won’t” because it would take a lot to teach me how to do it. It’s the same reason that I won’t learn Japanese. I’d love to. I think it would be really cool to import a bunch of my favorite games from Japan and be able to read through them natively. However, without any other motivation to do so other than “That would be cool,” I’m never going to learn Japanese. And until Hacknet, I was never going to learn programming.
I have a stronger sense of self-confidence when it comes to the will to try to learn programming. I feel better about the attempt than I did before, and it has everything to do with the fact that Hacknet taught me these new skills and showed me by making me do something that I can do it. Now that I’ve seen a little bit behind the curtain, there’s a different approach to problem-solving too. There’s an element of problem-solving that I’ve always had an affinity for, and my younger self’s interest in math and science certainly lent itself to that. The marriage of the two in programming opens up a whole new world of curiosity and a new way to look at things.