[artificial-intelligence] Best programming based games

Back when I was at school, I remember tinkering with a Mac game where you programmed little robots in a sort of pseudo-assembler language which could then battle each other. They could move themselves around the arena, look for opponents in different directions, and fire some sort of weapon. Pretty basic stuff, but I remember it quite fondly, even if I can't remember the name.

Are there any good modern day equivalents?

This question is related to artificial-intelligence

The answer is


Another game in this vein is Origin's Omega. Tanks are constructed on a budget, and then the user programs them in a BASIC-like language with a structured editor. The tanks battle on fields with varying terrain.


If you want to step away from your keyboard, Wizards of the Coast relased a game called RoboRally that is a combative programming board game.

http://www.wizards.com/roborally/


I think .NET Terrarium is one of the best 'learn-to-program' games for the .NET platform.


Matt, I think the game you're referring to is CRobots (or one of its clones, perhaps -- my first contact was with PRobots, in Pascal, if I remember correctly). It was a lot of fun.


In the flash game Manufactoria you "program" a factory by laying out the conveyor belts and switches in a way that's very similar to a FSM, but more powerful. This game is really great. Give it a try, especially if you're into formal languages and automata!

Manufactoria screen shot http://www.tomdalling.com/wp-content/uploads/manufactoria-bubble-sort.png


AI Bots II is a programmer's game. Instead of playing the game directly, players are required to write a program to do it.

There is an arena where two teams of players (called bots) are loaded. Each team needs one program, multiple instances of which will control each player of that team. [...] You write your program in C/C++. Your program runs parallely with the game.

(copied this description directly from the game homepage)


The game was Robowar--I used to play a bit back in college. Here's the wiki for it. I guess it's now open source and available on windows.


My favourite was PCRobots back in the 90's - you could write your bot in pretty much any language that could compile a DOS executable. Still runs quite nicely in DOSBox :)


I've never heard or Core Wars before, but it looks interesting. I do have to vouch for RoboCode, though. That's fun and challenging, especially if you have a group of people competing against either other.


Planetwars is a game specifically written for Google Ai Contest, bots are controlling fleets for conquering planets, they support many languages


Kara is about programming a bug(!) coming up in various versions, e.g. Finite State Machine, Java, Turing Machine, Multithreading

Kara http://www.swisseduc.ch/compscience/karatojava/kara/icons/kara-worldeditor.gif


In Grobots you give a program for various types of robots in your army (think gatherers, fighters, builders). And the best: they can replicate. Comes with its own programming language.

enter image description here


A game in which you have to graphically construct and train artificial neural networks in order to control a bug is Bug Brain.

Bug Brain screen shot http://www.infionline.net/~wtnewton/oldcomp/bugbrain.jpg


Core Wars is the classic, of course. But Rocky's Boots is another one. Imagine! There was a time (1982) when you could sell a commercial game based on logic gates!


I was also keen on these kind of games. One modern example which I have used is http://www.robotbattle.com/. There are various others - for example the ones listed at http://www.google.com/Top/Games/Video_Games/Simulation/Programming_Games/Robotics/


You must be thinking of RoboWar. Oh how lovely it is.

Still exists, though the community is slowly dying.

http://robowar.sourceforge.net/RoboWar5/index.html http://tech.groups.yahoo.com/group/robowar/


There's racing car simulator game TORCS also where on top of the typical end user playing it (you actually "driving" the cars), you can program robots which control the cars. Regular races are held between robots created by different people.


There's also mySQLgame, I found it pretty amusing (shortly after finding out I suck).

Here's what Casual Gameplay has to say about it.


If you are willing to look at single player games like Light Bot and Manufactoria then I highly recommend RoboZZle. It has conditional commands which include function calls. This allows for complex stack manipulation. There are thousands of user created puzzles from pathetically obvious to mind blowing enigmas. They have recently added support for smartphones.

I also think The Codex of Alchemical Engineering is worth a look.



I think the original game was called Core Wars (this Wikipedia article contains a lot of interesting links); there still seem to be programs and competitions around, for example at corewars.org. I never had the time to look into these games, but they seem like great fun.


I'd say the most famous programming game there has been is the core wars. I don't know if you can still find active "rings" although there was a lot when I tried it some time ago (4 or 5 years).


