Programming game
   HOME

TheInfoList



OR:

A programming game is a
video game Video games, also known as computer games, are electronic games that involves interaction with a user interface or input device such as a joystick, controller, keyboard, or motion sensing device to generate visual feedback. This feedba ...
that incorporates elements of
computer programming Computer programming is the process of performing a particular computation (or more generally, accomplishing a specific computing result), usually by designing and building an executable computer program. Programming involves tasks such as anal ...
, enabling the player to direct otherwise autonomous units within the game to follow commands in a
domain-specific programming language A domain-specific language (DSL) is a computer language specialized to a particular application domain. This is in contrast to a general-purpose language (GPL), which is broadly applicable across domains. There are a wide variety of DSLs, ranging f ...
, often represented as a
visual language A visual language is a system of communication using visual elements. Speech as a means of communication cannot strictly be separated from the whole of human communicative activity which includes the visual and the term 'language' in relation to ...
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 A puzzle is a game, problem, or toy that tests a person's ingenuity or knowledge. In a puzzle, the solver is expected to put pieces together ( or take them apart) in a logical way, in order to arrive at the correct or fun solution of the puzzl ...
, 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 A hacker is a person skilled in information technology who uses their technical knowledge to achieve a goal or overcome an obstacle, within a computerized system by non-standard means. Though the term ''hacker'' has become associated in popu ...
'', 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
waldo Waldo may refer to: People * Waldo (given name), a list of people and fictional characters * Waldo (surname), a list of people * Waldo (footballer) (1934-2019), full name Waldo Machado da Silva, Brazilian footballer Places Canada * Waldo, ...
s 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 ''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 October 2015, being additionally released for Linux in March 2016, f ...
'', ''
Infinifactory ''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 take ...
'', and '' TIS-100''. Zachtronics is a video game development company known for its programming-centric
puzzle games Puzzle video games make up a broad genre of video games that emphasize puzzle solving. The types of puzzles can test problem-solving skills, including logic, pattern recognition, sequence solving, spatial recognition, and word completion. ...
. 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 upright=1.4, gate (G), body (B), source (S) and drain (D) terminals. The gate is separated from the body by an insulating layer (pink). A transistor is a semiconductor device used to Electronic amplifier, amplify or electronic switch, switch ...
'', '' else Heart.Break()'', ''Glitchspace'', and ''
Pony Island ''Pony Island'' is a video game developed and published by Canadian indie developer Daniel Mullins. As a metafictional game, the game has the player interact with what appears to be an old arcade cabinet game called "''Pony Island''". The player ...
''. Another approach used in some graphical games with programming elements is to present the player with a
command line interface A command-line interpreter or command-line processor uses a command-line interface (CLI) to receive commands from a user in the form of lines of text. This provides a means of setting parameters for the environment, invoking executables and pro ...
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 ''Duskers'' is a strategy video game by independent developer Misfits Attic. It was released on May 18, 2016, for Linux, OS X, and Microsoft Windows Windows is a group of several Proprietary software, proprietary graphical user interface, ...
'' have the user command several small robotic creatures in tandem through the language of code to reach a certain goal. ''
Hackmud ''Hackmud'' is a massively multiplayer online video game and/or MUD that simulates 1990s hacker subculture through text-based adventure. Players use social engineering, scripting, and cracks in a text-based terminal to influence and co ...
'' presents the player with a simulated mainframe interface through which they issue commands to progress forward.


As competitive games

Many programming games involve controlling entities such as
robot A robot is a machine—especially one programmable by a computer—capable of carrying out a complex series of actions automatically. A robot can be guided by an external control device, or the control may be embedded within. Robots may be ...
s,
tank A tank is an armoured fighting vehicle intended as a primary offensive weapon in front-line ground combat. Tank designs are a balance of heavy firepower, strong armour, and good battlefield mobility provided by tracks and a powerful ...
s or
bacteria Bacteria (; singular: bacterium) are ubiquitous, mostly free-living organisms often consisting of one biological cell. They constitute a large domain of prokaryotic microorganisms. Typically a few micrometres in length, bacteria were am ...
which seek to destroy each other. Such games can be considered environments of
digital organism A digital organism is a self-replicating computer program that mutates and evolves. Digital organisms are used as a tool to study the dynamics of Darwinian evolution, and to test or verify specific hypotheses or mathematical models of evolut ...
s, related to artificial life simulations. 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
tournament A tournament is a competition involving at least three competitors, all participating in a sport or game. More specifically, the term may be used in either of two overlapping senses: # One or more competitions held at a single venue and concentr ...
s 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 World Computer Chess Championship (WCCC) is an event held periodically since 1974 where computer chess engines compete against each other. The event is organized by the International Computer Games Association. It is often held in conjunction with ...
consists of matches between programs written for the
abstract strategy game Abstract strategy games admit a number of definitions which distinguish these from strategy games in general, mostly involving no or minimal narrative theme, outcomes determined only by player choice (with no randomness), and perfect informatio ...
of
chess Chess is a board game for two players, called White and Black, each controlling an army of chess pieces in their color, with the objective to checkmate the opponent's king. It is sometimes called international chess or Western chess to dist ...
. The competitive programming game has also found its way to various
board games Board games are tabletop games that typically use . These pieces are moved or placed on a pre-marked board (playing surface) and often include elements of table, card, role-playing, and miniatures games as well. Many board games feature a co ...
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. Researchers presented ''RoboCode'' as a "problem-based learning" substrate for teaching programming.


Related areas

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 ''Minecraft'' is a sandbox game developed by Mojang Studios. The game was created by Markus "Notch" Persson in the Java programming language. Following several early private testing versions, it was first made public in May 2009 before b ...
'' 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 Modification may refer to: * Modifications of school work for students with special educational needs * Modifications (genetics), changes in appearance arising from changes in the environment * Posttranslational modifications, changes to prote ...
is aimed to teach children how to program on the virtual computer in a simplistic language. Several sites, such as ''
Codecademy Codecademy is an American online interactive platform that offers free coding classes in 12 different programming languages including Python, Java, Go, JavaScript, Ruby, SQL, C++, C#, and Swift, as well as markup languages HTML and CSS. The ...
'', help to teach real-world programming languages through
gamification Gamification is the strategic attempt to enhance systems, services, organizations, and activities by creating similar experiences to those experienced when playing games in order to motivate and engage users. This is generally accomplished thro ...
, where video game principles are used to motivate the user.


See also

* Programming games category * List of digital organism simulators *
Visual programming language In computing, a visual programming language (visual programming system, VPL, or, VPS) is any programming language that lets users create programs by manipulating program elements ''graphically'' rather than by specifying them ''textually''. A VPL ...
* Zachtronics


References


External links


The Programming Games Wiki
{{VideoGameGenre * Video game genres