Programming Games and Contests

What I'm after are games in which one competes by writing code and and having the programs then compete against each other. The most straightforward exemplars of this are the ubiquitous bot games, such as the *-robots games.

I'm particularly interested in ongoing competitions. Typically run either periodically or in King of the Hill (KotH) type of competitions.

Any additions, deletions, changes or other comments cheerfully accepted.

This article is translated to Serbo-Croatian language by Anja Skrba from Webhostinggeeks.com.

Robots Games

The "competitors" in these games are robots; usually one with a gun to shoot at other competitors with. You supply the brains for the robot in the form of a program of one kind or another. The roots of these games goes back to RobotWar in the 1970's, according to the wikipedia article. RobotWar was commercialized for the Apple II computer in 1981.

I appreciate any tips about early BOTS games.

CROBOTS
A game where the robot is programmed in a "C-like" language. This was written by Tom Poindexter, who later created tclrobots.
CROBOTS-3D
A rewrite of CROBOTS by a new author, updated with sound and 3D graphics. It adheres to the original rules, and old robot files can be loaded.
P-Robots
A game that lets you write a robot using Pascal. Inspired by C-Robots.
Robocode
This game's ulterior motive is to teach Java Programming by letting you create Java "Robots," real Java objects that battle it out onscreen against other robots. Robocode, with its snazzy graphics and hyper battles, is similar to a combination of Logo and CoreWars. While playing Robocode, you will learn how to write Java code, how to handle events, how to create inner classes, and more. See also the RoboWiki.

Ireland has an annual RoboCode competition. Any others?

Grobots
Grobots is a programming game in which robots capable of reproducing compete to survive each other's presence. They are limited by energy, which can be obtained (and spent) in a variety of ways, and by their hardware, which restricts what each robot can do. Robots can move, sense, think, eat, reproduce, communicate, fight, and die - all without human intervention.
JRobots [Web play]
JRobots is another robots game inspired by CRobots. The bots are programmed using the Java language, then you upload it in the arena and follow on-line its fights against other robots.
Gun-Tactyx [3D graphics]
This is a second effort by the author of JRobots with a unique twist: the battle is rendered using a 3D graphics engine! The robots are programmed in a C-like language.
Real Time Battle
Another bot-programming game, with two outstanding features, in my mind. Firstly, the robots can be written in any language; the communication with the simulator is done via standard I/O. Secondly, the code is available under GPL. The code works under both unix and windows.
RobotWar 3d [MSWindows only, Binary only]
Proprietary; free download of demo version.
Tcl Robots
Robots game, using the Tcl language to write the control program. The game takes place in a square arena, with up to four robots. Each robot has a can move, shoot, and scan for its opponents; the goal is to disable all the other robots. You can watch the results graphically.
Droid Battles [Open source, GPL]
In DroidBattles you design the bots by choosing which hardware they should contain. Each bot can have up to 32 hardware devices that you can choose freely from a list of weapons, armor, CPUs, engines, etc. The bot is programmed in an assembler-like language.
Robot Battle [MSWindows only]
Yet another one with its own scripting language. Open source under the MPL
A.I. Wars [MS Windows only, binary only]
This series now comprises two games: The Insect Mind and Armor Commander. The bots in these games are insect-like mechanized units, programmed in their own command language. They come fully loaded with scanners, shields, sensors, energy cells, friend or foe beacons, mines, fuel, ammo, missiles, and even a self-destruct mechanism for those really sticky situations. This game has many web sites hosting regular tournaments.
MechAniX [Java applet]
Turn off JavaScript before visiting or you'll be spammed with advertising! Watch battles with your web browser: the arena is a java applet, with each bot coded as a java class. Everyone can enjoy watching the bots duke it out, though on my 400MHz Pentium II, the bots and bullets are flying so fast it looks more like a space war!

Cependant, toute le site est en francais donc j'imagine qu'il faut comprendre cette langue pour jouer.

