Three Zachlikes

I deeply appreciate that Zachtronics is a thing.  We live in a pretty dark timeline, and it’s nice to know that somebody out there still has enough faith in humanity to devise not one, but several challenging games designed to stimulate and stretch the problem-solving bits of our brains.  You know, those bits that let you break down new and intimidating problems into manageable chunks that you can solve.  The bits of brainmeat that enabled humanity to dominate the earth with fantastical tools, but which lie dormant in us far too often, the bits whose potential we squander daily.  Those bits, you know the ones.

For the purposes of this review, I’m going to focus on the 3 Zachtronics games I’ve put the most time into: Infinifactory, Shenzhen I/O, and Opus Magnum.  I’m reviewing them as a whole here because each game shares a lot in common with the next, to the point that if I were to do each individually, I’d be repeating myself a lot.  On Humble Bundle (where I bought these games), they’re listed under a category called “esoteric programming”, and I like that term so much that I’ve stolen it.  For the record, I don’t have any special reason for excluding SpaceChem or TIS-100, other than the obvious: I’ve never played them.

Each of these games at its heart is about making things using a small pool of intermediary tools, by issuing basic instructions.  These tools are (usually) simple in function, but interact in complex ways.  Each game consists of a series of puzzles surrounded by a narrative framing device.  Each rates your solutions with a histogram showing where they lie compared to what others came up with.  This is done in terms of a few objective measures, such as the area it takes up, how fast it satisfies the problem, how much power it uses, or how much it costs.  Each is also quite difficult, though the degree of this difficulty varies depending on the game, your personal aptitudes, and also on how much practice you’ve had solving problems lately.

Shenzhen I/O and Opus Magnum both also feature a solitaire minigame; Shenzhen’s is somewhat similar to Freecell, while Opus’ is somewhat similar to Mahjong solitaire.  I like these, since it gives you a way to rest your mind from the puzzles for a little while, without having to close the game or alt-tab.  Opus’ solitaire game, Sigmar’s Garden, also gives small bits of characterization and story when you win enough.  I like both about equally.

Premise and Story

Infinifactory: Kidnapped by warlike aliens, you’re kept in prison and forced to build things for their armadas.  (But are they really forcing you if you’re having fun? *dramatic musical sting*)

Shenzhen I/O: You’re an engineer who moves to China to find work that uses your skills.  You work for a company that designs embedded circuitry for various devices.  The game pretends to be a desktop OS that you’re using for work (spoilers: I love that), so story comes in the form of emails from your boss and coworkers.

Opus Magnum: You’re a male alchemical genius named Anataeus, living in an alternate universe where alchemical machines run everything.  You master the alchemical transmutation engine to make various compounds and substances, as you navigate a story of intrigue and betrayal.

Opus is the odd one out here for a number of reasons.  For one thing, the other two don’t have you inhabiting a particular character.  You’re supposed to just be you, and so the character is a silent blank slate.  Anataeus Vaya is a person with a gender and a personality of his own, who talks to people.  I can’t say I personally care for this change, though I understand why it was done given Opus’ greater story focus and the way that story is told.  Having a blank slate character that isn’t silent would have demanded the presence of additional game systems, such as character customization and dialogue systems, that would have distracted from the twin main foci of the game: the puzzles and story.  There was already an unusual amount of polish put into Opus Magnum’s presentational aspects; It’s possible that Zachtronics simply didn’t have the budget or time to make the protagonist customizable on top of everything else.

I would point out, however, that it would have been a relatively simple thing to make one additional fixed character portrait for a female character.  Call her “Anataea” or something, and let me pick at the start who I am.  We don’t actually need selectable dialogue options or full customization to make this work, you could keep everything else the same.  One more portrait, and a variable for the first name instead of a fixed string.  Even Pokemon Crystal let you choose back in Gen 2.  I think they could’ve managed it in 20-damn-17.  This isn’t a deal-breaker or anything, I just feel obligated to point this stuff out since we still live in the timeline we do.  Girls can be asshole-genius alchemists too, y’all, that’s not an exclusively-male role.  We also like these kinds of games.

As interesting as Opus’ story is, I much prefer the more subtle Manhattan Project-style implications of Infinifactory, or the everyday ordinariness of Shenzhen’s near-future setting and “this is your job” conceit.  Their silent protagonists allow me to insert myself more easily and get immersed and invested in what I’m doing.  This is especially nice in Shenzhen I/O, because of the faux-desktop interface and the paper manual.

