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.
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 , [1] Infinifactory , and TIS-100 . Zachtronics is a video game development company known for its programming-centric puzzle games. [2]
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 . [3]
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. [3] Hackmud presents the player with a simulated mainframe interface through which they issue commands to progress forward. [4]
Many programming games involve controlling entities such as robots, tanks or bacteria which seek to destroy each other. Such games can be considered environments of digital organisms, related to artificial life simulations. An early example is Core War (1984), where programs written in a standardized assembly-like language battle for space in a finite memory (virtual magnetic cores). Players are given tools to develop and test out their programs within the game's domain-specific language before submitting the program to a central server. The server then executes the program against others and reports the results to the player, from which they can make changes or improvements to the program.
There are different tournaments and leagues for the programming games where the characters can compete with each other. Usually a script is optimized for a special strategy. Similar approaches are used for more traditional games; the World Computer Chess Championship consists of matches between programs written for the abstract strategy game of chess.
The competitive programming game has also found its way to various board games such as RoboRally or Robot Turtles, typically where a program becomes a premade deck of playing cards played one by one to execute that code. [5]
Researchers presented RoboCode as a "problem-based learning" substrate for teaching programming. [6]
Open world games that feature the ability for players to construct environments from an array of building blocks have often been used by more advanced players to construct logic circuits and more advanced programs from the fundamental blocks. Minecraft is one such example, as while the game provides a limited set of blocks that mimic switches and electric circuits, users have been able to create basic functional computers within the virtual world, and at least one modification is aimed to teach children how to program on the virtual computer in a simplistic language. [7]
Several sites, such as Codecademy , help to teach real-world programming languages through gamification, where video game principles are used to motivate the user. [8]
NetHack is an open source single-player roguelike video game, first released in 1987 and maintained by the NetHack DevTeam. The game is a fork of the 1982 game Hack, itself inspired by the 1980 game Rogue. The player takes the role of one of several pre-defined character classes to descend through multiple dungeon floors, fighting monsters and collecting treasure, to recover the "Amulet of Yendor" at the lowest floor and then escape.
Roguelike is a style of role-playing game traditionally characterized by a dungeon crawl through procedurally generated levels, turn-based gameplay, grid-based movement, and permanent death of the player character. Most roguelikes are based on a high fantasy narrative, reflecting their influence from tabletop role-playing games such as Dungeons & Dragons.
Colossal Cave Adventure is a text-based adventure game, released in 1976 by developer Will Crowther for the PDP-10 mainframe computer. It was expanded upon in 1977 by Don Woods. In the game, the player explores a cave system rumored to be filled with treasure and gold. The game is composed of dozens of locations, and the player moves between these locations and interacts with objects in them by typing one- or two-word commands which are interpreted by the game's natural language input system. The program acts as a narrator, describing the player's location and the results of the player's attempted actions. It is the first well-known example of interactive fiction, as well as the first well-known adventure game, for which it was also the namesake.
ZZT is a 1991 action-adventure puzzle video game and game creation system developed and published by Potomac Computer Systems for MS-DOS. It was later released as freeware in 1997. It is an early game allowing user-generated content using object-oriented programming. Players control a smiley face to battle various creatures and solve puzzles in different grid-based boards in a chosen world. It has four worlds where players explore different boards and interact with objects such as ammo, bombs, and scrolls to reach the end of the game. It includes an in-game editor, allowing players to develop worlds using the game's scripting language, ZZT-OOP.
In computing, a visual programming language, also known as diagrammatic programming, graphical programming or block coding, is a programming language that lets users create programs by manipulating program elements graphically rather than by specifying them textually. A VPL allows programming with visual expressions, spatial arrangements of text and graphic symbols, used either as elements of syntax or secondary notation. For example, many VPLs are based on the idea of "boxes and arrows", where boxes or other screen objects are treated as entities, connected by arrows, lines or arcs which represent relations. VPLs are generally the basis of Low-code development platforms.
Robot Odyssey is a programming game developed by Mike Wallace and Dr. Leslie Grimm and published by The Learning Company in December 1984. It is a sequel to Rocky's Boots, and it was released for the Apple II, TRS-80 Color Computer, and MS-DOS. Most players have found it challenging. The player is readying for bed when, suddenly, they fall through the floor into an underground city of robots, Robotropolis. The player begins in the sewers of the city with three programmable robots, and must make their way to the top of the city to try to find their way home again.
A text game or text-based game is an electronic game that uses a text-based user interface, that is, the user interface employs a set of encodable characters, such as ASCII, instead of bitmap or vector graphics.
Robot software is the set of coded commands or instructions that tell a mechanical device and electronic system, known together as a robot, what tasks to perform. Robot software is used to perform autonomous tasks. Many software systems and frameworks have been proposed to make programming robots easier.
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 and Minetest.
Quadrilateral Cowboy is a first-person puzzle-adventure video game by independent developer Blendo Games. The game was released on July 25, 2016, for Microsoft Windows, and on October 1, 2016, for macOS and Linux.
Hack 'n' Slash is a video game developed by Double Fine Productions. Prototyped during Double Fine's open Amnesia Fortnight 2012, Hack 'n' Slash is a top-down action-adventure game similar to The Legend of Zelda, though with in-game weapons and objects that allow the player to hack the game's world to achieve victory. The game was released to Steam's Early Access on May 6, 2014, for Microsoft Windows, OS X, and Linux computers. It left early access status and became a full release on September 9, 2014.
Blockly is a client-side library for the programming language JavaScript for creating block-based visual programming languages (VPLs) and editors. A project of Google, it is free and open-source software released under the Apache License 2.0. It typically runs in a web browser, and visually resembles the language Scratch.
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.
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 Microsoft Windows, OS X, and Linux personal computers in July 2015.
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.
SethBling is an American video game commentator and Twitch video game live streamer known for YouTube videos focused around the 1990 side-scrolling platform video game Super Mario World and the 2011 sandbox video game Minecraft. He created original and derivative video games, devices and phenomena in Minecraft, without using Minecraft mods. He created an interpreter for the programming language BASIC and an emulator for the 1977 home video game console Atari 2600 in Minecraft. In addition to Minecraft builds that run without mods, he created plugins for the game.
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.