C++ Robots [Play by Email]
As can be guessed, the robots are programmed in C++. Your program controls a robot whose mission is to seek out and destroy any other robots it finds. There is an ongoing KotH tournament run via mail server.
RoboWar [Macintosh only, binary only]
You program robots, then turn them loose in the arena for animated combat to the death. RoboWar features a complete programming environment for its unique language, RoboTalk; a Hardware Store, Icon Factory, and Recording Studio in which you can equip your robot and add pictures and sounds; and the Arena with a sophisticated robot simulator.
AT-Robots [MSDOS only]
AT-Robots is a game in which you write programs to control robots that will battle each other in a simulated arena. The programming language is similar to PC assembly language.
MindRover [MSWindows only]
The player controls how the robot reacts through a visual programming metaphor. In the construction lab, players choose bodies, drivetrains, sensors, weapons, and manipulators for their robots from a large array of possibilities, then visually wire the sensors to the controls to give each rover a unique set of behaviors.
RoboForge [MSWindows only, binary only]
Allows you to construct Robots using a 3D assembly environment. You can then instruct them how to fight using a declarative programming language.
GarBots [PalmOS 3.5]
Bots for your PalmPilot! Programmed in a subset of the BASIC language, you can beam bots to your friends and battle it out during those boring meetings.
PC Robots [MS DOS only]
Robots are controlled by a DOS .com or .exe program < 64k in size. Robots can be written in any language which can be compiled to a .com or .exe. Only works on PC clones. Up to 20 robots can be run at a time if sufficient memory is available.
B.O.T.S : BOts Tactical Simulation
Yet another bot game. Bots are coded in assembler language. Bots fight in a sophisticated arena containing walls, water and even instant death holes. Bots of the same team communicate using a radio.
BotBattle
Bot programming game with its own programming language. Web site apparently has on-line arena, but it crashed the java plugin of my browser (firefox).
BotBattle Reloaded
Variant of Botbattle that has slightly different weapons (stats tweaked, renamed some weapons), no cloaking, and other changes.

Other BOTS Games

Imperfect World of Robots
Simulates a world in which robots controlled by programs can live in it, work, defend their tribe and even create new children. Features a client/server architecture so a contestant (client program) can be written in any language that has access to TCP sockets.
Wormageddon
Wormageddon features duels between worms on a rectangular grid. Worms leave behind slimy, icky trails as they move. Should your worm run into a tail, its own or someone else's, it will die. Walls also spell death on impact. The goal is to outlast your opponent(s).

Think Tron lightcycles and you'll have a good idea of the game.

Bug Brain
Bug Brain is a game where you build brains to run a bug.

You start in the lab where you experiment with the neurons and nodes that make up a brain. From there you move out into the field to build a brain for a Lady Bug to help it feed and survive.

Bug Brain features rendered graphics, challenging puzzles and the opportunity to learn about neural networks.

RoboCup
The Robot World Cup Initiative (RoboCup) is an attempt to foster AI and intelligent robotics research by providing a standard problem where wide range of technologies can be integrated and examined. For this purpose, RoboCup chose to use soccer game, and organize RoboCup: The Robot World Cup Soccer Games and Conferences. In order for a robot team to actually perform a soccer game, various technologies must be incorporated including: design principles of autonomous agents, multi-agent collaboration, strategy acquisition, real-time reasoning, robotics, and sensor-fusion. RoboCup is a task for a team of multiple fast-moving robots under a dynamic environment. RoboCup also offers a software platform for research on the software aspects of RoboCup.
TORCS
A 3D car race simulator (OpenGL graphics) in which you program the driver. You can also drive yourself using a wheel or keyboard or mouse. Directly inspired from RARS.
RARS
A car race simulator in which you program the driver. Inactive for some time; see TORCS for a more modern race simulator.
Core Wars
Core Wars is a game played by two or more programs (and vicariously by their authors) written in an assembly language called Redcode and run in a virtual computer called MARS (for Memory Array Redcode Simulator). The object of the game is to cause all processes of the opposing program to terminate, leaving your program in sole posession of the machine.

Corewars descended from a game called Darwin that originated at Bell Laboratories in 1961.

