I don't write much about game AI since there is hardly anything cutting edge in game AI to talk about. More than a year ago, I wrote a post commenting on some research out of the Austrian Research Institute for Artificial Intelligence showing that even irrational players could easily defeat the AI in the real-time strategy game Age of Mythology. I have been playing video games for almost 20 years now and every year people talk about how the new games will have so much better AI and every year game developers fail to deliver. The truth is, that the kind of AI that goes into a computer game has different requirements than the AI systems researchers are trying to build for solving real-world problems. The differences is what makes creating good game AI systems difficult.
Game AI has to be good enough to make the game challenging for the person who paid for it but also less than optimal in its decision making so that it is not unbeatable. Nobody would enjoy playing chess against Deep Blue that even Kasparov could not defeat; it just would not be fun for anyone and let's face it, computer games are designed to entertain more than anything else. So, game developers have to create AI systems that fulfill the above requirements something that is not an easy task.
Gamasutra recently republished an article that appeared in Game Developer magazine on the subject of creating AI systems that make mistakes giving the human opponent a chance to win the game but at the same time without making the game AI look totally stupid. Mick West, the article's author, explains how one way to make AI systems to be both challenging and entertaining is by simply limiting the computational resources available to them during gameplay.
The simplest way to introduce stupidity into AI is to reduce the amount of computation that it's allowed to perform. Chess AI generally performs billions of calculations when deciding what move to make.
The more calculations that are made (and the more time taken), then (generally) the better the computer will play. If you reduce the amount of calculations performed, the computer will be a worse player.
He argues that the above method which is commonly used in games is not easy to work with because developers have a hard time finding the correct threshold for computation time. The alternative method that Mick proposes is one that has the game AI intentionally playing poorly at times to give the human player a chance at winning.
The computer has to throw the game in order to make it fun. When you beat the computer, it's an illusion. The computer let you win. We just want it to let you win in a way that feels good.
AI programmers need to get used to this idea. We are manipulating the game, creating artificial stupidity, fake stupidity. But we are not predetermining the outcome of the game.
We don't set our AI with the intent to lose the game, but rather to give the human player a reasonable chance of winning. If the human plays poorly, the AI will still win, but the player will at least feel like she came close to beating a strong opponent, and thus feel like playing one more game.
The AI engine of the chess game Fritz was designed in such a way that the game will try to create situations that a smart chess player could exploit to earn an advantage over the computer and as such have a fair chance of winning. According to Mick, the game AI is not limited in the available computational resources but instead requires more in order to do this extra bit of thinking such that the game is both entertaining and challenging.
The article which you can read
here, gives more examples of game AI employing the above tactic for poker and snooker.