# TIS-100

TIS-100 is a programming/puzzle video game developed by Zachtronics Industries. The game has the player develop mock assembly language code to perform certain tasks on a fictional, virtualized 1970s computer that has been corrupted. The game was released for Windows, OS X, and Linux personal computers in July 2015. A mobile port was released for iPadOS in January 2016.

## Gameplay

Within TIS-100, the player is said to have come across a malfunctioning TIS-100 computer ("Tessellated Intelligence System") and its manual, based on early computers of the 1980s. The computer is presented to the player as twelve separate processing nodes laid out in a four-by-three grid. Each node has a single processor register to store a numerical value as well as a backup register. Nodes also hold their own assembly language program as entered by the user. The assembly language, a simplified version of real-world assembly languages, allows the node to accept external input or a numerical value sent from an adjacent node, perform basic math and logic operations, store and backup the current data value, and then send results to an adjacent node or to the program's output. Later puzzles introduce stack nodes and an output to a simple 5-color graphics display.
The player is presented with a series of puzzles that require them to program the nodes to perform specific actions on a set of numbers from one or more input terminals to produce pre-determined output at other terminals. For example, one task requires the player to double the value of the input at the output terminal. The game presents the list of inputs and the target output values that it is expecting and requires the players to develop the code for each node to match this; if during execution the output nodes receive unexpected outputs, the player will have to rework their solution. Not all nodes are available in certain puzzles, so the player will need to route around these nodes. The game offers the player the ability to step through the execution of the code and insert debugging statements to determine logic issues within their code. Once the target output conditions are met, the player is considered to have solved the puzzle. The nodes that are disabled in puzzles contain cryptic messages related to the narrative of the game and which contain more information that can be accessed when the entire game is completed.
As with previous Zachtronics games such as SpaceChem and Infinifactory, once the player completes a puzzle, their solution is compared to other players through online leaderboards. The player is ranked based on the number of nodes used, the number of instructions within their code, and the number of instruction cycles used. The game allows the player to return to earlier puzzles to better their solution. The game launched in early access in June 2015 with about 25 puzzles within the game, and another 25 were added by the time of its official release the following month.

### Computer architecture

A TIS-100 "machine" is made up of 12 interconnected nodes on a grid, either a compute node or a stack memory module. Each compute node may hold 15 instructions and each memory node may hold 15 values. Nodes at the top or the bottom may be connected to external sources of input or output respectively.
Each TIS-100 compute node has two registers called ACC and BAK. ACC is used by most instructions, while BAK is only accessed by two instructions, one for swapping and one for copying. The instruction set contains 13 documented instructions for arithmetic, basic flow control (conditional jump), no-op, and sending data to adjacent nodes. The game also includes undocumented instructions, with HCF (reboot game) being the first known undocumented instruction.
The TIS-100 architecture has also been implemented outside of the game in an emulator, intended to be used as an esoteric programming language.

## Development

TIS-100 was based on an idea that Zach Barth, the founder and lead game designer of Zachtronics, had years prior. The concept was named The Second Golden Age, which was set in the Middle East sometime in the near future, in which the player would program nanobots to be injected into the player-character's blood as to be able to solve various types puzzles akin to Myst. One aspect would be the player-character coming across a used electronics store and finding an old computer with corrupted areas, which as they worked to clear up, would discover these corrupted areas contained the core of an artificial intelligence. While developing Infinifactory, Barth wanted to try to start work on The Second Golden Age but found the effort, concurrent with Infinifactory, was far too difficult. However, he had completed the assembly-language puzzle aspect, and decided to go ahead and refine only that portion as a full game. To finish off the game, he worked with Keith Holman to write the language's manual inspired by similar computer manuals of the time, and with Matthew Burns to craft a simple story around the game. They used concepts from a Mondo 2000 infographic based on cybertech fashions to write the tongue-in-cheek narrative for the game and manual.
TIS-100 was released into Steam Early Access on June 1, 2015. Barth stated that he took a similar approach to Early Access as with Infinifactory, providing a game that was nearly complete to gain suggestions and improvements and the ability to add more content before releasing the final product. Barth estimated that the Early Access phase would last 1–2 months. The final version was released on July 20, 2015. A mobile port published by Metaversal Studios featuring twenty levels titled TIS-100P was released exclusively for iPadOS on January 8, 2016.

## Reception

In its article "Can Videogames Teach You Programming", Rock Paper Shotgun called the game's technology "relevant" and said "if you can survive its stiff challenge, you’re ready to code".