Before I get into my experience with EXAPUNKS I want to touch on something slightly more personal first, if you would like to skip this feel free to scroll down to the next section. I promise this bit will be worth the read though.
When I started writing recently I had the goal of publishing one article a month. A modest goal I could achieve despite the rigors of a new job and a young child making my schedule a little unpredictable. I missed publishing something last month, but it wasn’t for lack of trying.
I’ve always loved reading critical writing. Having someone challenge the normative position of an industry, or genre, is interesting to me. I believe that this type of writing in my many ways helps those industries grow. Last month I wrote three drafts which I hoped would fall into this category. In my opinion three things are important to critical analysis which are; a set of salient points you wish to make, some cogent arguments which provide insight into said points and then some clear actions to remedy (or improve against) said arguments. While I had the former two points I often struggled on the latter, which I felt were of the most benefit to the community. The net result of those drafts is that they just sounded downright negative.
In our current global socio-political environment it is easy to be negative, I’d argue it is our default mode now. So while I work on my critical writing and have it provide some benefit to our industry you’re mostly going to read about why I really like things. This will make it easier for me to keep to my goal of an article a month but is also an area where I can still provide value, not only to others, but also to myself.
With that taken care of, let’s get to EXAPUNKS….
If you have never heard about Zachtronics before I wouldn’t blame you, I hadn’t either until recently. You may have heard of some of their other work, Infinifactory and Opus Magnum are both game names I recognize, despite having never played them. But they no doubt have a cult-like following. Many fans have been looking forward to EXAPUNKS, the much awaited successor of SHENZEN I/O.
EXAPUNKS is a puzzle game in which you, the silent protagonist, have a disease called the Phage. In order to pay for your extremely expensive daily medication you are forced to go back to hacking as a means for income. The game has a really cool 1990’s hacker aesthetic and does well to convey story and world building despite the minimal set dressing. Cut scenes are static with good voice over work and subtitles to match. Where the cut scenes are unable to provide context the in-game chat channel you are connected to provides extra world building along with tips for hacking.
EXAPUNKS delivers your hacking instructions via a zine. They provide printing instructions for you or you can view it digitally in PDF format. If you need clues on how to hack, that’s where you will find them. The hacking itself is fairly basic once you get your head around it. You control EXA’s (Executable Agents) which perform basic tasks, you have simple equality and math operators as well as GOTO style commands that provide the foundations of your code.
I found the initial learning curve much steeper than I expected given that I spend most of my time at work coding. Like many aspects of learning a new programming language, it is often the limitations of that language that dictate how you write a given solution. This is where the puzzle element of the game really starts to take off. While solving any given puzzle can be hard in its own right the difficulty comes in having a limited number of tools at your disposal.
Typically each puzzle needs to be run 100 times, and the requirements of the puzzle change each run, so the code needs to be generic to handle each use case. In the title animation I had to traverse a binary tree, however the catch is I had to cater for the EXA in the top right corner of the video being in any of the available bays and the end of my binary tree. This problem had me stumped for longer than I care to admit. I already know how to traverse a binary tree, it’s actually fairly straight forward, until you can’t write a simple recursive method and instead have to re-think how you might approach the problem. The same went for clamping numbers, in the days of abstraction and high level languages this is pretty easy, with a limited number of registers and trying to keep your program size as low as possible this took some creative thinking and is the core of what makes EXAPUNKS good.
If you have never tried programming before but have always been keen to try it then this seems like a pretty good way to get in. With a limited set of code tools, extremely well written goals and example outputs the game goes out of its way to give you everything you need to succeed. With such a strong emphasis on STEM here in Australia this seems like the perfect sort of game to get into schools. It mixes fun with the learning outcomes of abstract thinking and generic puzzle solving that many teachers espouse.
I’ve only put 5 hours into EXAPUNKS so far but that was more than enough for me to say how much I enjoy sitting down with this game. The style is really cool and the addition of histograms when you finish a puzzle always give you cause to go back and re-optimize your solution. In an early level I wrote a file that had a really small size but a crazy amount of cycles, it wasn’t until I saw that histogram that I realized I could be more efficient. I wasn’t making use of a second EXA and by doing that I was able to drastically increase performance. Super cool!
For some reason whenever I play this game I feel like it should be done in windowed mode, perhaps because of the 90’s hacker vibe. While I enjoy watching my little EXA’s do their thing I find the visualization a little clunky and it often hampers my ability to debug my code. It might be because I am used to just stepping through things in an IDE but when I try to pair the robot with what I am stepping through it always feels like it is one command behind. That makes sense though, it should execute the command after I step over it, but when you start replicating EXA’s it can get a little messy so I typically try to ignore them as much as I can until I have my generic solution and then I just watch them a few times over and marvel at my genius.
EXAPUNKS came out of nowhere for me, and I love that about games, I refunded Far Cry 5 after having a pretty average time with it and just happened to hear about EXAPUNKS the same day. I took a bit of a risk grabbing something like this so soon after being burnt by a game I was sure I would love but I have to say I am glad I did.
I now have a whole new genre of puzzle games to look out for! Despite the heavy reliance on a keyboard this is one of those ‘perfect for Switch’ games if I could pair a small keyboard to my device. The levels are great little bite sized chunks that I could easily hit up on the train on the way to work. Maybe an iPad port would work well? Who knows, but I’ll be keeping my eye on you Zachtronics.