Exapunks is a difficult and satisfying hack ‘em up
EXA decimal
To borrow a wise Klaxian proverb: It is the nineties and there is time for hacks. Exapunks is the latest hack ‘em up from Zachtronics. It’s set in the year 1997, which is a very pleasing year to say out loud. The same studio gave us the alchemical gadgeteering of Opus Magnum only ten months ago, but they’ve already returned with a programming puzzler that’s got more in common with previous Zachlikes. I’ve been hacking into chocolate factories and university servers for the past week, and I’ve found it as difficult and rewarding as anything that came before. Although, if this is your first glimpse into the Zachtroniverse, it might be overwhelming.
In one sense, it is a welcoming game. The story is front and centre. “You used to be a hacker,” says the game, “but now you have the phage.” Oh man, the phage. You can almost feel the presence of mirrorshades in this line of plot synopsis alone. The phage is a degenerative disease that very slowly turns the human body into useless circuitry. Luckily, a strange AI appears on your computer and offers you a deal – hack things for her and she’ll give you dose after dose of expensive medication, delivered by your friend Nivas.
From the voice acting in the visual novel style cutscenes to the simmering hacker chatroom in the corner of your desktop, it’s clear that these puzzlers are getting better at marrying theme and function. It reminds me of the emails exchanged in Hacknet or the robo-tales of Aether Interactive. Except you also have the benefit of a printable zine full of tutorials and help, which adds some excellent make-believe garnish, similar to the instruction manuals of Shenzhen I/O and TIS-100. In short, it doesn’t just give you a hard drive full of labelled puzzles, it gives you a zine, a disease, and a little hacker community. In other words, a motive.
Each hack is a self-contained puzzle. They involve sending tiny spider-like bots called “EXAs” across tiled computer hosts. You need to type instructions into these little critters to pull off whatever the job requires. For example, an early hack sees you copying an address into an order file on the database of a pizza restaurant. It’s your address of course – you’re hacking yourself a free pizza. Another level has you hacking your own phage-infected arm, to relay signals from one nerve to another. In that case, I got the instructions in my spiderbots wrong, and red numbers started appearing on my testing display, suggesting that the protagonist’s arm was probably experiencing intense pain. Whoops.
But the puzzles don’t stay so straightforward for very long. Already I’ve found them much harder than the clunking machinery of Opus Magnum (which remains the best opener for anyone seeking to breach the Zachwalls). I even find it harder than Shenzhen I/O sometimes, a game that shares most of its features: a limited programming language to learn, electronic devices to understand, and a booklet to leaf through when you're stumped. Concentration matters in these games, and if your tired brain can’t keep track of criss-crossing lines of code that interfere with each other in nearly invisible ways, then you might also struggle.
It also encourages the pursuit for an “optimal” solution, a tight and speedy knot of code that can’t be bettered. In Opus Magnum I chased this same alchemical dragon by building my first rough machine for each puzzle and saving it as “rubbish”. Then I’d spend hours building an improved version and save it as “better”. If I still ached for the optimal clockwork masterpiece, I’d struggle on and off for nights to come up with a piece of ticking gold, which I’d call “best”.
In a way, this is how Zachtronics games are meant to be enjoyed, as a machinist tinkering your way through incrementally better devices. But it’s also the reason I've often burned out part way through these games. It’s why I have put 60 hours into Opus Magnum, for instance, but still haven’t completed it. It’s why I stayed awake until 2:30am the other night trying to hack a highway sign so it’d read “Wake up sheeple” in a more efficient manner.
It’s relying on its story and a sense of mystery to pull you through, of course. Who is this AI on my computer? Where did the phage come from? And can it be cured? I love this brand of cyberpunk tropedive. But I’m not sure it’ll be enough when the inevitable burnout moment comes and I take my fatal “break” from the numberwanging and kill commands. Even if it’s definitely a good enough hook for now.
Despite that, it remains enormously satisfying to design a tiny spidery nanomachine that, say, splits itself into two new spiderbots, shoots a laser at its neighbour, and then splinters off again into more spiderbots, like a little plague of digital vermin procreating inside a government server farm. Most of the time, you are doing these things for a reason. In this case, I had to steal a file being held by a government EXA. One way to do that, it turns out, is to have an army of arachnid automatons swarm through the system shooting everything until they hit the right target.
There are also artistic details that make the bots fun to observe. For example, if they’re loaded with a “kill” command, they will at a certain point try to kill off another EXA. To distinguish killer bots from regular joebots, they’re given a big cannon as soon as the kill command is typed into their code. Essentially, you arm them with a keyword. Likewise, if an EXA has lots and lots of code scribbled in its wee brain pane, the spider bot on-screen will have a noticeably bigger head. A tall orange cylinder packed with instructions to follow. These are small details, but easy to appreciate when you're trying to keep track of multiple bots at once.
Like I say, I’m only getting started. I’m 9 hours deep and much of that has been muddling through. I haven't yet discovered how to play the multiplayer "hack battle", nor looked into making my own levels with Javascript, or created any game cartridges other players can load. But there have been great moments of satisfaction after I suddenly remembered something I’d read in the zine, then put it into ramshackle practice. On top of that, if your measure of a good puzzle game is that it makes you use paper to figure some things out, then please take comfort from the number-filled grids and nonsense algebra I have scribbled down at 1am. They are full of errors.