RoboCom [MSWindows only, Binary only]
RoboCom bots move on a chess-like grid, and have no weapons. The bots interact by "injecting" other bots with hostile code that they run. Think of CoreWars with motion. Programmed with pseudo assembly language.
ColoBot [MSWindows,binary]
Real time strategy game where you can also program the robots.
War of Robot Worms [MS Windows only, binary only]
Two robot worms fight in an arena among walls and treasures. Their aim is to collect the treasures and survive the other worm. A worm dies if it crashes to a wall, to the other worm's body or to himself. Don't be put off by the Hungarian web page; the zip file contains English instructions.
GalaxyHack
GalaxyHack allows you to design a fleet of spaceships which can then be tested in AI script based battles against fleets designed by other players. Though battles take place in real time, the strategy comes before hand, both in writing short AI scripts in a simple scripting language, and also in the set up and selection of your forces.
Terrarium [MS Windows .NET Framework]
In Terrarium, developers create herbivores, carnivores, or plants and then introduce them into a peer-to-peer, networked ecosystem for a survival-of-the-fittest type competition. The game provides both a competitive medium for testing your software development and strategy skills as well as a realistic evolutionary biology/artificial intelligence model for evaluating the role that various behaviors and traits can play in the fight for survival.
CodeRally [Eclipse plugin]
Players develop a rally car and make decisions about when to speed up, turn, or slow down based on the location of other players or checkpoints, their current fuel level, and other factors.
CodeRuler [Eclipse plugin]
The game pits rulers against each other in a series of matches. A match consists of up to six rulers competing with each other. Each ruler starts a match with one castle in a random location on a finite two-dimensional grid of squares, with the same amount of peasants and knights as the other rulers. The task of a ruler is to give orders to its peasants, knights, and castles.
Fortress of Flags: A.I. Sandbox
Fortress of Flags is a Stratego like game in which two armies compete on the battlefield with the goal to locate and destroy the enemy King. You move your army flags around a 3D battlefield of your choosing to trap and destroy enemy flags in your quest to find the enemy King. At first, neither army knows the values of their enemies flags. As the game progresses you will do battle with each other revealing the true value of the flags involved in the conflicts. The A.I. Sandbox version of Fortress of Flags allows you to write the A.I. component for the red army, in any language one chooses.

Other Contests

Al Zimmermann's Programming Contests
Each contest specifies a problem that you must solve. Generally, it's easy to find a solution but not so easy to find a good solution. Although these are called "programming contests", technically you don't need to write a computer program to enter. You can enter whether you use a computer, manual calculations, or tea leaves to solve the problem. Cash prize awarded to the top two winning entries.
Elevator Challenge
This is a programming challenge to develop the most effficient algorithm to control a bank of elevators in different building scenarios.
Game Bot Arena
This site provides several arenas in which you may enter a bot that will compete in an on-going tournament. As of 2005-12-03, there are tournaments for such classical games as Risk, Othello and Chess, as well as a couple I've never heard of, Hex and Twixt. This site needs more competitors!
POTM: Programmer Of The Month Contest
Despite the name, the contest frequency is more like 2-3 contests per year. The POTM master poses a problem which requires an algorithm to solve. You submit such an algorithm, written in your choice of language, and the POTM master runs all entries against each other to determine the winner.
Turing Tournament @ Caltech
The Turing Tournament is a two sided tournament designed to find, on the one hand, the best computer programs to mimic human behavior, and on the other hand, the best computer programs to detect the difference between machine and human behavior. Two types of submissions will be accepted: an emulator, which generates a dataset that mimics human behavior, or a detector, which detects the difference between datasets generated by human and machine behavior.
The ICFP Programming Contest Series
Yearly programming competition intended to test programming languages as much as the human programmers. The programming task is different each year. The challenge for the 2002 edition was to write player code for a robot game. The Seventh Antual contest (2004) task was to design the finite-state machine brain for a species of ant, and have a colony of your ants compete with a foreign colony. This was later turned into the on-going game Ant Wars (above).
X-O Game Arena
This site allows programs written in JavaScript compete at Five in a Row. The game is played using a square grid, on which the players alternate placing pieces. The object of the game is to get five of your pieces lined up in a vertical, horizontal, or diagonal line.
RoShamBo
Write a program to play Rock-Paper-Scissors, and enter it to play in an open competition against other programs. An occasional contest.
Gowachin
The successor to the Abbadingo One competition. The aim of this contest is to write an algorithm to learn the structure of a DFA (deterministic Finite Automaton). The Abbadingo One web site has papers, and code for some of the contest entries.
Top Coder
On-going programming contests and employment services.
Valladolid Programming Contest Online Judge
If you can't stand the wait between POTM contests, then this is for you! Several hundred programming problems, large and small, await. The online judge is accessible at any time to check your code!
International Olympiad in Informatics
The International Olympiad in Informatics (IOI) is an annual competition in the discipline of informatics (computing science) for senior pupils at secondary schools all over the world. Many many similar contests are held regularly, throughout the world.
USA Computing Olympiad
An annual computer programming competition for high school students in the United States. It is sponsored by USENIX and the training camp hosted by the University of Wisconsin-Parkside. The goal of the USACO is to select a team of four students to represent the United States in the annual International Olympiad in Informatics (see above). The USACO sponsors several contests through the year including:
Loebner Prize
Billed as The First Turing Test, the contest asks human judges to distinguish between other humans, and computers, via an electronic "conversation". This one pays real money if you win!

