How do you make a video game opponent realistically stupid?
A lot of attention in the artificial intelligence literature has gone into making computers as smart as possible. This has any number of pretty obvious applications: sorting through large datasets, improving decision-making, dishing out humility, destroying the human race.
But for game designers, a different problem has emerged: how to make a game opponent believably bad:
<!–
document.write(”);
document.write(”);
document.write(”);
// –>&lt;SCRIPT LANGUAGE=”Javascript1.1″ SRC=”http://as.cmpnet.com/js.ng/Params.richmedia=yes&amp;site=game&amp;affiliate=gamasutra&amp;pagepos=jumbobox&amp;target=&amp;ord=78254965509718820?”&gt;&lt;/SCRIPT&gt;
… People want to play against an opponent that is well matched to their skills, and so there are generally levels of AI in the game that the player can choose from. 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. The problem with this approach is that it decreases the realism of the AI player. When you reduce the amount of computation, the AI will begin to make incredibly stupid mistakes — mistakes that are so stupid, no human would ever make them. The artificial nature of the game will then become apparent, which destroys the illusion of playing against a real opponent.
The approach being taken by game makers is to continue to make AI engines that are optimally rational — but then to introduce a probabilistic amount of realistic stupidity. For example, in poker, weak players are more likely to fold in the face of a large raise, even when the odds are in their favor. Game designers can incorporate this into creating “easy” opponents who are more likely (but not guaranteed) to fold when the human player raises.
So far, it appears that the game designers are using a pretty domain-specific approach — like modifying their poker AI based on the human errors that are common in poker. I wonder if additional traction could be gained from the broader psychology literature on heuristics. Heuristics are decision-making shortcuts that allow humans to make pretty good and highly efficient decisions across a wide range of important circumstances. But heuristics can also lead to biases that make us fall short of an optimal, rational expert, which is what most AI is programmed to be. Would game designers benefit from building their AI engines around prospect theory? Could you model the emotional states, and subsequently the appraisal tendencies, of computer opponents? Maybe someone is working on that already.
Having played a lot of poker, I find that weak players love to call the bets they shouldn’t. Of course, they also lose pretty quickly.
Anyway, it seems as though some people want games to regress to 10 years ago, but in a round-about sort of way.