Heads Up!
In some heads-up games, such as chess and pool, the computer has a
huge advantage over the player. Modern chess programs such as Fritz are
vastly stronger than nearly all human players.
In pool and snooker
games, the computer can be programmed to never miss a shot. However,
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.
Remember what we are trying to accomplish: We want people to have an
enjoyable experience. No matter what the game, we want the players to
feel challenged so that when they win, they feel a sense of
accomplishment. We want them to feel that they were playing against an
opponent who was really trying to beat them.
By reducing the amount of computation, we create an AI opponent that
is trying to win, but has been crippled in a way that leads to
unrealistic gameplay. But does the player actually care about what is
going on under the hood? What if we don't cripple our AI, but instead
let it play at full strength, but have the AI deliberately throw the
game?
Throwing the Game
In sports, "throwing the game" means one side makes a series of
intentional mistakes that look natural, but result in losing the game.
This behavior is rightly vilified by players and fans, as the agreement
is that there be a contest between two equal opponents, or at least,
two opponents who are trying equally hard to win.
But in computer games, it's impossible to have an equal match. It's
humans versus machines. One side has an advantage of being able to
perform a billion calculations per second, and the other has the
massively parallel human brain.
Any parity here is an illusion, and
it's that illusion that we seek to improve and maintain via the
introduction of intelligent mistakes and artificial stupidity.
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.
Hidden Handicapping
Computer chess expert Steven Lopez (see Resources) describes how in
human versus human chess, it's acceptable for a high-ranking player to
give a much lower ranking player an advantage at the start of the game
by removing some of his pieces from the board before the game begins.
When the game starts, the master player and the novice player are still
playing to the height of their abilities, and yet the game is more
evenly balanced. The master player does not have to play "stupid" in
order to give the novice player a chance.
However, humans playing against a computer do not like to be given
an advantage in this way, and prefer to play the full board against an
AI opponent of approximately their skill level.
The programmers of Fritz hit upon a solution that involved the AI
deliberately setting up situations that the human player could exploit
(with some thought) that would allow the human to gain a positional or
piece advantage. Once the human player gained the advantage, the AI
would resume trying to win.
At no point here is the AI actually dumbed down. If anything, there
is actually quite a bit more computation going on, and certainly more
complexity.
The goal of the AI has shifted from "win the game" to "act
like you are trying to win the game, but allow the human to gain a
one-pawn advantage, and then try to win." The AI needs to be more
intelligent in order to appear less intelligent.