Wednesday, June 11, 2014

SpaceChem (Zachtronics Industries, 2011)

SpaceChem is an unappealing name for a game, but as the developers try to make clear in the tutorial, the game has about as much to do with real chemistry as Ace Attorney has to do with real law.  Which is to say, extremely superficially.  The best way to describe SpaceChem?  It's the greatest programming teacher you didn't know you wanted.

The history of "programming games" is about as old as programming itself.  One of my favorites growing up was Widget Workshop, a simpler version of Incredible Machine which allowed you to mess around with basic logic gates by disguising them in all sorts of colorful and cartoony ways.  When I was in college, we learned to program in Java by giving Karel the Robot a set of instructions that would allow him to investigate his environment.

In SpaceChem, the goal in each level is simply to turn some molecules into other molecules.  The reason that this is hilariously fake chemistry is that you do this via little robots, or "waldos," that physically pick up the atoms and carry them around.  Your job is to program the waldos, just like Karel.  However, the waldos do not walk around with their instructions, but rather the instructions are written onto each tile of the floor, like a set of street signs that the waldos must follow.  Whereas the complexity of Karel's tasks are limited by however many lines of code you're willing to write, the restrictions in SpaceChem are literally spatial, since each tile can only hold one instruction for each waldo.

But the real beauty of SpaceChem, and the thing that sets it well above other programming tutorials, is in the scale of its puzzles.  Since each reactor has limited space and only two waldos, a more complex job will require multiple reactors, with pipes between them carrying molecules in various stages of completion.  But the flexibility of the design allows you to choose how each job will be split up.  This requires some patient strategizing to say the least, since if one reactor turns out to be impossible to design, you'll probably need to start from scratch.  Even after completing one of these herculean assignments, then you have the option of trying to better your score by making your system work faster or using fewer reactors.

I suppose all of this sounds pretty boring, but let me tell you that each level of SpaceChem that I've solved has filled me with an embarrassingly real sense of accomplishment, that I've built something distinctly my own. Given the extremely open-ended design, solutions to the jobs can vary widely in ways that even the developers couldn't possibly predict, and my jaw has dropped when I saw what some SpaceChem players have managed to do with just one reactor.  And the developers were very smart, slowly introducing additions to the ruleset, and giving you just enough help to get you started.  The interface itself manages the game's complexity as cleanly as you could hope for, with keyboard shortcuts that let you build reactors quickly when you get better.  (You can also save a reactor design for future use, although I was never smart enough to utilize this feature effectively.)  Just stay well clear of the iOS version - this game demands a keyboard and mouse.

SpaceChem is a game with a weird selling point, but it's not hard to see why it inspires a great deal of enthusiasm among its fans.  I don't hesitate to say that it's the best puzzle game I've ever played and one of my favorite games, period.  My only complaint is that it's extremely long, so much so that I've still never beaten it.  (Part of that has to do with the fact that it's also extremely difficult, but that requires no excuses in my opinion.)  In fact, we'll find that to be the case with many of my favorite puzzle games.  I take great solace in the thought that there are still SpaceChem levels that I haven't beaten, and that one day I'll conquer those with ingenuity and determination.

No comments:

Post a Comment