TIS-100 | |
---|---|
Developer(s) | Zachtronics Industries |
Publisher(s) | Zachtronics Industries |
Designer(s) | Zach Barth |
Engine | Unity |
Platform(s) | Windows, OS X, Linux, iPadOS |
Release | Windows, OS X, Linux July 20, 2015 iPadOS January 8, 2016 |
Genre(s) | Puzzle, programming |
Mode(s) | Single-player |
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.
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. [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] A mobile port published by Metaversal Studios featuring twenty levels titled TIS-100P was released exclusively for iPadOS on January 8, 2016. [9]
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". [10]
ELIZA is an early natural language processing computer program developed from 1964 to 1967 at MIT by Joseph Weizenbaum. Created to explore communication between humans and machines, ELIZA simulated conversation by using a pattern matching and substitution methodology that gave users an illusion of understanding on the part of the program, but had no representation that could be considered really understanding what was being said by either party. Whereas the ELIZA program itself was written (originally) in MAD-SLIP, the pattern matching directives that contained most of its language capability were provided in separate "scripts", represented in a lisp-like representation. The most famous script, DOCTOR, simulated a psychotherapist of the Rogerian school, and used rules, dictated in the script, to respond with non-directional questions to user inputs. As such, ELIZA was one of the first chatterbots and one of the first programs capable of attempting the Turing test.
The Intel 8080 ("eighty-eighty") is the second 8-bit microprocessor designed and manufactured by Intel. It first appeared in April 1974 and is an extended and enhanced variant of the earlier 8008 design, although without binary compatibility. The initial specified clock rate or frequency limit was 2 MHz, with common instructions using 4, 5, 7, 10, or 11 cycles. As a result, the processor is able to execute several hundred thousand instructions per second. Two faster variants, the 8080A-1 and 8080A-2, became available later with clock frequency limits of 3.125 MHz and 2.63 MHz respectively. The 8080 needs two support chips to function in most applications: the i8224 clock generator/driver and the i8228 bus controller. It is implemented in N-type metal–oxide–semiconductor logic (NMOS) using non-saturated enhancement mode transistors as loads thus demanding a +12 V and a −5 V voltage in addition to the main transistor–transistor logic (TTL) compatible +5 V.
In computer programming, a macro is a rule or pattern that specifies how a certain input should be mapped to a replacement output. Applying a macro to an input is known as macro expansion. The input and output may be a sequence of lexical tokens or characters, or a syntax tree. Character macros are supported in software applications to make it easy to invoke common command sequences. Token and tree macros are supported in some programming languages to enable code reuse or to extend the language, sometimes for domain-specific languages.
The Zilog Z80 is an 8-bit microprocessor designed by Zilog that played an important role in the evolution of early computing. Software-compatible with the Intel 8080, it offered a compelling alternative due to its better integration and increased performance. The Z80 boasted fourteen registers compared to the 8080's seven, along with additional instructions for bit manipulation, making it a more powerful chip.
The IBM 709 is a computer system that was initially announced by IBM in January 1957 and first installed during August 1958. The 709 was an improved version of its predecessor, the IBM 704, and was the third of the IBM 700/7000 series of scientific computers. The improvements included overlapped input/output, indirect addressing, and three "convert" instructions which provided support for decimal arithmetic, leading zero suppression, and several other operations. The 709 had 32,768 words of 36-bit magnetic core memory and could execute 42,000 add or subtract instructions per second. It could multiply two 36-bit integers at a rate of 5000 per second.
A programming game is a video game that incorporates elements of computer programming, enabling the player to direct otherwise autonomous units within the game to follow commands in a domain-specific programming language, often represented as a visual language to simplify the programming metaphor. Programming games broadly fall into two areas: single-player games where the programming elements either make up part of or the whole of a puzzle game, and multiplayer games where the player's automated program is pitted against other players' programs.
CARDIAC (CARDboard Illustrative Aid to Computation) is a learning aid developed by David Hagelbarger and Saul Fingerman for Bell Telephone Laboratories in 1968 to teach high school students how computers work. The kit consists of an instruction manual and a die-cut cardboard "computer".
The Parallax P8X32A Propeller is a multi-core processor parallel computer architecture microcontroller chip with eight 32-bit reduced instruction set computer (RISC) central processing unit (CPU) cores. Introduced in 2006, it is designed and sold by Parallax, Inc.
The Little Man Computer (LMC) is an instructional model of a computer, created by Dr. Stuart Madnick in 1965. The LMC is generally used to teach students, because it models a simple von Neumann architecture computer—which has all of the basic features of a modern computer. It can be programmed in machine code or assembly code.
In computing, an emulator is hardware or software that enables one computer system to behave like another computer system. An emulator typically enables the host system to run software or use peripheral devices designed for the guest system. Emulation refers to the ability of a computer program in an electronic device to emulate another program or device.
SpaceChem is a puzzle and indie game by Zachtronics Industries, based on principles of automation and chemical bonding. In the game, the player is tasked to produce one or more specific chemical molecules via an assembly line by programming two remote manipulators that interact with atoms and molecules through a visual programming language. SpaceChem was the developer's first foray into a commercial title after a number of free Flash-based browser games that feature similar puzzle-based assembly problems.
Zachtronics LLC is an American video game developer, best known for engineering-oriented puzzle video games and programming games. Zachtronics was founded by Zach Barth in 2000, who serves as its lead designer. Some of their games include SpaceChem, Infinifactory, TIS-100, and Shenzhen I/O. Infiniminer (2009) inspired the creation of Minecraft.
In computer science, bare machine refers to a computer executing instructions directly on logic hardware without an intervening operating system. Modern operating systems evolved through various stages, from elementary to the present day complex, highly sensitive systems incorporating many services. After the development of programmable computers but prior to the development of operating systems, sequential instructions were executed on the computer hardware directly using machine language without any system software layer. This approach is termed the "bare machine" precursor to modern operating systems. Today it is mostly applicable to embedded systems and firmware with time-critical latency requirements, while conventional programs are run by a runtime system overlaid on an operating system.
Infinifactory is a puzzle video game developed and published by Zachtronics, initially released on Microsoft Windows, OS X, and Linux on June 30, 2015. The game was later released on PlayStation 4 in December 2015. In the game, the player takes the role of a human abducted by aliens and forced to construct assembly lines to create certain objects for apparently-nefarious purposes. The game combines elements of Zachtronics' previous SpaceChem and Infiniminer, with the assembly lines being built from blocks in a three-dimensional space.
Human Resource Machine is a visual programming-based puzzle video game developed by Tomorrow Corporation. The game was released for Microsoft Windows, OS X and Wii U in 2015, being additionally released for Linux in March 2016, for iOS in June 2016, for Android in December 2016 and for the Nintendo Switch in March 2017. Human Resource Machine uses the concept of a corporate office worker assigned to perform tasks that involve moving objects between an inbox, an outbox, and to and from storage areas as a metaphor for assembly language concepts. The player works through some forty puzzles in constructing a program to complete a specific task.
Shenzhen I/O is a puzzle video game and programming game developed by Zachtronics for Microsoft Windows, Linux, and macOS-based personal computers. The game was released in November 2016.
Opus Magnum is a puzzle-based programming game developed by Zachtronics. It was released for Microsoft Windows, Linux, and Mac in December 2017, following about two months of early access. In the game, the player must assemble a series of machines using various tools and program them to complete alchemy-related tasks. The player can advance with any working solution to each problem, but is challenged through leaderboards to produce a machine that does the task in the shortest time, with the lowest cost of materials, and/or the smallest occupied area. Opus Magnum is based on The Codex of Alchemical Engineering, one of the earliest Flash games made by Zach Barth prior to establishing Zachtronics.
Exapunks is a programming game developed by Zachtronics. It was released into early access on August 9, 2018, and fully released on October 22, 2018.
SCELBAL, short for SCientific ELementary BAsic Language, is a version of the BASIC programming language released in 1976 for the SCELBI and other early Intel 8008 and 8080-based microcomputers like the Mark-8. Later add-ons to the language included an extended math package and string handling. The original version required 8 kB of RAM, while the additions demanded at least 12 kB.
The Hack Computer is a theoretical computer design created by Noam Nisan and Shimon Schocken and described in their book, The Elements of Computing Systems: Building a Modern Computer from First Principles. In using the term “modern”, the authors refer to a digital, binary machine that is patterned according to the von Neumann architecture model.