GitHub - readyready15728/awesome-programming-games: An ultra mega giga curated list of programming games

10 min read Original article ↗

Awesome Programming Games

An ultra mega giga curated list of programming games

(N.b.: Only readily playable games will be included here. This means that original code is available (as well as a separate emulator if needed), or one or more reimplementations, or both. Examples such as Struggle are all well and good but are excluded by this criterion. Additionally there have to be at least some scraps of documentation. This would appear to exclude a game like 'bot. Lastly, I have now specified as a response to a question on a pull request, namely "What qualifies a game as being gamified?" that "The application or site should have many of the trappings of a traditional computer or video game." Currently, a number of entries included in the README.md do not fit this criterion and will eventually be moved to a separate awesome-coding-challenges README.md.

Classic Games (in Order of Release)

Title Description and Notes
Darwin (1961) A historically significant game and experiment in artificial life first implemented on an IBM 7090 at Bell Labs. Players create machine code "organisms" with the twofold goals of becoming the most prolific replicators and wiping out all of their foes.
RobotWar (1970s) A programming game originally written for the legendary PLATO system. (For more information on PLATO, consider picking up The Friendly Orange Glow by Brian Dear.) The original object of the game was to use a register-based language apparently inspired by assembly and BASIC to control the movement, radar and gun of a battle robot and be the last standing out of two. A later Apple II release available on the linked website expanded the number of contestants to as many as five. There is even a Clojure reimplementation, though it seems incomplete.
Color Robot Battle (1981) A game with a similar premise as RobotWar, though competing robots are now armed with missiles as well as a laser gun. In addition, the language created for this game appears to be partially inspired by Logo. The retrocomputing site Color Computer Archive hosts the original TRS-80 binary as well as a PDF of the original manual.
Rocky's Boots (1982) An educational logic puzzle game that teaches the fundamentals of digital logic circuits for ages 9 and up, which received wide acclaim. The Internet Archive has the manual corresponding to the Apple II binary found at the title link.
Robot (1983) Another RobotWar derivative with a language inspired by assembly and BASIC written for the somewhat obscure early home computer known as the Sol-20. Robot innovates on the existing formula with the addition of shields and cloaking devices to protect the fighting robots and the addition of land mines, electric fences and blockades on the battleground. The title link has binaries written in a text format with the extension of .ent, which are to be used with the emulator, called Solace.
Core War (1984) Another game in the vein of Darwin, which is a bit more refined as I understand it. The website hosts a number of resources on Core War, including executables and documentation, along with a 1998 Usenet post from rec.games.corewar that draws more concrete comparisons between the two aforementioned games than what I can provide here.
DROID (1984) A rather obscure one for an obscure family of computers, the HP-3000 series. The game itself is written in Systems Programming Language, while the robots are programmed with a stack-based language called "D-code".
Robot Odyssey (1984) The sequel to Rocky's Boots and even more challenging!
Arena (1985) Another one where robots duke it out on a shared battleground. The language appears to be a fairly pure assembly language without too many other influences.
Crobots (1985) The "C" is pronounced like in "C programming language", because this variant of the battling robot formula uses a subset of C as opposed to an assembly variant. In addition to the title link there is also a dedicated Crobots website. It includes a somewhat buried HTML-formatted manual.
P-Robots (1988) Inspired by Crobots but players use Pascal to program contestants. Includes various embellishments on the basic formula, including the option of teams instead of a battle royale.
Omega (1989) Automated tank battler with a campaign that requires the player to overcome increasingly difficult challenges (while being allowed increased budgets at each stage) until they unlock the titular "omega" unlimited budget for tank design. As in several previous titles, team tactics are possible. The tank language was subject to intense quality testing during development and is a BASIC variant, easing the difficult task of programming the tanks. The website includes dozens of tank designs.
Jintori (1990) "Jintori is played on a 180×180 grid by programs written in an assembly-like programming language. The aim of the game is to surround as much territory as possible." It appears to be loosely inspired by the game of Go but I can't tell you more because the documentation is in Japanese.
Battle Droids (1991) Another, perhaps lesser-known tank battler using BASIC. The documentation seems quite excellent.
ARobots (1992) Tank battle royale using 8086 assembly. Documentation is fairly scant but several pre-built robots are available. The available primitives include a random number generator, reminding me of how science fiction author Fred Saberhagen's fictional killing machines known as "Berserkers" use random numbers based on radioactive decay to make their behavior unpredictable.
AT-Robots (1992) Tank battler using assembly-like with languages with a few interesting nuances in addition to the standard milieu, such as the need to manage heat. Website includes the results of past tournaments and the source code of robot tanks entered into said tournaments.
Combat Zone (1993) Shareware robot battler for Windows 3.x. Language possibly inspired by Logo.
CoreLife (1993) "Programs are written in a two-dimensional assembly-like language. Each instruction has one or two arguments and direction flags to indicate the flow of control." An influence on the later TIS-100?
TclRobots (1994) Like Crobots but with Tcl instead of C. Both written by the same author, Tom Poindexter.
TORCS (2001) The Open Racing Car Simulator, developed since 1997 and usable both with human driving and the automated sense relevant here. Has been used in numerous research papers since its release.

Recent Games, Traditional Software

Tomorrow Corporation (in Order of Release)

Title Description and Notes
Human Resource Machine Rather than being a tank battler, this newer title expects you to use a toy assembly language to match inputs to expected outputs in a cute corporate office environment. Having played this game myself, I liked the idea but the lack of labeled subroutines and resulting visual spaghetti code really started getting to me after level 20.
7 Billion Humans The sequel to Human Resource Machine, but with parallel computing! Haven't played this one yet.

Zachtronics (in Order of Release)

(N.b.: I am not including all Zachtronics games but only those that fall under the "programming" rubric. I have now excluded a number of titles such as SpaceChem.)

Title Description and Notes
KOHCTPYKTOP: Engineer of the People The title appears to be Cyrillic but those are really just capitalized ASCII characters that match their Cyrillic counterparts. Presumably pronounced "CONSTRUCTOR". The game is based on designing integrated circuits based on specifications provided by a manager in what is presumably some sort of Soviet factory, with an overarching plot somehow involving a mysterious connection to communism.
TIS-100 80's-themed assembly language puzzle with multiple independently programmable nodes capable of communication with each other, apparently a sort of MIMD architecture. Features extensive manual that reads "like the real thing".
SHENZHEN I/O Build increasingly complex digital logic circuitry, this time not for your Soviet boss, but as a worker for a private firm in the "electronics capital of the world". Shares the same sort of extensive, realistic documentation present in TIS-100 and includes a solitaire minigame.
EXAPUNKS Multi-agent programming in assembly with a strong cyberpunk flair. Users have likened the overall architecture to multi-threading or even the more advanced model put forward by Erlang.

Others

Title Description and Notes
Adventure Land Indie MMORPG with optional automation of tedious grinding by programming player characters with JavaScript. (Appears to be abandoned.)
Algo Bot Rescue a colony ship's mission in space using a visual programming language. Users have claimed to experienced various difficulties including with a buggy Linux native version.
AntMe! Learn to program by automating computerized cartoon ants in C# or VB.NET! Much documentation appears to be only available in the original German.
Automachef Meet the demands of a hectic commercial kitchen the best way anyone can: with programming! There are two related assembly languages used in game with some helpful visual elements for neophytes.
Autonauts Build and, of course, automate a colony of agriculture and industry using a Scratch-like visual programming language.
Bashcrawl "Learn Linux commands by playing a simple text adventure."
Battlesnake Multi-player "Snake" game with the standard goal of becoming a bigger snake by eating but also of avoiding other snake bots. Game is entirely language-, platform- and algorithm-agnostic and demands only that you implement a web server that implements the game's API, which is used to map the state of the board to the next move at any given time step.
Botomy RPG-style game with free-for-all and cooperative survival modes, also driven by a technology-agnostic API approach.
Bug Brain Automate a digital ladybug and perform other experiments by building neural networks. Since exclusive OR (XOR) is one of the examples it appears safe to assume these aren't only perceptrons depicted on the website.

Recent Games, Mobile

Recent Games, Browser- or Server-Based

Recent Games, Console