You read that right.  Shenzhen comes with a PDF and instructions for printing and assembling a manual using a 3-ring binder and some Avery tabbed dividers.  When it’s done, it looks just like an engineering manual from China, circa 1994 or so.  It has some printed emails talking about your job search and decision to move out of the country, a fake visa application you can fill out if you want, a reference card for the MCxxxx assembly language used in the game, product datasheets, all kinds of good stuff.  The manual is such a nice touch, not only because it introduces an almost-ARG-ish extension of the game into the physical world, but also because it contains information hidden within the fluff that you need to know in order to play the game.  The game itself even makes mention of the manual and points you toward it.  You’re told that your predecessor quit very quickly because they refused to read it, and your first puzzle (abandoned in progress by this person) has some commented-out code complaining, “why is this so hard? :(“.

Even the product datasheets and supplemental materials are fantastic, with top-notch writing that also conveys useful (but disguised) information for playing the game.  This is all great stuff, and I really commend whoever was responsible for designing this part of Shenzhen I/O.  It’s absolutely a stand-out feature and very well done.  More games should use devices like this!


Each of these three games features a wildly different take on the same core idea: turning specific inputs into specific outputs.

In the case of Infinifactory, space is divided into cubes, within and around a particular limited area.  In Opus Magnum, space is divided into an infinite hexagonal plane (except in production stages, where space is limited).  In Shenzhen I/O, you have strictly-limited space in which to place microcontrollers, logic gates, cables, et cetera, which is divided up in a grid.  Each microcontroller also has a limit to how many lines of code it can use for executing instructions, how many ports it has for each type of input or output, and how many registers it has for holding data.

In Infinifactory, you’re given blocks that get pushed out of fixed generators and need to be welded together or sorted in various configurations and then taken to a pickup point.  One of the early puzzles involves being given three blocks that need to be welded into a specific L-shape.  Another involves dividing up a single conveyor of ammunition boxes into 3 different conveyors.  You gradually build up new skills and knowledge about how to use conveyors, sensors, pistons, and a variety of other components.

My only real complaint is that the rules for how conveyors grab and move things that are more than 1 block wide are unintuitive, inconsistent, and just kinda look weird.  Something 3 blocks wide can be moved with only a single conveyor, and it’ll hang off the side as it goes.  Also, which conveyor gets priority when more than one of them is attempting to move something is also hard to grasp, since it seems to be based on cardinal direction, which is obtuse to say the least, and leads to products ending up several tiles to the left or right of where you thought they’d be.  Satisfying production requirements quickly becomes a process of trial and error, running and rerunning the factory on fast forward to see where your blocks are going to end up.  It’s also a bit strange that a sequence of rotator blocks moves things much faster than conveyors.

In Shenzhen I/O, you’re moving and changing signals and numerical values instead of blocks, using assembly code to fit a desired pattern of output.  An early puzzle, Pulse Generator, has you using conditional code to generate an alternating on-and-off signal whenever a button is held down.  Light-Up Signs has you designing an animated sign by turning on and off specific portions of it in a set sequence.  If this sounds intimidating, it’s because it is.  Shenzhen I/O is by far the hardest of these three games, and the puzzles I’ve described, difficult as they are, are some of the earliest ones.  Later puzzles involve the use of logic gates, memory chips, FM synths and miniature wi-fi units, processing signals between several microcontrollers to accomplish some really complex goals.  Don’t even get me started on Kelp Harvesting Robot, oh my god.

There is no tutorial, only the manual and your own abilities.  What keeps you moving forward is a combination of your own desire to complete puzzles as well as the emails you get before and after each puzzle, giving you more insight into your coworkers’ personalities and lives, company drama, and new challenges.  There are some military-related designs, but I don’t get the sense that this is meant to be sinister here, as it is in Infinifactory.  It’s just part of an engineer’s job.  The thing about this kind of design is, if you’re like me, you see this brick wall of difficulty as the best kind of challenge.  You’ll want to press forward just for the sheer bloody-minded sense of satisfaction and triumph of being able to say you overcame it.  Not everyone is wired up like that, however, and I think of these 3, Shenzhen is probably the game the fewest people will complete.

In Opus Magnum, you’re moving, changing, and attaching “alchemical proxies” (marbles) and then taking those products to a drop-off point, but you’re allowed to change where the inputs and outputs are.  You might be given an elemental water reagent and a glyph that turns elements into salt, and asked to create a product that’s one water attached to one salt, for instance (in fact, this is Stabilized Water, the first post-tutorial puzzle).  Movement is rotational instead of linear, and is accomplished by means of “arms” which can grab marbles, rotate them in place, spin around, and in the case of piston arms, extend and retract them.  You program these arms with a series of commands from a short list of possibilities.

In general, Opus Magnum’s puzzles are easier to initially complete than those found in the other two games.  It also has a more extensive and obvious tutorial than the others.  The idea of Opus seems to be making esoteric programming more accessible, and getting the player interested in optimization, since making your solutions smaller, faster, and cheaper is still really compelling and challenging.  Not that Opus is an easy game, far from it.  Things start off simple, but really ramp up once you get towards the end of chapter 3.

Opus also has a really nice feature in that there’s support for Steam Workshop puzzles people make, some of which are actually pretty okay!

Rhythm of Play

Each of these games’ puzzles can be divided up into 5 main stages of play.  First, you sit and stare at the problem and think about how you might go about finding a solution.  Next, you break up the main problem into its component parts and find smaller solutions to those.  Then, you piece together those solutions into the larger whole.  Then, you troubleshoot conflicts that arise, run simulations or step through your programmed instructions, and gradually arrive at the real answer.  Finally, having satisfied the completion requirement, you go back and optimize your solution until you’re happy with it.

Each game has a distinctly different rhythm to these phases.  In Infinifactory, phase 4 — stepping through, repeatedly running the factory and troubleshooting — dominates almost entirely.  Phase 1 can be somewhat prolonged as well, at least for me.  I hear people say Infinifactory is one of Zachtronics’ easier games; those people are liars.  Stacking things vertically is not at all obvious or intuitive, and even the tutorial puzzles took me quite a while to complete.

The effort split in Infinifactory is something like 15/15/15/50/5.  For me, going back after completion and optimizing solutions in Infinifactory doesn’t hold a lot of real appeal, both because of the clunky and unpolished conveyor mechanics, and because I spend enough time thinking about the problem and splitting it up that I do most optimizations during the problem-solving process itself, just as a consequence of getting it to work at all.  You also tend to have to repeatedly run the factory several times in order to see what’s going to really happen once the rubber hits the road, which can get repetitive.  By the time I arrive at a solution, the last thing I tend to want to do is jump back in immediately.

In Shenzhen I/O, phase 1 predominates by a large margin.  Once you know how to approach a solution, the solution itself almost falls out of you.  Occasionally, however, you do get a long fourth phase and have to figure out why something you thought would work isn’t working.  The effort split here is something like 45/15/10/25/5.  Verification of your solution also takes longer in Shenzhen, because you have to do 80 checks instead of producing 10 products (Infinifactory) or 6 products (Opus Magnum), and those checks vary up what’s coming in on your input, sometimes throwing you for a loop with edge cases.  Here, the reason I don’t usually want to go back and optimize a solution is due more to the sheer difficulty of arriving at them in the first place.  By the time I figure out a puzzle, I’m satisfied and proud of myself, but exhausted.  Optimizations can be hard to spot and fix in that mental state.  Maybe I’ll find more pleasure in it later when I’m better.

Opus flips this dynamic on its head in an interesting way.  Its effort split is more like 10/10/20/20/40.  You don’t have to spend very long thinking about the solution prior to slapping down a few things and making some attempts at the smaller bits leading up to it.  This encourages a very experimental mindset with little to no difficulty in backing out if things don’t work, which is very much not the case in the other two games.  Rerouting cables and rewriting code can be a pain in Shenzhen, and tearing up (or especially, rotating) a solution in Infinifactory requires starting almost from scratch for each adjustment.

The solutions themselves actually aren’t super taxing to arrive at, provided you don’t worry too much about keeping things streamlined on your first attempt.  The rules for marble movement and collision are also really clear and easy to understand, so you don’t have to waste time running and re-running your designs to make sure nothing is crashing into anything else or just to understand how it even works, as you do in Infinifactory sometimes.  There’s even a handy button to show where marbles where when you turned off your most recent test, which is absolutely indispensable for anything past chapter 3.  There’s such a high degree of flexibility, and the paths to optimization are so clearly visible and easy to start thinking about, that by far the most effort you’ll put into each puzzle will be after it’s done.  I came up with 4 wildly different solutions just for Stabilized Water before I did anything else, and I was having a lot of fun doing it.

It’s a small thing, but Opus also makes it really easy to share your solutions, with a built-in gif-generating button upon successful completion.  Opus is also conducive to making machines that look really cool just to watch them go.  It’s a game that’s absolutely built for making cool gifs, and the fact that it knows and embraces that and makes it easy is major points from me.

Overall Impressions

Zachtronics is a company that makes games that are well worth your time.  These 3 in particular are quite good, though Infinifactory is not without its issues in presentation and polish.  But cut ’em some slack, it came out several years ago.

If you’ve never played a Zachlike before and want an accessible introduction to this sort of thing, you need to check out Opus Magnum immediately.

If you’re willing to put up with some unpolished mechanics for the sake of a really neat setting and story and some truly brain-smashing challenges in 3D space, check out Infinifactory.

And then, when you’re ready to graduate to the big leagues, step on up and emigrate to China for Shenzhen I/O.  Print out the paper manual, too.  That’s part of it!

Whichever one you get into, though, you’re in for a treat.  These are games that stretch and enrich your mind and provide a kind of challenge that will basically ruin any other puzzle game for you.  If anything I’ve said resonates with you, I urge you to give one of these games a try as soon as you possibly can.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this:
search previous next tag category expand menu location phone mail time cart zoom edit close