When I think of programming systems that use two-dimensional grids to arrange items that are “executed” when the program is run, I think of AmigaVision. Where you can envision a “cursor” moving line-by-line through your one-dimensional code in more normal languages, the “cursor” in AmigaVision moved in two dimensions. An “if” statement, as an example, would choose between turning right (say) and going straight. AmigaVision took this concept to construct multimedia presentations.
SpaceChem takes this idea in a new direction: the “cursors” follow paths and are able to drag the “data” (the atoms and molecules) with them. Nodes on the path represent actions. To make the challenge interesting, there are two “Waldos” (which is what SpaceChem calls the cursor) in each reactor giving the reactors a degree of parallelism that requires the user to carefully synchronize their programs.
The two-dimensional program makes more sense here than in the abstract. One could even imagine the game extended to 3D. In the abstract, there are only so many problems that are well solved in two dimensions. Standard programming dogma, for instance, doesn’t have a two-dimensional style guide. While SpaceChem simulations are good fun to devise, code and even optimize — as the game keeps track of the number of symbols and number of time slices that you use for each problem — returning to an old solution after time spent on other reactions can leave one wondering how things work. Referencing the Reaction above, the system allows notes as to the “in” and the “out” of the reaction, but the system(s) grow complex quickly and modifying your work can have many tricky side effects.
Beyond the core mechanic of programming reactions, SpaceChem’s levels encourage you to build larger enterprises. In this image, there are 5 reactors (minitures of the last image) each performing part of the given task. While there are different types of reactors; in general they all have two inputs, two outputs and two waldos inside. This encourages you to build and reuse reactors from one level to the next. This both teaches a great mechanic of computer programming while cautioning about it’s dark side — where trying to understand something you wrote long ago for the purposes of modifying it slightly can be significantly difficult.
While the layout of pipes and their crossing is rather straightforward, it would make things more pleasing and quite a bit easier to arrange if the modules could be rotated to fit and flow better in the environment you’re given. The molecule notes being either permanent or “on” or “off” was also a bit cluttering for this screen — a mouse over option would have helped greatly.
All things considered, it’s a fun and polished game. There’s a small gap between the tutorials that hold your hand and tell you what to do and the levels that only partially hold your hand — the transition isn’t as obvious as it could be; and the chemical “code” that you create is a little bit wild and unstructured; but the game is definitely fun beyond its price take ($15 on Steam). There is also a demo on Steam if you’re still unsure (see the steam link). The demo contains a generous portion of the game to hook you before you buy.
I can’t say that this is a “must have” gaming experience, but it’s definitely a “recommended buy” rating from me.