Recently, I saw a new game from Zachtronics Industries, TIS-100, which was released on Steam as an early access title on the first of June. In some ways, calling it a game is overstating it: it's little more than a collection of programming problems, with a little story to give it some structure. The catch is that you're programming in an assembly language on a virtual machine with unusual architecture; problems beyond the simplest will generally require you to take advantage of parallelism (which is the primary distinguishing feature of the VM), resulting in novel solutions for ordinary problems.
Obviously, a game like that has a rather limited target audience. Case in point: I have myself previously created a little VM with a fake assembly language to play with. The game is clearly made just for me, but how many others are likely to be similarly interested? About 11,000, so far (Galyonkin, 2015). It's a minor hit.1
The concept of programming as gameplay isn't new. Indeed, Zachtronics's earlier game, SpaceChem, is also an exercise in parallel programming, though dressed up in fancier clothes. Way back in the mists of time,2 Robot Odyssey challenged players to program the titular robots to solve puzzles. And on the more-programming-than-game end of the spectrum, we have Core War3 and a multitude of web sites in the vein of Project Euler or CodinGame.
I've been enjoying TIS-100, but more than that, I think it's singularly impressive to release a game of this kind. Certainly, there are games that trade on their difficulty (
TIS-100 is difficult because the thinking required to solve the puzzles is difficult. It is perhaps inaccessible, because it consists of nothing else but the tools to solve the puzzle. Its graphics are simple because everything you need to solve the puzzles is a text-mode interactive debugger, and that's what you get. Like a sudoku puzzle or a crossword, TIS-100 is a completely pure puzzle game: the game takes place in your head, and the software keeps score.
It is not by chance that TIS-100 so distinguishes itself from other games. During the production of Infinifactory, Zach Barth, the founder of Zachtronics, wanted to make a game with a smaller team–something more-indie-than-indie–to get back to his roots as an indie developer. The project turned out to be too great in scope, but from its wreckage was salvaged a programming minigame which became TIS-100 (Barth, 2015). Viewed as an indie developer's attempt to make something even more indie, with the understanding that it was a small part of something larger, the design makes sense.4
The game's manual, too, reflects the niche targeted by the game. Who reads a manual, you ask? When it is positioned as a technical document describing the instruction set of a virtual machine, the answer to that question is: programmers. The manual is presented as the in-universe manual for the TIS-100 computer, previously the property of the player character's Uncle Randy, including handwritten notes and highlighting. This was part of Zachtronics's attempt to make a game with "an irresistible value proposition. For us, that's a game with a 14-page technical manual that we designed, printed out, marked up and scanned back in again" (Barth, 2015). The manual is reminiscent of the feelies accompanying Infocom games, among others, in years past.5
Like its predecessor, SpaceChem, TIS-100 encourages players to perfect their solutions, optimizing for either execution speed, least number of nodes used, or least instructions–goals which are often contradictory, requiring multiple solutions.
Perhaps unsurprisingly, given that it is a game about programming, the players of TIS-100 have created some auxiliary tools, including TIS-100 PAD,6 which allows users to more easily share solutions, and a variety of TIS-100 (the virtual machine, not the game) emulators.7
In addition to this unsolicited community participation, with the release of the specification editor, which allows players to make their own puzzles, a puzzle design contest was announced. Twenty-five puzzles will be selected from the submissions for an official bonus campaign.
The feel of TIS-100 is both nostalgic and quite modern. It's an intriguing combination, and I recommend it to anyone still interested after hearing me call it "a collection of programming problems." Coders, no prior experience with assembly is needed. Others, if you like this game–try coding. You'll probably like that, too.
Also from 1984, described in a Scientific American article (Dewdney, 1984). It's based on a still earlier programming game, Darwin, which was played in 1961 and described publicly in 1972. More information in McIlroy (1971). ↩
However, Barth wrote in a post mortem of SpaceChem that SpaceChem was too difficult and inaccessible. New titles were forthcoming: "New titles, I might add, that are hopefully more accessible than SpaceChem!" (Barth, 2012) ↩
Back when you got something for your money! Even application software used to have much more bulk to it. ↩
|Zachtronics LLC||Developer / Publisher|