Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Programming game
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{Short description|Video game genre}} {{Main category|Programming games}} 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 (video game)|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 [[waldo (device)|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]]'',<ref>{{cite web | url = https://www.rockpapershotgun.com/2016/10/03/can-video-games-teach-you-programming/ | title = Can Videogames Teach You Programming? | first = Matt | last = Sayer | date = October 3, 2016 | access-date = October 3, 2016 | work = [[Rock Paper Shotgun]] }}</ref> ''[[Infinifactory]]'', and ''[[TIS-100]]''. [[Zachtronics]] is a video game development company known for its programming-centric [[puzzle games]].<ref>{{cite web |last1=Tarason |first1=Dominic |date=7 February 2019 |title=Zachtronics book Zach-Like shows how the puzzle sausage gets made |url=https://www.rockpapershotgun.com/2019/02/07/zachtronics-book-on-game-design-crowdfunding-on-kickstarter/ |website=[[Rock Paper Shotgun]]}}</ref> 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 (video game)|Transistor]]'', ''[[else Heart.Break()]]'', ''Glitchspace'', and ''[[Pony Island]]''.<ref name="rps best">{{cite web | url = https://www.rockpapershotgun.com/2015/11/09/best-programming-games/ | title = The 10 Best Hacking, Coding, Computing Games | first = Brendan | last = Caldwell | date = November 9, 2015 | access-date = October 3, 2016 | work = [[Rock Paper Shotgun]] }}</ref> 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.<ref name="rps best"/> ''[[Hackmud]]'' presents the player with a simulated mainframe interface through which they issue commands to progress forward.<ref>{{Cite web | url = https://www.rockpapershotgun.com/2016/09/27/hackmud-review/ | title = Wot I Think: Hackmud | first = Brendan | last = Caldwell |date = September 27, 2016 | access-date = October 3, 2016 | work = [[Rock Paper Shotgun]] }}</ref> ==As competitive games== Many programming games involve controlling entities such as [[robot]]s, [[tank]]s or [[bacteria]] which seek to destroy each other. Such games can be considered environments of [[digital organism]]s, 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-core memory|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 [[tournament]]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]] 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.<ref>{{cite magazine | url = https://www.wired.com/2014/07/the-75-year-saga-behind-a-game-that-teachers-preschoolers-to-code/ | title= The 75-Year Saga Behind a Game That Teaches Preschoolers to Code | first = Cade | last= Metz | date = September 24, 2014 | access-date = October 3, 2016 | magazine = [[Wired (magazine)|Wired]] }}</ref> Researchers presented ''RoboCode'' as a "problem-based learning" substrate for teaching programming.<ref>O'Kelly, Jackie, and J. Paul Gibson. "RoboCode & problem-based learning: a non-prescriptive approach to teaching programming." ACM SIGCSE Bulletin 38, no. 3 (2006): 217-221.</ref> ==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]]'' 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 [[mod (video gaming)|modification]] is aimed to teach children how to program on the virtual computer in a simplistic language.<ref>{{Cite magazine | url = https://www.wired.com/2014/08/learntomod/ | title = New Minecraft Mod Teaches You Code as You Play | first = Klint | last = Finley | date = August 18, 2014 | access-date = October 3, 2016 | magazine = [[Wired (magazine)|Wired]] }}</ref> Several sites, such as ''[[Codecademy]]'', help to teach real-world programming languages through [[gamification of learning|gamification]], where video game principles are used to motivate the user.<ref>{{cite magazine | url = https://www.wired.co.uk/article/codeacademy-teaches-the-internet-javascript | title = Codecademy 'gamifies' the process of learning Javascript | first = Alice | last = Vincent | date = August 19, 2011 | access-date = October 3, 2016 | magazine = [[Wired (magazine)|Wired]] }}</ref> ==See also== {{Portal|Video games}} *[[:Category:Programming games|Programming games category]] *[[List of digital organism simulators]] *[[Visual programming language]] *[[Zachtronics]] == References == {{reflist|refs= }} ==External links== *[http://programminggames.org The Programming Games Wiki] *[https://web.archive.org/web/20040805003343/http://www.aiforge.net/game-links.htm Many inactive programming games listed at AIforge] *[http://www.retroprogramming.com/2009/09/history-of-programming-games-1961-1989.html A History of Programming Games] {{VideoGameGenre}} [[Category:Programming games| ]] [[Category:Video game genres]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:Cite magazine
(
edit
)
Template:Cite web
(
edit
)
Template:Main category
(
edit
)
Template:Portal
(
edit
)
Template:Reflist
(
edit
)
Template:Short description
(
edit
)
Template:VideoGameGenre
(
edit
)