I’m stuck for something to write about this week as I haven’t played anything new recently, so I dragged this almost-finished review of Hacknet out of my drafts folder and polished it up a bit.
Hacknet is a modern Uplink whose major accomplishment is to make me wish somebody would make an actual modern Uplink.
By “Uplink” I mean “freeform hacking game where you crack into computers to futz with systems to fulfil contracts”. Uplink is, at this point, a rather old game; it was Introversion’s very first release all the way back in 20011 and was good enough that it put them on the map as indie developers at a time when indie development had all but died out. However, where Uplink was very consciously modelled on Elite — the vast majority of contracts were procedurally generated, and the point of making money was so that you could upgrade your rig to take on better contracts that would earn you even more money — Hacknet resembles an adventure game more than anything else. A text-based adventure game.
A typical Hacknet session has you staring at a screen whose layout can change depending on which theme you’re using, but which always has four components: a terminal into which you type commands; a GUI that’s used to display output such as file contents and web pages; a network map of the various computer IP addresses you’ve collected; and a box that represents your available RAM. The GUI and the network map are slightly interactive as you can click on folders and files to navigate directory structure in the GUI and on IPs to connect to them in the network map, but most of what you’ll actually be doing in Hacknet happens in the terminal window. It’s here that you run programs, crack ports and modify files, and all of the functionality available in the GUI and the network map is also available in the terminal via other commands. 90% of Hacknet involves typing things on your keyboard, and the computers you hack into are not a million miles away from rooms in old text-based dungeon crawlers such as Zork – they remain on the network map once discovered and can be returned to at any time. Hence: Hacknet is a text-based adventure game.
The first thing that happens when you start a new game of Hacknet is that a mysterious hacker sends you a magic cracking program called PortHack. He also asks you to look into his *~mysterious disappearance~* and this narrative thread is what passes for the main plot of the game, but it’s honestly pretty dull. PortHack is far better, as it automatically cracks into any computer you point it at — if you have opened all the ports. Each computer requires you to open up to four ports to run PortHack, and you hack them open by running other magic hacking tools: SSHCrack opens SSH ports, WebServerOverflow opens HTTP ports, and so on. Each tool takes a set amount of time to run, and when you run it a chunky box showing a pretty graphical representation of magic hacking things appears in your RAM manager; the size of this box is directly related to how much RAM each tool is using. While you can run multiple tools in parallel you can only run as many as can fit in the RAM manager, and so the hacking part of Hacknet consists of correctly sequencing your program run order to take advantage of this parallelisation so that the required ports are open in as short a time as possible. Time is important because as soon as you start opening the ports you’ll get the ubiquitous trace timer counting down in the corner of your screen; once it reaches zero bad things happen.
The metagame of Hacknet revolves around taking contracts from internet message boards to pull off a specific hack. These start off very simple and have you hacking into a single machine to alter a file, but eventually branch out into more open-ended missions where you’re given a starting point and a goal and left to work towards it on your own. These later missions involve cracking a machine, rifling through the contents, noting down any useful information (Hacknet is a game you play with a pen and paper to hand at all times), scanning for any additional machines connected to the one you’re on, and then using all of that to identify your next target. Much of the time the security on the target machine is too hard to crack before the trace completes, so you need to find login credentials on unsecured machines that are connected to it.
Figuring out and backtracing this web of connections is half the fun of Hacknet, and it becomes even more so on the rare occasions when the game throws curveballs at you. Pretty early on you get a mission to delete a cache of data obtained by a blackhat hacker (you’re pretty explicitly a “good” hacker, which I really didn’t like compared to the corporate amorality of Uplink) which is easily accomplished – except that when you do the rival hacker gets pissed off, hacks into your own machine and deletes critical system files to crash it. You have to go through a compulsory reboot process to get yourself back up and running, and that’s where you could leave it if you weren’t the particularly revenge-minded type. If you do have a thirst for vengeance, though, it’s perfectly possible to backtrace the hack and do the same to him. The game doesn’t signpost that you can do this in any way, it just makes it completely optional and expects you to figure it out on your own based on what you already know of the game.
Hacknet is at its best when it is throwing unexpected situations like this at you and expecting to you to think on your feet to deal with them. There’s another contract that involves you hacking into a honeypot machine that instantly completes the trace procedure and kicks you into a failsafe mode where you have to alter your IP address on your ISP’s web server before law enforcement agencies can match it to your physical location. This is, at its root, a comparatively simple hack as you’re cracking three ports and altering a file — but the twist here is that you have to do it while a blood red filter gradually creeps down your screen and a warning flashes saying your profile will be deleted permanently if you fail the hack. I do not know if Hacknet is ballsy enough to actually erase hours of progress this way (Uplink was), but making you do a hack under severe pressure with apparently real consequences if you fail is an excellent way to spice things up.
It has to be said, though, that Hacknet is in dire need of a little spicing up at times. The actual hacking part of the game becomes rote very, very quickly; there was precisely one hack in the late game where I had to do something slightly different to what I’d been doing for the last 100 hacks. The big flaw here is that all the cracking programs work the same way with nothing you can do to affect how fast they run, so once you’ve figured out optimal sequencing to fit everything in RAM (which takes about 2 hacks) you don’t have to deviate from it at all, and the only way the hacking could be remotely challenging is if you were bad at typing one-word commands into a computer. (And even then it’s got Bash-style tab auto-complete so you only have to type the first few letters of a command.) Each port type has one program that cracks through it, and one only, meaning there’s not even any interesting decisions over which tool to use for the job. This means that, as a game, Hacknet feels distinctly moribund in terms of options compared to something like Uplink.
Crucially I think Hacknet is really missing out on the metagame elements of Uplink, where you did contracts for money to upgrade your hacking rig. Here you’re just doing them for ranking, or reputation, and every single one of them is scripted. Structurally they’re alright, but in terms of flavour they’re almost as dry as Uplink’s randomly-generated contracts. Hacknet tries to inject some of this flavour via emails and files present on hacked machines that you can rifle through; however, despite Hacknet being a very text-heavy game (it is a sort of text adventure, after all) the actual quality of the writing isn’t all that good. It’s not terrible, either, but it’s clear it’s being written by somebody who doesn’t quite have the polish or pizazz of the experienced and/or professional writers that many modern games outsource their text segments to (c.f. Sunless Sea), and so the writing fails to provide Hacknet with the sense of liveliness it so desperately needs. Curiously it’s also riddled with typos, and is dragged down by some truly misguided attempts to inject internet humour at various points2. Usually I wouldn’t rag on something like Hacknet for having sub-par writing, but the decision to not include any significant metagame elements ensures that it ends up leaning on the writing as one of the two key pillars of the game alongside the freeform mission structure, and I feel it’s not up to sustaining that sort of weight.
Consequently Hacknet ends up feeling distinctly uneven. It has some really neat touches and both looks and sounds the part of a Hollywood-ized hacking game without going full Swordfish. Figuring out the next step of a mission is often tricky enough that you feel pretty smart when the light finally dawns, and Hacknet does successfully thread the needle of making sure you have enough information to join the dots without making it too obvious what you’re supposed to do next. When I got confused it was usually because completing the mission relied on using a tool or command that had been introduced two hours ago and which I’d completely forgotten about up until now, which is something of a flaw, albeit a minor one. The flipside is that you have to be interested in joining those dots for its own sake because the actual gameplay mechanics of Hacknet are cripplingly basic and the writing is flimsy at best, providing no long-term hooks to keep you engaged.
Fortunately for Hacknet it’s not a very long game at all; I was finished with the main plot and most side missions after around five hours, so there’s not really any huge risk of it outstaying its welcome. It was good enough to be enjoyable while missing enough targets that it made me wish somebody would throw more resources at the concept of a contract-based hacking game; technology has moved on significantly since Uplink and I think you could get significantly more leverage out of the idea these days, although that might just be the tech-head in me speaking. As it is, Hacknet’s just a bit too basic to adequately scratch that itch.
- I still have the original jewel case somewhere. ↩
- Including, bafflingly, the decision to try and bulk out computer filesystems with chatlogs sourced from bash.org, which wasn’t that funny back in 2002 when I discovered it and has aged about as well as everything else from the internet’s early years. ↩