Believable Stupidity In Game AI
Gamasutra is running a feature written by Mick West, co-founder of Neversoft, about creating game AI that is dumb enough to defeat, yet intelligent enough that its "mistakes" are similar to those a real player would make, thus preserving the illusion that the AI is not just throwing the game.
"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 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. ... 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."
Actually I don't have much issue with the quality of AI's used in games, but I don't like that so many of them cheat. A few games of gotten it right, but many AI's can track my movements through walls. In order to defeat the AI, I have to figure out how it works and so I'm constantly aware it has superhuman abilities and I find that very distracting from the realism.
Have a PRNG have the outcome of 313373 cause the bot to either:
- Fall on own grenade.
- Rocket-jump at 25 health.
- Hump the face of the nearest corpse.
Finally had enough. Come see us over at https://soylentnews.org/
So, basically, we have to determine how many "calculations per second" equivalent an average human can manage. Then we have to allow a range on either side of that since not everyone has the same capacity. Once we manage that, game AI would start being more realistic, huh?
Somehow I doubt it's that simplistic but still sort of interesting.
You know the thing about UDP jokes? I don't care if you get it or not.
This must be the problem facing the team creating Duke Nukem Forever.
They needed the AI to be dumb enough so you could hear the comments all the time during the game.
What I've always wanted to see is more scripted realism in games. For example, the Medal of Honor games worked much in the same way as a Disney theme ride with certain prescripted actions occuring when you passed by. Run across the field to the house, then the soldiers there will go through a scripted sequence of planning the next move, then they do so. You walk past the far side, a German tank triggers and comes crashing through at you. These are all nice starts. The original Aliens V. Predator game would have the human opponents freak out at random. You tear the head off of someone beside the soldier, he might drop his weapon and run screaming or start spraying the walls at random. And the most unsettling of all were the civilians who would run, cower and cringe away from you, the alien monster.
All of the above are tricks, not real intelligence but things that provide the illusion of intelligent agents engaging in realistic behavior. Critics will say the heavy scripting ruins the replay value because there's not as much room for variation and surprise but I think that it makes the games more interesting. Unfortunately, not many people go to the effort here.
I for one would love to see a shooter where I burst in on the room of baddies playing cards and see them fumble for their weapons, someone drops his, etc. It would be very realistic to have an enemy get the drop on you but his gun jams and he's left trying to clear it when you engage. As mentioned before, AVP created a sense of realism when the humans freaked out and started firing randomly.
When we get right down to it, players aren't looking to get their asses mercilessly beaten every time they play. Neither do they want a pushover opponent. Gamers want to win but they want to feel like they had to earn it. It's rarer to find gamers who want to push the working for it to masochistic levels but they do exist. They would be typified by Rogue fans. For those who don't know, Rogue is a dungeon crawler where you really should save your game except you can't except as a bookmark -- you can save it to come back later but if you die the previous save point is deliberately deleted. You have to beat the game in one go through.
The only other game I've encountered that masochistic is Escape Velocity Nova, a space exploration and trading game with a realism mode. You die in the game, you die for keeps, you have to start over. To its credit, it does offer a vastly different play style. For example, you want to hit a big pirate ship for max profits, you pick a world near where they spawn and land. Each time you launch local space reloads and a pirate might respawn nearby. You have maybe a one in ten chance of taking him as a lowly player but it's fun. You keep reloading and rolling the dice until you win and you get a nice haul. If you play it in hardcore mode, you have a vastly different approach to this sort of thing. For starters, you lose your ship and it's gone, you have to buy a new one. If you lose your escape pod, you're dead. You will take a vastly different approach tackling a monster like that when you risk losing hours of progress. This seems too much like work to me but some people love it. I think they're the same ones drawn to high-risk PVP games like EVE Online. I think it's a form of gambling addiction, the risk of possibly losing a lot of stuff and the thrill of making it through.
Kwisatz Haderach
Sell the spice to CHOAM
This Mahdi took Shaddam's Throne
Oh, the humanity! Football games drive me nuts when the AI does stupid things no real person would ever do. Why the hell did my fullback just brush by the linebacker that's right in my RB's way?! Why can't I get my linebacker to stay in his lane on running plays?!
I'd love to see the difference in difficulty in Madden being the difference between playing a Jerry Glanville-coached team vs a Tom Landry-coached team. Instead, all increasing the difficulty does is make your opponents more talented but no smarter. Even on the highest difficulty, FBs don't understand their blocking assignments.
Hmmm. Possibly this is a sign that TFA was written by an AI agent. Asserting that there are mistakes that are too stupid for for any human to make is a mistake that is too stupid for any human to make.
Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
Year after year, I read these kind of articles that report how game AI increases in leaps and bounds...and I still don't see it. Bad guys in GTA still seem to rush towards grenades, Halo/Gears of War enemies are either completely impulsive or avoidant. I'm not knocking the programmers...I think game AI must be very difficult to achieve, and even harder to detect for the layman (such as myself).
Does anyone have an example of really good AI in action games (or any non-RPG, non-RTS games)?
(-1, Raw and Uncut is the only way to read)
Fritz has a sparring mode which does a little better than that. It will find a route that sets up a position where the player can force a win of a piece or a pawn. Essentially it sets up a tactical middle game puzzle live in the middle of a game.
The player doesn't know when it will do this or even if it will happen at all. But it is most likely to happen when the player puts the computer under pressure. This is great because it teaches the player to press the computer and coordinate pieces while also constantly keeping an eye out for the wins.
The whole chessmaster series features near-perfect play alternating with just flat out dropping pieces.
Even with Fritz though, "easy" mode is still well above beginner.
t
If it is so difficult to raise the computers to the level of human intelligence, it is probably impossible to reach the level of human stupidity.
Unfortunately, the AI generally only gets a tiny slice of the CPU time. If it were to use as much as the graphics, etc, then sure: the extra processing required to make the AI believably stupid would be easy. The innovations are there, it's just they are too slow or processor intensive to be implemented in most games.
The author has obviously never played chess with me.
My first rule of game AI is that the computer should have access to the same information and controls as a human player. I hate games where the computer knows about your units and buildings that it hasn't scouted.
The big advantage that computers have is that they can micromanage every unit with 100% efficiency. One way to reduce skill could be to limit the amount of attention the computer can spend, maybe in the form of "actions per minute". For a game like poker that could be a limit on how precisely the computer player calculates odds. A more experienced human player has a better feel for the game, so a more skillful computer player could dig deeper into the nooks and crannies of probability.
A way that computers often act too stupid is not accounting for how their interactions with one player will influence other players who aren't directly involved. For example, in a three-way game the computer player might throw everything against the strongest player, weakening them both and letting the third player win. Humans have millions of years of instincts for dealing with such situations. So the game AI might need to precompute some game theory and adapt to opponent reactions over a series of many games. Then it could be dumbed down by reducing its use of that experience and acting more like a newbie human player.
If you want an AI to make human like mistakes, you have to have at least a roughly human cognitive model. The simplest way to do this, it seems to me, is to give the AI competing goals. Rather than just have the AI "try to win", and then cripple its ability to do that effectively, you could give it multiple goals to strive toward, and then give it some degree of randomness in which goal it chooses to pursue. Victory vs. pain-avoidance, attack vs. finding time to recover, etc.
Asserting that there are mistakes that are too stupid for for any human to make is a mistake that is too stupid for any human to make.
HA! I see through your ruse!
Have you driven a fnord... lately?
You must wait a little bit before using this resource; please try again later.
And vice versa.
One thing that is stupid: trying the same things that failed in the past.
This is a component of smart behaviors as well. If you don't know what to do, try something and watch very carefully how it fails. If you are in a desperate situation and you are going to definitely fail through inaction, then try an action which failed in the past and hope you get lucky. Or vice versa, when the action that usually works looks like its going to fail, try doing nothing.
Animals freezing in the face of danger is an example of this. It's not much of a defense, but you might get lucky. Maybe the prey a couple animals down the line will get itchy and draw the predator's attention.
On the other hand, smart behavior can be a component of stupidity. If the red button gets you a treat 80% of the time and the green one gets you a treat 20% of the time, the intelligently stupid thing is to push the red button 100% of the time. The stupidly intelligent thing is to try to work out the pattern of red/green rewards.
If you want realistic model of stupidity, provide the NPCs with a range of decision making strategies, all of which work to some degree, but the better of which take more effort (computation). The NPC can choose between the strategies with a random function weighted towards the better strategies, but as time and "stress" come into play the function can shift towards the easy but less effective strategies.
That's a pretty good model of human performance "choking".
Evolution did not produce human stupidity because it was useless, after all.
Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
If this were a karate match, this would be the equivalent of the master having to fight someone he's never met before, but that person has studied the master's every move. Then, after the master wins the fight, he has to fight someone else who has studied his every move and acts differently. Not a fair fight.
F.E.A.R. is the only game to date that I've played and honestly felt like I was playing against human opponents. Honestly, they were as smart as or even smarter than playing against people online.
They did this through heavy use of waypoints and scripted events. If that's what you have to do to make it realistic, then by all means, do it.
Do we have programmers that are smart enough to program stupidity algorithms to be smart enough to be as stupid as humans?
A computer that plays on equal terms.
AIs often win in some games not by the virtue of being smarter, but by having an unfair advantage. Examples:
My suggestion: An AI should be coded as a bot, within the constraints given to the player. If the player can only see a part of the battlefield (like in Starcraft) then the AI should have the same limit and need adjust its own viewport to gain awareness of an area. It should also be limited by the fog of war, and lack the ability to see out of the back of its head. To put in another way, a fair Starcraft AI would be one implemented with a camera pointed at the screen, controlling only the keyboard and mouse inputs.
The idea is that I want to be beaten because the AI is indeed smarter, not because it's got a superior access to the battlefield I can never gain.
Chess probably comes closest to the sort of thing I want -- the AI and human are fighting on very equal terms. I don't see the calculating millions of positions a second as a problem, that's simply an implementation detail.
Well, I don't know Kasparov and I'm not a history expert, but I'm willing to bet that because he beat Deep Blue in 1996, he just figured he could do it again with no problem. He probably underestimated how much Deep Blue had improved, but that's just my speculation.
I don't know Kasparov's motivations for playing Deep Blue at all, honestly. Beating Deep Blue wouldn't have won him any fame ("Oh look, he beat a computer. Computers suck at chess anyway."), but losing would look bad for him. He had nothing to gain and plenty to lose. I know after he lost the match, he demanded a rematch, but IBM refused and put Deep Blue out of commission. IBM had nothing to gain by beating Kasparov again, and their stocks had already started going up when the news got out that they had beaten the grandmaster (to their great pleasure, history did indeed forget the shady details I mentioned before, just as they hoped).
At the time that Deep Blue was being used, there was more of a focus on brute force search than tricky AI game play. Deep blue searched an average of 130 million nodes a second using a iterative-deepening alpaha-beta search, sometimes able to look 40 moves ahead. IBM declined a rematch after that game, but thanks to improvements in AI, a standard desktop PC running improved search algorithms is now a suitable match for even a grandmaster.
Deep blue also contained an 'opening book' of 4000 positions and 700,000 grandmaster games indexed.
Source: Artificial Intelligence A Modern Approach: Russell, Norwig
It's interesting that they say this actually. I'm a terrible chess player not because I don't 'get' the game, but because I'm not very patient. So I tend to do fairly well playing speed chess, but doing very, very poorly in a normal game. I tend to just get tired of evaluating the possible moves after a while and just make whatever one was the most promising out of the few that I did think about.
Isn't that sort of the same thing as limiting the number of calculations? In this case limiting the calculations would replicate the stupid moves that I (as a human/meat popsicle) would make, assuming that the order in which the computer evaluated possible moves was decided using more or less the same set or priorities that I would use (which are also probably stupid).
So the trick to coming up with a "realistic" AI opponent for chess might be more about figuring out how a human surveys the board and in what order they evaluate the moves. You can replicate the behaviour of dumb humans (like me) just by cutting off the evaluation at some very early point and scale up the difficulty by extending it.
It used to have hilarious consequences as AI cars behind the spinning-out-of-control AI car would crash into it, deflecting and causing a complete pile up.
This gameplay felt realistic because this is what happens when cars are travelling at high speed in close formation.
Newer versions of Gran Turismo on the Playstation 3 - have way more computation cycles and so the AI cars now drive a whole lot better and never seem to crash. Sure they take different lines into corners and so on - but they don't completely bollox it up like the human drivers often do. It has made the game pretty infuriating because it has taken a randomness factor out of the game.
i'm not involved into any of these activities, but i know Kasparov as a great mind and chess player because big blue won against him.
and thats probably what the history will remind us.
Eventually, a human would have been beaten anyway.
Kasparov had immortality to gain. In fact I'm fairly certain most people today remember him only as The First Person To Lose Against A Computer In Chess and have no idea who deep blue is.
Kasparov had immortality to gain. In fact I'm fairly certain most people today remember him only as The First Person To Lose Against A Computer In Chess and have no idea who deep blue is.
What! I was losing against my Sinclair Spectrum +2 as long ago as 1987.
Why is this debasement? Playing against a machine even in unfair settings is still a challenge. The goal isn't to pick only fights you can win but to test yourself and do something new and experience something new.
As for it being "unfair" it wasn't touted as fair it was a computer v grandmaster experiment not a ranking test.
The only shady part in my opinion is the refusal for a rematch. If the man is willing to play on uneven ground and give his time (even if paid) to your stunt then you should have the courtesy to let him challenge/redeem himself.
I read about in college. Kasparov did ask for the transcripts. However the Big Blue team told him no. Basically saying it would give Kasparov an unfair advantage because he could study Big Blue's moves and deconstruct the algorithm it used.
Many people in the tech world only know Kasparov's name because of his battle with Deep Blue. His name will likely be in history books for this reason. I would say he did indeed have something to gain by competing with the machine.
A slashdotter who didn't build his own computer is like a Jedi who didn't build his own lightsaber.
Take poker for example. We have a standard bias of "unknown = 50%". This actually works pretty well for cases where information is not known. To make the winning software programs, they basically program in the rules that a human expert knows to be true. It is NOT that hard to instead program in a bunch of rules that a human FOOL 'knows' to be true. Just find some bad poker players and ask them what they do in certain circumstances.
-------------- Similarly, the pool game could be made more realistic. I noticed the first thing he did was have the computer select the highest possible point scorign shot, ignoring banking a shot unless it is set to super-expert. That is NOT what humans do. Bad pool players pick the EASIEST shot - i.e. the one that is most straight on and least distance. (I know, I am a bad pool player). As you get better, you raise your standards about what you think you can hit. So a moderate player looks among all the shots he thinks he can hit and takes the highest point one of that.
excitingthingstodo.blogspot.com
You make a valid point. In 100 years, will people remember the name of a particular human chess player from year X? Maybe. In 100 years, everyone involved in AI and computer history will remember deep blue and Kasparov. By 'losing' he has written himself into history.
Scientists point out problems, engineers fix them
altslashdot.org: The future of slashdot.
As far as Thief goes, you have to admit at least that it was very good for the time. Making it hard to win in a fair fight made sense for the game, especially since it was one of the first sneaker games, and they kind of had to smack you over the head to let you know that you weren't supposed to run-and-gun through the game. If you didn't want to sneak, then you simply picked the wrong game.
Also, I was remembering Thief as a game that rightly didn't follow the "once your cover is broken, it's broken" thing. It was more like, if they saw you, you couldn't simply run into the nearest shadow and be safe. You had to evade them first, sufficiently that they wouldn't particularly know where you were, and then hide in the shadow. The effect wasn't perfect, but certainly you could get back into hiding after being discovered without killing the person who saw you.
I don't know what I'd think of Thief if I played it now, but at the time, it did seem to be some of the most interesting AI in a FPS, if only for how limited the enemies' knowledge was.