If you appreciate the above ...

... here are other links about programming and games that might be of interest.
Alberta GAMES Research Group
These folks study Game-playing, Analytical methods, Minimax search and Empirical Studies.
MASON (Multi-Agent Simulator Of Neighbourhoods)
A fast discrete-event multiagent simulation library core in Java, designed to be the foundation for large custom-purpose Java simulations, and also to provide more than enough functionality for many lightweight simulation needs. MASON contains both a model library and an optional suite of visualization tools in 2D and 3D. Collaboration between George Mason University's Evolutionary Computation Laboratory and Center for Social Complexity
The Open Directory Project
A human-edited directory with loads of good pointers, including a page on programming games and a page on programming contests.
Dennis Luehring's Programming Game Links
A very big list.
Video Games Directory / Programming Games
Another list of lists.

Games Gone Missing

The following entries did not have a working web site when last checked. If you know what happened or where the game can be found, let me know.
Agonism [http://www.agonism.com]
This site hosts several programming games. You can submit code, then watch it play against another player in your browser (Java required).
A.I Tactics [http://hisoft.fatal.ru/ait] [MSWindows only, binary only]
Another with its own programming language and editor.
Ant Wars [http://ant-wars.net]
Each contestant is a species of ant, which can visualize only the world immediately around him and pheromones left by fellow and enemy ants. Using this information, the ant brain (a simple state machine) must guide the ant towards collecting food at his home ant hill, while fending off or attacking enemies.

Clever use of pheromones and subtle behaviors can create large scale tactics such as raiding, defense, harvesting, and scouting when many ants cooperate.

The winner is the ant colony with the most food on their ant hill at the end of a match.

Funkbots [http://www.chebucto.ns.ca/~at555/funkbots/] [MSDOS only]
Yet another one with its own scripting language.
JCBots [http://www.geocities.com/SiliconValley/Haven/8434/jcbots.html] [MSDOS only, binary only]
From the web page: This is a simple BotProgramming Language which is based on Assembler. You can move around, shoot the enemy, scan for enemy, pick up energy, pick up ammo, create your own maps, create your own graphics for your robot. Since it is located on GeoCities, you will want to disable javascript before visiting the site, to avoid the annoying windows that pop up on every page.
Rova (Java Robots) [http://terius.hit.co.kr/~black/java/javarobot/] [Binary only]
Rova is the name of Java-based robot simulation engine and of the robot itself. The battle is displayed graphically through a java Arena application. Dennis Luehring emailed to say that Rova's author lost all sources, binaries, and backups in a computer crash some years ago.
Solitaire 500 [http://192.41.41.174/games/solitaire/wheels.html]
Contest from the Perl journal. (Contest ended May 1, 1999) Entries were Perl programs to determing optimal strategies in playing a particular form of 52-card solitaire. Full details on web page.
SYNtax [http://www.syntax-headquarters.tk/] [MSWindows, binary]
I'm told this is some kind of "AI game". It's hard to judge from the web page featuring putrid green text in 2pt type.

Last modified: 2011-12-20