The INPUT node will summon an atom to the input area, PICK UP will pick it up, so that the instruction pointer carries the atom around the track, until the PUT DOWN node is reached, and then the OUTPUT node sends it off. Each square can have 0 or 1 arrows and 0 or 1 instructions. It then follows the path traced by the blue arrows. The blue instruction pointer (the hollow circle) starts at the START node. Here is the solution to one of the early puzzles involving simply shuffling a molecule from the input area (left) to the output area (right): The difference between SpaceChem and text-based assembler is that the “memory” is a 2D grid, the instruction pointer moves on a two-dimensional track of your choosing, and the data to be manipulated is represented by chemical atoms which can be bonded together. It has two parallel threads of execution, each with an instruction pointer (called a “waldo”) and a series of instructions that are rather familiar: input, pick up (load), put down (store), output, and later on: conditional execution. SpaceChem is rather close to assembly language programming. Now that we’ve set out its flaws, we can go on to look at why I believe SpaceChem to be the best programming game yet made. Its interface is rather, well, austere (see picture below), the tutorial is a bit sparse, and it’s difficulty curve is a lesson in what the function looks like. SpaceChem is a programming game, through and through. For starters, it has a dull, misleading name: it may sound like a chemistry game, but it’s got only slightly more relation to chemistry than Angry Birds has to birdwatching. In this series on games that involve programming as part of playing, I’ve so far covered RoboRally and LightBot, and this time it’s on to SpaceChem.
0 Comments
Leave a Reply. |