(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.
| 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! |
| ChipWits (1984-1985) | A programming game originally released on Macintosh (1984), and later ported to Commodore 64 and Apple II (1985), written by Doug Sharp and Mike Johnston. The player uses a visual programming language called IBOL to teach a virtual robot how to navigate various environments of varying difficulty. The game straddles the line between entertainment and programming education. The original versions are easily playable via in-browser emulation on the game's official website. The FORTH source code for the game was recovered and released for the game's 40th anniversary. The game has a modern reboot on Steam. |
| 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. |
| MindRover (1999) | The spiritual successor to Robot Odyssey, with robots powered by circuit building somewhat like a visual hardware description language. These robots can then be set loose on a number of different challenges and not only warfare as in many other titles. |
| 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. |
| 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. |
(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. |
| 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. |
| ChipWits | A modern reboot of the original 1984 version, ChipWits combines a 60+ mission factory automation campaign that doubles as a tutorial, 8 classic missions from the original, and periodic "ChipWit Challenge" puzzles with a global leaderboard. You program your robot using IBOL, a visual programming language, which makes it accessible to non-programmers as well. |
| Code E.D. | Use Lua to program a robot exploring a new habitable planet for humankind. Features a fairly sophisticated editor with help features and interactive debugger. |
| Codemancer | Learn to program using a specialized visual programming language. Targeted at ages 6-12, but suitable for all ages. |
| Colobot | Use a bespoke language similar to C++ and Java to explore and colonize hostile planets after life on Earth is threatened by a great cataclysm. |
| Comet 64 | Use a hybrid of assembly and C-like syntax to unlock the mysteries of the titular fictional computer. Includes leaderboards for minimizing instruction and cycle counts. |
| Craftomation: Programming & Craft | Automate the terraforming of a frozen planet with robots programmed using a visual programming language. |
| Crescent Loom | Evolve digital creatures using biologically plausible neural nets. |
| Cyber Sentinel | Experience the hacker's side of cyberpunk by using visual programming to create computer viruses. |
| DeepestWorld | Explore, hunt monsters, gather resources, craft and grind using JavaScript to automate the actions of your character. |
| Debugger 3.16: Hack 'n' Run | Help a sentient debugger get rid of all the bugs in a developer's game worlds. |
| Dreamjob: Programmer Simulator | Climb the corporate ladder and level up as a programmer using Python, C++, C#, Java or JavaScript. (TBA.) |
| Duskers | "Pilot drones into derelict spaceships to find the means to survive and piece together how the universe became a giant graveyard Pilot drones into derelict spaceships to find the means to survive and piece together how the universe became a giant graveyard." |
| Echoes of the Architects | Use a very high-level programming language to compete in an RTS autobattler. |
| Else Heart.Break() | 3-D graphical adventure game in which numerous everyday objects can be programmed as a means of solving the game's puzzles. |
| The Farmer Was Replaced | "Program and optimize a drone to automate a farm and watch it do the work for you. Collect resources to unlock better technology and become the most efficient farmer in the world. Improve your problem solving and coding skills." |
| git-game | "Terminal game to test Git skills." |
| git-game-v2 | Sequel to git-game testing the user on more advanced aspects of Git. |
| Gladiabots | Configure squads of robots with a visual programming language. Test and improve your strategies then deploy them on the battlefield against against computer opponents or online against other humans. |
| Glitchspace | Use a physics- and geometry-based visual programming language to reprogram the game itself and solve puzzles to find your way home from a cyberspace world. |
| GNU Robots | Program a little robot in Scheme (specifically GNU Guile) to navigate a maze, finding food for energy, prizes to increase your score, and evading or neutralizing "baddies". |
| Graphomata | Use a visual programming language to create graphs (as in "mathematical networks") matching desired specifications and see your solutions come to life both as graphs and as a number of other programming languages. |
| Grey Hack | MMO hacking simulation with vast procedurally generated network of potential target computers. |
| hackmud | Another hacking MMO with deliberately campy "retro" hacking aesthetics and strong player-run elements, all powered by the (love it or hate it) universal language of the Internet, JavaScript (ES6, with "strict" mode enabled). |
| Hacknet | Terminal-driven hacking game with campy Hollywood aesthetics. Pretty fun, but consider a caveat from one of the reviews on Steam: "Solid game, but if you want to do real hacking, go to TryHackMe or HackTheBox." |
| Hack 'n' Slash | Imagine The Legend of Zelda but you can hack the game itself to move towards victory. |
| Joy of Programming | Use Python for automation and machine learning. The focus appears to be on manufacturing and uncrewed autonomous combat vehicles. Author recommends that you have prior experience with programming and don't go in as a beginner. |
| Kodu | Create 3-D worlds with agents and objects and control them using a visual programming language. Intended for children but can be used at all ages. |
| KnotBot | "Solve coding problems with knots and yarn-balls instead of text and numbers." Also has a visual programming language. |
| Learn Git Branching | Interactive Git tutorial from basic commands to increasingly arcane ones. |
| Logic World | Think Minecraft, but exclusively for digital logic. Includes multiplayer options. |
| LogicBots | Design and build robots in a 3-D world and combine logic gates to control their behavior and meet various objectives. |
| Marvellous Inc. | Get hired by a sketchy international conglomerate and uncover its secrets as you write assembly code to solve increasingly complex tasks. |
| Mechanica | Automate manufacturing and base defenses using a visual programming language in an inhospitable desert wasteland. |
| MHRD | Work for the startup company "Microhard" and build circuitry with a hardware description language starting from basic logic gates and leading all the way up to a full-fledged CPU. |
| Minecraft Hour of Code | Learn CS and AI fundamentals (legally and with due process) in Minecraft. |
| Move Code Lines | Debug and fix code with the huge caveat that you can only do so by altering the order of existing lines, hence the name. |
| NebuLeet | Lead a paramilitary force against a nascent dangerous cult, including with programmable ships that, if well-instructed, can even turn the tide against superior technology. |
| Neon Noodles | Run a hectic commercial kitchen, but with visually programmed robots to lighten the load. |
| Oh My Git | Learn Git with an educational open source game. |
| One Dreamer | Help a burnt-out indie game developer rediscover his love of video games with a C#-based programming language. |
| Pony Island | Escape from an arcade machine devised by the devil himself by modifying its infernal software. |
| Prelogate | Solve puzzles by redirecting, mixing and controlling laser beams with logic gates. |
| Prime Mover | Build circuit boards from basic transistors to whole processors, uncovering the story of "Byte of Burden" along the way. |
| Pure Logic | A game which, as the name suggests, is a very minimalist affair focused on making combinational logic circuits all true. |
| Quadrilateral Cowboy | Retrofuturist hacker game where you sell your skills to the highest bidder while using your state-of-the-art hacking deck with a 56k modem and 256K of RAM. |
| Robo Instructus | Automate a salvage robot using a simple high-level programming language and master said language just as you master your robot. |
| Robocode | Revisiting the classing robot tank formula of old, with duels, all-against-all battles and two opposing teams. Comes with an original, fully implemented original based on Java and a newer work in progress based on a client/server architecture allowing many languages. |
| Robocoder - Dwarf Mountain | Operate your discovery droid Mar10 and solve logic- and physics-based puzzles in a handcrafted world. Apparently abandoned in early access. |
| Rogue Bit | Assist a single bit that became sentient in escaping from an 8-bit computer to the outside world. |
| Scalatron | Compete with other robots in a virtual arena for energy and survival using—you guessed it—Scala. Author alleges that "Scalatron may be the quickest and most entertaining way to become productive in Scala". |
| Screeps | Technically two separate games of the robot battler genre, Screeps: Arena, which has fast-paced 1v1 battle where matches are based on ratings, and Screeps: World, a slower-paced persistent MMO world with PvP and PvE features. The primary language for Screeps is JavaScript but transpilation and WASM enable a number of other languages, such as TypeScript and Python. |
| Selfless Heroes | Lead your heroes through the dungeon towards victory using high-level parallel programming. |
| SIC-1 | Climb the corporate ladder (and leaderboards) by using an ISA with only one instruction. |
- Silicon Zeroes
- Stone Story RPG
- Stormworks: Build and Rescue
- Super Markup Man
- Swarm
- Swift Playgrounds
- ToonTalk
- trAInsported
- Turing Complete
- TwilioQuest
- Virtual Circuit Board
- Uplink
- while True: learn()
- Automaton (Android only)
- Cyber Sentinel
- Gladiabots
- Human Resource Machine
- LightBot
- LightBot Jr
- Make It True (Android only)
- Perfect Paths (iOS only)
- Rec Room (iOS only)
- RoboZZle
- SpriteBot
- Swift Playgrounds (iPad only)
- TIS-100P (iOS only)
- 7 Billion Humans (iOS only)
- AI Cup
- Artifacts MMO - Artifacts is a Sandbox MMORPG where you can use any programming language to control your characters with our API.
- Bitburner
- BOX-256
- Battlecode
- Blockly
- Carnival
- CodeCraft
- CSS Diner
- CTF Learn
- CheckiO
- Code Games
- Code Monkey
- Code.org
- CodeCombat
- Codingame
- corewars8086_js
- Cube Composer
- Elevator Saga
- Flexbox Defense
- Flexbox Froggy
- Flexbox Zombies
- generals.io
- Graphomata
- Grid Critters
- Grid Garden
- Hack The Box
- hackable.ca
- hacker.org
- HackThisSite
- Hacker 101 CTF
- Halite
- Hellbound Hackers
- Imagegram
- io.netgarage.org
- JavaScript Fight Club
- Komodo Consulting CTF
- Leek Wars
- LogicBox
- Manufactoria
- Microcorruption
- Much Assembly Required
- NandGame
- OverTheWire
- picoCTF
- Practice CTF List / Permanent CTF List (a comprehensive list of CTF challenges specifically; have not examined every entry; see also this Stack Exchange thread and this Reddit thread)
- Programming Game - A realtime survival MMORPG played via websockets. There's a super simple in browser demo that showcases how to play.
- pwnable.kr
- pwnable.tw
- Regex Crossword
- RingZer0 Team Online CTF
- Robot Rumble
- RoboZZle
- Ruby Warrior
- Schemaverse
- Service Workies
- ShortcutFoo
- Smash the Stack
- SpaceTraders API (RESTful API MMO Space Trading game)
- Tic-Tac-Toe
- Tynker
- Untrusted
- Vim Adventures (n.b.: $25 for six months access to the full version)
- VimGolf
- Vindinium
- VulnHub
- W3Challs
- WarriorJS
- WeChall (not the same as the other, similar-sounding entry!)
- XSS Game
- Yare - Multiplayer programming strategy game where players write JavaScript to control units ("cats") in real-time 1v1 matches. ELO matchmaking and replays.
- Baba Is You (Switch)
- Carnage Heart (PlayStation)
- Dreams (PlayStation 4)
- Exception
- 7 Billion Humans (Switch)