I've been trying to find the original game I was thinking of - I think it was called 'bots or something like that, and ran on my Mac back in around system 6 days. I'll have to do some digging next time I'm back at my parents place.

Thinking more about it over the last day or so, I suppose it's really not all that different to writing brains for bolo (http://www.lgm.com/bolo/) or bots for Quake and those sort of games.


Another good one is CEEBot. It teaches C / Java style programming in a fun, robot-programming kind of game. It is aimed at 10-15 year olds, but it is a good one.


Omega is one of them, I played it on C64 :)


http://en.wikipedia.org/wiki/Hacker_(computer_game)

http://en.wikipedia.org/wiki/Hacker_2

There is also a great hacking game the name of which I simply cannot remember. Hrm.


I like Ruby Warrior. It is still somewhat under development, but it is a great game with a clever interface.


I used to have a lot of fun coding my own robot with Robocode in college.

It is Java based, the API is detailled and it's pretty easy to get a challenging robot up and running.

Here is an example :

 public class MyFirstRobot extends Robot {
     public void run() {
         while (true) {
             ahead(100);
             turnGunRight(360);
             back(100);
             turnGunRight(360);
         }
     }

     public void onScannedRobot(ScannedRobotEvent e) {
         fire(1);
     }
 }

For a modern equivalent, check out CodeRally, it's a Java programming challenge where you write a class to control a race car. The car drives around a track trying to hit check points, refilling when the gas tank runs low, and avoiding obstacles. I think you can throw tires at your opponents. You can run a tournament with several players submitting code to a central server.

There are several other programming games listed on IBM's high school outreach page, including Robocode that others already mentioned.


Although not strictly programming-based, I enjoyed a lot Robot Odyssey, a game where you wired logic gates to sensors and motors in a robot, to make it move and react to environment, to get out of a city, escaping obstacles. I played in on Apple //e, it was one of the best games on this computer (with Lode Runner! :-)).


I played RoboWar, but the programming game I remember on the Mac was Chipwits. It came out in 1984. Completely graphical, but entertaining. From what I've seen of Lego Mindstorms, the programming style is similar.


Carnage Heart for PlayStation was fun. It would let you program little mechs to do battle using a flow diagram.

The Brain


I have so far found the game Cells to be quite satisfying.

The whole object of the game is to program a "hive mind", which is capable of surviving, breeding, and destroying its enemies.

Lots are good "minds" are provided by the author and various contributors, and it's easy to write others by looking at them.

However, the author seems to be progressing on it very slowly - the last commit was about a year ago.


I got myself addicted to uplink a few months ago. It's not really coding based, more hacking. It's still fun and super geeky.


There is a Spanish Java Page who organice a football leage in wich the users program the skills of their team and the strategy. You only need to download the framework and implement a little interface, then you can simulate matchs which are seen in the screen. When you are happy with your team and strategy you submit the code to the page and enters in the tournament.

Tutorials, videos and downloads:

Java Cup


I have to give a shout out to RobotWar which was the first programming "game" that I played way back in the Apple II days. It was written by Silas Warner of Castle Wolfenstein fame.


http://www.pythonchallenge.com/

highly addictive, and a great way to learn python


I'm surprised that Space Chem isn't mentioned yet. Programming with symbols, but programming nevertheless.

http://spacechemthegame.com/


One interesting historical game is the old Robot Odyssey, which was essentially a game where you programmed robots by building logic circuits out of gates and flip flops. I remembered it clearly when I took real EE classes over a decade later.


While it was more logic than programming per se, one I really enjoyed back in elementary school was Rocky's Boots. It had sensors, AND gates, OR gates, NOT gates, wires, timers, and all sorts of other stuff. Fantastic program for teaching a kid logic.

Go to the link and you can still play it!


Just found Light Bot. Program your robot to move around and perform tasks to complete a puzzle. Even includes subroutines. Program the bot by dragging tiles into slots. The game is very polished.

Update Lightbot is now the most recent version of the game, and has versions specifically designed for kids ages 4-8 or ages 9+ (with no upper limit) and also features kind of an if

screen of lightbot 1 http://www.lostateminor.com/wp-content/uploads/2008/10/light-bot.jpg


Colobot

It's usually easy for new programmers to pick up on languages like C++ when you have a strong understanding of Java basics. Colobot allows you to program automated craft using a language almost identical to Java and to move, sense, and manipulate their environment in order to accomplish missions on a dangerous planet.