By programming game, I mean a game that involves programming, like Conway's Game of Life, or games in which you give your character a series of instructions to complete.
The other option, though it's not really fully a game, is something like this [1] which requires actual coding and computer knowledge to complete imaginary objectives (I consider it an educational game).
Finally, I have heard of games where individuals program AI's for certain tasks and they compete against other players' AIs.
Unfortunately (other than Conway's game of life and hackthissite) I don't actually know what they are called.
Robocode [1] is fun. You build your robot tank(s) off the Java based API and watch them go at it. We've done up to 10 man VS and 1v1 tourneys with it.
[1] http://robocode.sourceforge.net/Corewar [1] is a battle game which uses an Assembly style language called Redocde.
There are a few GUIs available and plenty of documentation to get started
[1] http://corewar.co.uk/Rubicon [1] and Manufactoria [2] may be of interest.
[1] http://kevan.org/rubicon/There are some games in which you program a robot in advance to perform a specific task. The flash game Light-Bot [1] is a nice example. The range of instructions is limited, but they are modular and there are even subroutines that can be activated repeatedly.
Tobias [2] pointed out that there's a newer version, with a new if mechanism (which means recursion is also enabled): Light-Bot 2.0 [3]. The main challenge of these two games is to fit the requires task in less than X instructions, as the instruction count is limited.
[1] http://www.kongregate.com/games/Coolio_Niato/light-botRuby Warrior [1] is a AI challenge game where you write the AI for a little character from scratch. if you don't know Ruby, it's a great oppourtunity. If you know a little bit about programming and Object-Oriented paradigms, then you'll find it very easy to write for this program.
Basically it's just logic the whole way. Put your self in the shoes of a little-ASCII warrior and become the Ruby Warrior!
Uses the Ruby [2] programming language.
[1] http://github.com/ryanb/ruby-warriorThere is a list of good programming games here on Stack Overflow [1].
[1] http://stackoverflow.com/questions/25952/best-programming-based-gamesNot so much programming, but the game NERO [1] is composed of two parts: first you train your bots to perform certain strategies, using evolutionary machine learning. You can then pit your team of bots against another team, possibly made by another player. Very impressive results if you invest enough time into it.
The training phase is done by settings "point value" to each one of several traits, and by evolution-like algorithms - only the best-performing bots are used as the prototypes for the next generation. You can also forcefully converge the evolution to a single prototype.
The combat phase is basically a zero-player game - (almost) all you do is just sit back and watch your bots fight other teams.
[1] http://nerogame.org/Whilst having no code, the game UPLINK by introversion studios requires planing, technical skill in execution and the ability to adapt quickly to a given scenario, in the guise of a dystopic future 'hacking' sim.
It is a board game, rather then a video game, but Robo-Rally absolutely fits the bill. Every turn you program 5 registers, and then all players run their programs simulatenously.
Any game turns into a "programming game" if you start automating it. Some are friendlier to this than others, like Asheron's Call...which Wikipedia says is:
"...known for its friendly stance toward third-party software, particularly Decal, which allows the creation of gameplay-altering plug-ins. At first, plug-ins were only used by the most computer-savvy players, and were well guarded between allegiances. Several public 'macros' eventually became an extremely popular and defining point of Asheron's Call..."
It's not precisely a game, but ToonTalk [1] is an interesting way of physicalizing programming. Rather surreal, with birds nests and boxes and bombs representing elements of programs that can be composed together to do various tasks:
"ToonTalk's syntax is animation, as in cartoons. The programmer takes on a persona and shows robots what to do by example."
Taking a bit more liberty with the "programming" part than the "game" part, I think The Incredible Machine [2] series is worth a mention. I like the systems mindset it encourages, instead of pigeonholing programming as an imperative robot that you control at will. (Sometimes there are reasons why balloons float up, and grabbing a particular balloon and saying "this one goes down because it's expedient" may not be as good as finding another way.)
StackOverflow sort of qualifies as a massively-multiplayer online programming game, though a better example would be something like TopCoder [3] where it's an actual competition.
[1] http://en.wikibooks.org/wiki/Software_Engineers_Handbook:Language_Dictionary:ToonTalkIf you're into the text adventure/interactive fiction variety, there's Lists and Lists [1], which teaches the basics of Scheme (a dialect of Lisp).
Another example is Inform School [2], based on Lists and Lists but it teaches Inform instead.
[1] http://ifdb.tads.org/viewgame?id=zj3ie12ewi1mrj1tIn Bug Brain [1] you program a bug, a worm and finally an ant using Neural Networks [2].
As a "bonus" feature, Braitenberg Vehicles [3] and a Learning Lab are also included.
[1] http://www.biologic.com.au/bugbrain/If you want a really awesome version of Conway's Life, check out Golly [1] - there are some really amazing things done with it.
[1] http://golly.sourceforge.net/I briefly tried out Colobot [1], which has quite a lot of programming. It has a C-like language built in you can use to make robots perform various tasks.
I believe the game is mostly educational, but if you like programming you can create crazy algorithms for stuff like:
There are a lot of degrees you can go to in a 'programming game', which end of the spectrum are you looking for?
Many older programming games are a tad on the 'so hardcore you better know how to program already' side. Newer programming games try to simplify programming in some manner.
On the 'light fun' side there's
Armored Core: Formula Front
[1] where the programming is done via slider bars.
Another direction that's been used is in
MindRover
[2] where programming is done by connecting electronic devices with wires.
Then there's the 'walk-over programming' method employed in games like
LightBot
[3] and
IQMarathon
[4] (cows!).
Those are programming games, but they try to hide it really well.
In the category of 'still obviously programming', there are many excellent options, some of my favourites being
The Codex Of Alchemical Engineering
[5] and
Bureau of Steam Engineering
[6].
C-Robots [1]
The robots are controlled by a program written in a stripped-down version of C. The robot's mission is to seek out and destroy other robots, each running different programs. The robots can be controlled in order to move around the battlefield, scan the environment to find enemies and fire at enemies using a cannon.
C++ Robots [2] is similar but the programming language is different.
There are clones several other languages.
[1] http://en.wikipedia.org/wiki/CrobotsIf programming included logic gates: Robot Odyssey
Kara [1] is about programming a bug(!) coming up in various versions, e.g. Finite State Machine, Java, Turing Machine, Multithreading
[1] http://www.swisseduc.ch/compscience/karatojava/index.htmlFacebook has Dinosaur Island [1] where your Dinosaur AI competes against others to earn survival points. And doing well might even get you a job offer!
[1] http://www.facebook.com/careers/puzzles.php?puzzle_id=19Hey, don't forget Robowar! It started out on the Mac ( a long time ago ) but, I think there's a PC port of it now, done in VB. It's alot like RoboCode.