Review: SpaceChem

When I think of pro­gram­ming sys­tems that use two-dimen­sion­al grids to arrange items that are “exe­cut­ed” when the pro­gram is run, I think of Ami­gaV­i­sion. Where you can envi­sion a “cur­sor” mov­ing line-by-line through your one-dimen­sion­al code in more nor­mal lan­guages, the “cur­sor” in Ami­gaV­i­sion moved in two dimen­sions. An “if” state­ment, as an exam­ple, would choose between turn­ing right (say) and going straight. Ami­gaV­i­sion took this con­cept to con­struct mul­ti­me­dia presentations.

Space Chem Reaction

Space Chem Reaction

SpaceChem takes this idea in a new direc­tion: the “cur­sors” fol­low paths and are able to drag the “data” (the atoms and mol­e­cules) with them. Nodes on the path rep­re­sent actions. To make the chal­lenge inter­est­ing, there are two “Wal­dos” (which is what SpaceChem calls the cur­sor) in each reac­tor giv­ing the reac­tors a degree of par­al­lelism that requires the user to care­ful­ly syn­chro­nize their programs.

The two-dimen­sion­al pro­gram makes more sense here than in the abstract. One could even imag­ine the game extend­ed to 3D. In the abstract, there are only so many prob­lems that are well solved in two dimen­sions.  Stan­dard pro­gram­ming dog­ma, for instance, does­n’t have a two-dimen­sion­al style guide.  While SpaceChem sim­u­la­tions are good fun to devise, code and even opti­mize — as the game keeps track of the num­ber of sym­bols and num­ber of time slices that you use for each prob­lem — return­ing to an old solu­tion after time spent on oth­er reac­tions can leave one won­der­ing how things work.  Ref­er­enc­ing the Reac­tion above, the sys­tem allows notes as to the “in” and the “out” of the reac­tion, but the system(s) grow com­plex quick­ly and mod­i­fy­ing your work can have many tricky side effects.

Space Chem Level

Space Chem Level

Beyond the core mechan­ic of pro­gram­ming reac­tions, SpaceChem’s lev­els encour­age you to build larg­er enter­pris­es.  In this image, there are 5 reac­tors (mini­tures of the last image) each per­form­ing part of the giv­en task.  While there are dif­fer­ent types of reac­tors; in gen­er­al they all have two inputs, two out­puts and two wal­dos inside.  This encour­ages you to build and reuse reac­tors from one lev­el to the next.  This both teach­es a great mechan­ic of com­put­er pro­gram­ming while cau­tion­ing about it’s dark side — where try­ing to under­stand some­thing you wrote long ago for the pur­pos­es of mod­i­fy­ing it slight­ly can be sig­nif­i­cant­ly difficult.

While the lay­out of pipes and their cross­ing is rather straight­for­ward, it would make things more pleas­ing and quite a bit eas­i­er to arrange if the mod­ules could be rotat­ed to fit and flow bet­ter in the envi­ron­ment you’re giv­en.  The mol­e­cule notes being either per­ma­nent or “on” or “off” was also a bit clut­ter­ing for this screen — a mouse over option would have helped greatly.

All things con­sid­ered, it’s a fun and pol­ished game.  There’s a small gap between the tuto­ri­als that hold your hand and tell you what to do and the lev­els that only par­tial­ly hold your hand — the tran­si­tion isn’t as obvi­ous as it could be;  and the chem­i­cal “code” that you cre­ate is a lit­tle bit wild and unstruc­tured; but the game is def­i­nite­ly 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 con­tains a gen­er­ous por­tion of the game to hook you before you buy.

I can’t say that this is a “must have” gam­ing expe­ri­ence, but it’s def­i­nite­ly a “rec­om­mend­ed buy” rat­ing from me.

This entry was posted in Games and tagged , , , , , , , , . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *

 characters available