Upcoming Events
Unite 2010
11/10 - 11/12 @ Montréal, Canada

GDC China
12/5 - 12/7 @ Shanghai, China

Asia Game Show 2010
12/24 - 12/27  

GDC 2011
2/28 - 3/4 @ San Francisco, CA

More events...
Quick Stats
89 people currently visiting GDNet.
2406 articles in the reference section.

Help us fight cancer!
Join SETI Team GDNet!
Link to us Events 4 Gamers
Intel sponsors gamedev.net search:


 Games of Perfect

 What We Need

 Move Generation
 Search Techniques

 Printable version


  The Series

 Getting Started
 Data Structures
 Move Generation
 Basic Search
 Advanced Search


This is the first article in a six-part series about programming computers to play chess, and by extension other similar strategy games of perfect information.

Chess has been described as the Drosophila Melanogaster of artificial intelligence, in the sense that the game has spawned a great deal of successful research (including a match victory against the current world champion and arguably the best player of all time, Gary Kasparov), much like many of the discoveries in genetics over the years have been made by scientists studying the tiny fruit fly.  This article series will describe some of the state-of-the-art techniques employed by the most successful programs in the world, including Deep Blue.

Note that by the time the series is completed (in October), I will have written a simple implementation of the game in Java, and the source code will be freely available for download on my web site.  So if you want to see more code samples, be patient; I'll give you plenty in due time!

Games of Perfect Information

Chess is defined as a game of "perfect information", because both players are aware of the entire state of the game world at all times: just by looking at the board, you can see which pieces are alive and where they are located.  Checkers, Go, Go-Moku, Backgammon and Othello are other members of the category, but stud poker is not (you don't know what cards your opponent is holding in his hands).

Most of the techniques described in this series will apply more or less equally to all games of perfect information, although the details will vary from game to game.  Obviously, while a search algorithm is a search algorithm no matter what the domain, move generation and position evaluation will depend completely on the rules of the game being played!

Next : What We Need