TIS-100 | |
---|---|
Developer(s) | Zachtronics Industries |
Publisher(s) | Zachtronics Industries |
Designer(s) | Zach Barth |
Engine | Unity |
Platform(s) | Microsoft Windows, OS X, Linux, iPad |
Release | |
Genre(s) | Puzzle, programming |
Mode(s) | Single-player |
HALTANDCATCHFIRE achievement in TIS-100: Crash the TIS-100 with the hidden opcode. Find guides to this achievement here. TIS-100 is a puzzle game about a fictional 1980s computer. The player must repair the computer by reprogramming corrupted code segments, using a limited form of assembly language. Each completed puzzle allows the player to reveal more of the secrets hidden within the computer, allowing them to learn more about its history and purpose. TIS-100 is a full version game only available for Windows, being part of the category PC games with subcategory Emulators. More about TIS-100 Its current version is 2016 and was updated on 1/04/2017. It's available for users with the operating system Windows XP.
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 virtualized 1970s computer that has been corrupted. The game was released for Microsoft Windows, OS X, and Linux personal computers in July 2015.
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 execution will cease and 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.[1]
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,[2] and another 25 were added by the time of its official release the following month.[3]
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.[4]
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.[5]
The TIS-100 architecture has also been implemented outside of the game in an emulator, intended to be used as an esoteric programming language.[4]
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.[6] 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.[6]
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.[7] The final version was released on July 20, 2015.[8]
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'.[9]
TIS-100 is an open-ended programming game where you solve small coding puzzles in the assembly language of a multi-processor virtual computer.
TIS-100 was released for Windows, OS X and Linux in June 2015 and for iOS 6.0+ in January 2016.
The TIS-100 has 12 nodes which can be virtual CPUs or stack nodes. The virtual CPU supports 13 instructions, 2 registers, 4 ports and 2 pseudo-ports:
Instruction | Description |
---|---|
NOP | do nothing |
MOV SRC,DST | copy data from SRC to DST |
SWP | exchange ACC and BAK |
SAV | copy ACC to BAK |
ADD SRC | add SRC to ACC |
SUB SRC | subtract SRC from ACC |
NEG | negate ACC (ACC = 0 - ACC) |
JMP LABEL | transfer execution to LABEL |
JEZ LABEL | transfer execution to LABEL if ACC = 0 |
JNZ LABEL | transfer execution to LABEL if ACC ≠ 0 |
JGZ LABEL | transfer execution to LABEL if ACC > 0 |
JLZ LABEL | transfer execution to LABEL if ACC < 0 |
JRO OFFSET | transfer execution to an offset relative to the current instruction |
HCF | halt and catch file (secret steam achievement command) |
Name | Description |
---|---|
ACC | the accumulator register |
BAK | temporary storage register |
NIL | equivalent to 0 |
UP | communication port to the node above |
DOWN | communication port to the node below |
LEFT | communication port to the node on the left |
RIGHT | communication port to the node on the right |
ANY | pseudo-port, communicate with the first node which is ready |
LAST | pseudo-port, communicate with the last node used by ANY |