Played on Windows
Zachtronics is my spirit animal of the video game industry. There’s something about Zach Barth’s games that make me really excited to play them. I’ve owned every game he’s put out on Steam. I still remember when EXAPUNKS was announced, I saw just the letters “Zach” based and got excited, so was that excitement warranted?
Before we really dive in, I will say, this is an Early Access game, however, Zachtronics has published it as a Beta, in which the game is fully completable and should have almost no bugs. They are still working on minor fixes and getting community feedback, which they certainly have gotten. I normally avoid Early Access unless I have to play something for Humble Monthly Bundle, but for the fact that EXAPUNKS, as it stands, is fully playable and I’d call it close to finished. Patches are coming and fixes are being made, but the main game is complete. As such, I feel like this is an Early Access game I’m willing to review properly, and I don’t think the game looks worse for it.
As you start EXAPUNKS, it’s a little weird. You first meet someone named Nivas offering to get you drugs for your disease. You then start by typing in a receipt from an executive for their expense report. It’s literally doing what Optical Character Recognition (OCR) already does for money, and it’s one of the few parts of the game where a big opportunity is missed. It’s not a bad section and I like the idea that “there’s not a lot of ways to earn money” but there are a couple of major issues I have at this point of the game.
The story of the game starts by giving you the option of better and faster ways to earn money, to get drugs that you need for your sickness. The drugs aren’t available right now and their price is going to skyrocket soon most likely, so you’re in trouble.
My biggest issue is that you don’t feel like you are in trouble. This is the beginning of the game, and you’re doing the OCR for money. However, you only do a single receipt, so you don’t get to feel the weight of the drudgery. I realize people would hate to do ten or twenty of them, but maybe two or three would work. Throw the player in after having done 6998 of these, so they earn the 700 dollars for medicine they needed, and then they realize they have to start over for the next payment and start the story there.
The work the player is doing is rather odd as well. We have EXAs in this world, which are extremely tiny robots that can do anything even hack the human body. And yet we don’t have OCR for companies or it’s cheaper to have humans do it? Maybe even have the player forced to look at a failed OCR to find mistakes so they could fix an issue with the data entry rather than doing data entry that we’ve had for a couple of decades if not more.
That’s a somewhat minor complaint, the other complaint is that the game talks about this Phage disease which is a major plot point. The player has it and it’s supposed to be affecting his body. The game is sold on Steam with the promise that you not only hack computers but hack your body, and the reason you need to is you have this disease called the Phage. The problem though is much of the game is built on this and it’s an interesting idea, but it’s never explored or made real inside the game itself. You will use your EXAs to cure you of pieces of the Phage, but the problem is it’s curing things you’re not experiencing. The game talks about not having control of your (left?) arm, but you never see it or feel it. The player is easily able to code, without any problems. There are also points where your vision is injured, and again you don’t have any negative repercussions from this.
This is just an opportunity that’s lost, but the idea that I’m hacking my own body to make myself better sounded amazing and had a lot of potential. EXAPUNKS just doesn’t make it feel as interesting as it could, and I wish there was something more that tied me to the feeling of helplessness the game wanted to present. A cutscene, even a coding challenge where I had to do something that was a little frustrating for a piece, or a cool visual trick when I’m having eye problems and can only look at the mouse cursor could have brought the problem to life. None of that happens though, you just “have the Phage” and then you fix parts of your body that doesn’t change anything.
These are really the big issues I have with the story. In the initial scene, you meet Nivas, a delivery girl who offers you meds. Soon after that, you’ll meet Ghast who writes a ‘zine, similar to 2600, and Ember-2, a Computer AI. Each character is interesting, though Ember-2 is really the only character that’s around long enough to have a lot of character development. The game tries to develop Ghast and Nivas as well as having a third character pop up, but the fact is… there’s really not enough time for the other two to have any development, and the third character, only appears for a single scene to set up a level, which could probably have been done with Nivas instead.
Ember-2 though does get a lot of interesting development, but it’s a bit backloaded, the final three or four missions have a number of big reveals worth hearing, but it comes very late in the game.
Much of the story is delivered like this, with only Ember talking to you in the window, with voice acting
At the same time, I’m talking about the story, in a game where the focus is on programming robots. If you’re coming for a story, you’ll get an acceptable one here, but not one worth buying the game itself. You should be picking this game up for the programming, and the story is the icing on the cake. I am nitpicking the story because there are small flaws that really took me out of the experience, and could have improved the initial experience, but we should talk about the actual gameplay.
Perhaps I should say “gameplay” in quotes, as Exapunks is a rather odd game. After the first level where you type in the receipt, you meet with Ghast, as I mentioned, and he hands you a ‘zine. You can open this ‘zine as a PDF or one of two printable versions. This is actually your instruction manual for the game. It’s a rather clever delivery method, and I absolutely adore it.
Inside the zine is “Ghast walks u thru it.” This is actually a tutorial for the beginning of the guide that takes you through the next four levels. The first two levels pretty much just require you to type in a solution in the book but also explains exactly what is happening, and it’s worth following if you’re new to programming or just don’t get it right away.
The third and fourth “tutorials” are more focused on suggestions, trying to get you to figure out the solutions while teaching you the tools of the trade, communications between two EXAs, and loops and conditionals. After that, the game throws you in the deep end and there are no more hints, it’s time to actually code your solutions from scratch, and in reality, that’s where the game is going to be for the rest of the levels.
After the “Ghast Walks U Thru it” section in the manual, there are a few hints about how you can use runtime errors (though it doesn’t show you the true power of them) and then the entire 27 instructions that the EXAs understand over four pages. The game also hints there’s a second and a third ‘zine in the game, but I’m going spoil a small amount. There are a few macro instructions, meaning code that executes during your compile before your execution, that might make your code easier to read, but there are no additional instructions in the code base that I know of, which means in the first book, you have 100 percent of the knowledge you need for the game, and everyone’s code is based on those instructions.
Then you start programming code like this. Here I hack a road sign.
However the ‘zine has a lot more in it, and what’s great is the game plays with the concept of the magazine. It’s worth leaving the ‘zine open in a browser (the game automatically opened mine in IE/Edge, ugh) or printed out, so you can reference it as needed, as you will need it.
What I particularly liked with the ‘zine is everything is written in a hacker style where the writer is explaining something that they shouldn’t have had access to or shouldn’t be saying. I felt like I was flipping through one of my old 2600 magazines, and seeing people exploiting systems and talking about how they worked behind the scenes. It’s really a great memory to unearth and the fact that Zachtronics taps into it so well is amazing. The game constantly made me have to go look something up in those pages, and just something about having to flip back and forth made me enjoy the experience more because I felt I was getting more than just hints about a video game, but rather insider information about real systems.
The code used for programming is actually rather good as well, it’s no longer just assembly instructions executing, but rather instructing a little robot. The two new major commands are Grab, which picks up a file, and Link, which transfers to a new computer on a network, are unique and while there are obvious links to both TIS 100 and Shenzen I/O in the coding, this feels like a completely different game while in the same vein. Still, beware, you will be programming once again, though this time they are little robots.
The problem set the game has you tackle is diverse as well, however, the one thing I am disappointed in is that there’s a number of really interesting puzzles and items, such as early on you have to work with a highway sign, the minute you solve that puzzle you never touch another highway sign. It might be understandable for some areas, but almost every page of the ‘zine is really only used once, with the exception of using a modem which is used at least three times and is rather well developed.
Another area the game could have gone deeper in is a great little statistics problem with baseball players. It is a great problem set, but nothing is done with it after that one request. It’s a shame because there’s a lot of really inventive puzzles here, that could have a harder version of them.
Still, those three modem puzzles are spread out over the entire game so you’re coming back after gaining a little more skill in other puzzle areas and tackling a harder request, and when it does that, it’s well done. The problem is it’s never done on any other system the game has you play with.
Skipping the four tutorial puzzles, there are 30 normal puzzles here, and that’s a good number, but like I said I wanted more. There are also 5 levels where you play against other players/machines and have little EXA battles, these are required for progression and I’ll talk about them in one second. There’s also a “Russian” version of Freecell, a Gameboy that you can program for, a “Japanese” match three games, and a way to make your own levels for the game if you just want to spend your time doing something other than programming.
Battle programs are interesting and unique twists to the game. Here you have to spawn more EXAs than your opponent.
The EXA Battle levels are actually really interesting. There’s a set scoring system for how the game will score a battle, as well as rules about using kill commands, and the goal is to not only beat the other EXAs instructions but also to win a majority of the 100 battles. I did have two problems with the battles, however. The first is that they are required, and they take a bit of a different skill set to tackle so you may get stuck. You only have to beat the default AI to proceed, but the last battle I wasn’t getting. I wasn’t sure if I understood it, and had to check online, but then I found out I was missing a rather obvious approach to it and changed one line in my program to beat it in the next attempt. If I didn’t have the help online I might have been stuck there, and being required to complete them is a little annoying, but I can accept that.
The other problem I found that you play against your friends, but I only have one friend who has played EXAPUNKS so far, and he didn’t even beat the final battle level. I wouldn’t mind having a few random players to play against and stomp, however, the game only lets you play the default AI, and your Steam friends. Still I enjoyed the idea, it’s just limited in who you can challenge, and hopefully, that may change in the future.
On the other hand, the first challenge is straight out of Hackers, you and an opponent are trying to get their videos played in a tv studio to earn points. Yeah, like I said, it’s Hackers, and honestly, I had a blast playing it.
The rest of the game is challenging as well. Each EXA in the game is given two registers as well as a file pointer and a communication pointer, and that’s it. You can spawn as many EXAs as you want in most cases, though communication will eventually challenge you.
At the beginning you start to see how powerful EXAs are and how much they can do but as you progress you’ll quickly realize how limited two registers are (and I remember in TIS-100 what I’d have done for a second register). In the early game you can just use single EXAs to accomplish most levels, but eventually, you’ll be tasked to do things that require far more than just a single EXA and the game will force you to push your little robots farther than you can imagine. I didn’t have too much trouble outside of the final puzzle, but I program for a living, however it is a good progression of skills and I don’t feel the game pushes the player to make massive logical leaps, but rather pushes the player to think outside of the box.
And of course leaderboards, this is why I hack, to top those leaderboards.
In addition, previous games have annoyed me by limiting the number of instructions a processor could store. That’s been changed and lines of code are now limited by the total number of lines written for the entire solution, but the challenges are more in-depth. The amount of stuff I was able to do with just those limitations though is amazing. However the code does become challenging to write, and I annoyed my wife a couple times by muttering to myself and writing down cryptic code pieces as I walked through my code trying to get a simple bubble sort working. The code was created, it worked, and I passed the challenge and felt great. Later though, I was blown away because people online had claimed they did heap sorts instead of a bubble, which are significantly harder tasks, and that’s very impressive to me.
Then of course once you code up a solution, you have to run it, and after you beat the first run, the game makes you run the code 100 times on different testbeds. That’s where you will prove that not only can you get the right answer, but you also can develop a code that will get the right answer as well. The good news is you can change to any testbed so there are no surprises, and if a testbed failed you can tackle that one, but there will be some tricks involved in some of these challenges.
And it wouldn’t be a Zachtronics game if the game didn’t take your score and then put it on a leaderboard, and that’s often been my favorite part of the series. But I’ll be honest, I didn’t attempt to top many leaderboards, yet. I wanted to get through the game, and some of the challenges are amazingly hard, requiring quite a bit of code. At the same time, I want to come back and tackle them.
In the past you only saw your friends scores, however, EXAPUNKS also gives the option for “TOP_PERCENTILE” And “TENTH_PERCENTILE” basically telling you what the best player has earned, as well as the what the top ten percent of players have cracked. With only one friend having played this game and being able to beat him on many of the challenges, I’m thrilled to be able to see how the entire world has presented, but some of those numbers are scary low. Kudos to the fans who are topping these boards, because it’ll take dedication to match some of these numbers.
At its core, EXAPUNKS is a programming game and if you’ve tried TIS-100 or Shenzen I/O and didn’t like it, this one might not change your mind. If you’re interested in programming, or just like Zachtronics games, this is an easy purchase, but if you’re curious about it, I’d say try to find a copy of the ‘zine and look through it. It might scare you off, but it also might get you interested in trying the full game. EXAPUNKS is really fun and rewarding in a way that most video games aren’t. If you enjoy optimizing builds in RPGs, or action games, or tricking AIs and exploiting games, there’s something really interesting here along those lines. At the same time, I can admit it’s not for everyone, but this is the game that gets me excited and I think everyone should give it a look even if it might not be for them.
I have a hard time trying to give this game anything but a
Maybe that should be a “Programming 5/5” or “4/5++” but that’s the thing, for me, I think it deserves that 5, and while the story is flawed, I can’t really fault it for that. I did beat the game in 17 hours and that’s not a ton, but there’s more optimization for me to do. At the same time, I wrote Zachtronics, and they said they are working on bonus puzzles. If so, I’ll be glad to plug back in and tackle them, though seeing what the bonus puzzles were on Infinifactory, I’m a little worried as that’s where the difficulty might spike. Either way, I’m thrilled to have played this and I hope others will give it a shot.
Final Thoughts: Another Zachtronics game and another excellent experience. It’s programming, it’s debugging, it’s optimization, this time with tiny robots to do your will. It’s unique and different, I love it.
Stats: 19.1 hours 6/14 achievements, with a desire to return to optimize more.