(First of an occasional series, I hope. Click the bolded links first, then come back for more)
I found Stuart Russell’s superb collection of AI-related links from a comment on this Slashdot piece about this IEEE Spectrum piece about AI in games. One of the many links on it leads to Jay Scott’s game learning page, which discusses ways of using automatic teaching methods (such as neural nets, genetic programming etc.) to generate game-playing AIs rather than building them out of pre-designed heuristics and the like. He discusses many interesting chess-teaching methods, most notably The Distributed Chess Project: download a client and help evolve a chess program. (The screen saver animates some of Bobby Fischer’s greatest games) This is different from the distributed ChessBrain project, which shares out move-calculation tasks via a Gnutella2/FastTrack-style P2P network to create the world’s biggest chess computer.
The Reverse Slashdot Effect – Slashdotted sites link back to the relevant Slashdot article – leads me to this comment and then this exhaustive list of Internet-based distributed computing projects, including: predicting the Earth’s climate, cracking the stock market, designing a better particle accelerator (check out those screenshots!), painting fractal flames, evolve robots and rendering frames of a movie. There is also much silliness.
Back to the AI: Prof. Russell’s page also links to this short, sweet piece of Bayesian nerdcore by Carl de Marcken for the MIT AI department’s weekly Girl Scout Benefit get-togethers. (The archive is a treasure-trove of smartarse silliness including some classic Greenspun.) Anyway, de Marcken co-founded ITA Software which created the software behind loads of airline-booking sites, and in this mail (on Paul “Bayesian Spam Filter” Graham’s site) he explains how their Common Lisp code, running on Google-style clusters of beefy PCs, can sort 100,000,000,000,000,000,000 itinerary pricing options in under 10 seconds. They use Franz’s Allegro CL, which was also used by Naughty Dog Software to create one of my favourite games of this year.
By nerdcore, I mean a certain type of sci-fi writing recently popularised by writers such as Cory Doctorow (see his “0wnzored“, with which he launched the term) and Charlie Stross (see the Hugo-nominated “Lobsters“). I think of it as SF designed to be read nostalgically as soon as possible. The cultural relevancy of a nerdcore piece has a half-life of six months. (No, that’s a compliment. Really. Hey, I’m a huge fan of Spaced. I love sneaky tongue-in-cheek references. I’m a geek, dammit.) Anyway, that particular little piece I mentioned earlier rang a bell because of this more-literary story that Danny pointed us at earlier in the week. (The campaign to get Cory to edit a nerdcore collection starts here.)
Want to have a go at developing some game AI? Have a go at Stanford’s Tetris project, which they hand out to CS students. It’s a Java implementation of Tetris with room for your own AI. (Yes, everyone now knows that Tetris Is Hard, but it’s still a fun place to start)
Alternatively, do it the other way around: The aforementioned Jay Scott references the Metagame, which is a system that can be given the rules of a game, after which it teaches itself how to play it. Metagame is 10 years old and seemingly defunct, but Zillions Of Games goes from strength to strength. (I first found it a few years ago and I’m really glad it’s still going) ZIG comes with 300 games, and you can download hundreds more from the website. Plus, you can make up your own games (or modify existing ones) and it’ll play you at them. (It’s even worked out some forced wins in classic games)