Programming game

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 video game, and multiplayer games where the player's automated program is pitted against other players' programs.

## As puzzle games

[edit]

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]

## As competitive games

[edit]

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]

## Related areas

[edit]

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]

## See also

[edit]

* Video games portal

* Programming games category
* List of digital organism simulators
* Visual programming language
* Zachtronics

## References

[edit]

1. ^ Sayer, Matt (October 3, 2016). "Can Videogames Teach You Programming?". Rock Paper Shotgun. Retrieved October 3, 2016.
2. ^ Tarason, Dominic (7 February 2019). "Zachtronics book Zach-Like shows how the puzzle sausage gets made". Rock Paper Shotgun.
3. ^ a b Caldwell, Brendan (November 9, 2015). "The 10 Best Hacking, Coding, Computing Games". Rock Paper Shotgun. Retrieved October 3, 2016.
4. ^ Caldwell, Brendan (September 27, 2016). "Wot I Think: Hackmud". Rock Paper Shotgun. Retrieved October 3, 2016.
5. ^ Metz, Cade (September 24, 2014). "The 75-Year Saga Behind a Game That Teaches Preschoolers to Code". Wired. Retrieved October 3, 2016.
6. ^ 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.
7. ^ Finley, Klint (August 18, 2014). "New Minecraft Mod Teaches You Code as You Play". Wired. Retrieved October 3, 2016.
8. ^ Vincent, Alice (August 19, 2011). "Codecademy 'gamifies' the process of learning Javascript". Wired. Retrieved October 3, 2016.

## External links

[edit]

* The Programming Games Wiki
* Many inactive programming games listed at AIforge
* A History of Programming Games

* v
* t
* e

Video game genres

* List of video game genres

Action|

| Platformer|

* Endless runner
* Platform fighter

|

Shooter|

* Arena
* First-person
* Hero
* Light gun
* Shoot 'em up
* Bullet hell
* Rail
* Twin-stick
* Tactical
* Third-person

Survival|

* Battle royale
* Survival horror

Other|

* Beat 'em up
* Hack and slash
* Fighting
* Platform fighter
* Maze
* Pac-Man clone
* Snake
* Stealth

Action-adventure|

* Grand Theft Auto clone
* Metroidvania

Adventure|

* Escape room
* Graphic adventure
* Interactive fiction
* Interactive film
* Visual novel
* Walking sim

Digital tabletop|

* Deck-building
* Roguelike deck-building
* Digital collectible card

Puzzle|

* Hidden object
* Sokoban
* Tile-matching

Role-playing|

* Action role-playing
* Looter shooter
* Soulslike
* Dungeon crawl
* MMORPG
* Monster-taming
* Roguelike
* Roguelike deck-building
* Tactical role-playing
* Turn-based role-playing

Simulation|

| Life|

* Dating
* Farming
* God
* Social
* Virtual pet

|

CMS|

* Business
* City-building
* Government

Sports|

* Fishing
* Racing
* Kart racing
* Sim racing

Vehicle|

* Flight simulation
* Combat
* Lunar Lander
* Space
* Submarine simulator
* Train simulator
* Vehicular combat

Other|

* Falling-sand
* Immersive sim

Strategy|

* 4X
* Auto battler
* MOBA
* Real-time strategy
* Time management
* Real-time tactics
* Tactical role-playing
* Tower defense
* Turn-based strategy
* Turn-based tactics
* Artillery
* Wargame
* Grand strategy

Other genres|

* Cozy
* Fitness
* Horror
* Survival horror
* Incremental
* Music
* Rhythm
* Non-game
* Party
* Photography
* Programming
* Typing

Related concepts|

| Themes|

* Advergame
* Bishōjo
* Christian
* Comedy
* Educational
* Girls
* Licensed
* Otome
* Sexual
* Eroge
* Nonviolent
* Personalized
* Sci-fi
* Serious
* Art
* Climate change
* News
* Persuasive

|

Player modes|

* Multiplayer
* Co-op
* PVP
* Single-player

Production|

* AAA
* Indie
* Doujin soft
* Fan game

Design|

* Casual
* Hypercasual
* Emergent gameplay
* FMV
* Gacha
* Kaizo
* Masocore
* Nonlinear gameplay
* Open world
* Sandbox
* Side-scrolling
* Twitch gameplay
* Vertically scrolling

Other|

* Minigame
* Toys-to-life
* Video game clone
* Video game modding
* Video game remake

*[v]: View this template
*[t]: Discuss this template
*[e]: Edit this template