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. As puzzle games Early games in the genre include System 15000 and Hacker, released in 1984 and 1985 respectively. Programming games have been used as part of puzzle games, challenging the player to achieve a specific result once the program starts operating. An example of such a game is SpaceChem, where the player must use its visual language to manipulate two waldos as to disassemble and reassemble chemical molecules. In such games, players are able to test and debug their program as often as necessary until they find a solution that works. Many of these games encourage the player to find the most efficient program, measured by the number of timesteps needed or number of commands required. Other similar games include Human Resource Machine, Infinifactory, and TIS-100. Zachtronics is a video game development company known for its programming-centric puzzle games. Other games incorporate the elements of programming as portions of puzzles in the larger game. For example, Hack 'n' Slash include a metaphor of being able to access the internal programs and variables of objects represented in the game world, pausing the rest of the game as the player engages this programming interface, and modify the object's program as to progress further; this might be changing the state of an object from being indestructible to destructible. Other similar games with this type of programming approach include Transistor, else Heart.Break(), Glitchspace, and Pony Island. Another approach used in some graphical games with programming elements is to present the player with a command line interface to issue orders via a domain-specific language to direct objects within the game, allowing the player to reissue commands as the situation changes rather than crafting a pre-made program. Games like Quadrilateral Cowboy and Duskers have the user command several small robotic creatures in tandem through the language of code to reach a certain goal. Hackmud presents the player with a simulated mainframe interface through