AI and Why?
by Matt Fairfax · in Technical Issues · 05/22/2003 (11:43 am) · 9 replies
We had an interesting discussion about AI in the irc channel earlier this week and I wanted to relate some of it here in hopes of sparking a larger discussion.
Now, for the record, I have no experience with AI programming. I also know but a little of theory. So with that understanding, I am not trying to offer solutions but rather observations.
AI is getting smarter everyday. As computers get faster, games have more and more resources to throw at making the AI better. From what little experience I do have, it is generally not hard to cook up a way to make your AI smarter. Instead it is hard to cook up a way to make him smarter given limited computational resources. The good news here is that this problem will solve itself given time as computers continue to get faster. The graphics in a gmae are rapidly moving off the processor to gpus and in a few years we will have all the processing power needed to make our physics as realistic as we'd want. At that point all extra processing power can be plied towards the AI and AI programming will truly come into focus.
Now while this is nice and good and all, I already find that the AI in modern games have very little difficulty beating the crap out of me so I am not overly concerned with making them smarter. As I've heard it said, you don't need to make the AI smart, you just need to make them smart enough to give me a good fight and then to lose (I think Phil Carlisle said this).
Rather than worrying about making the AI smarter, I find myself concerned with making me and my audience care about the AI. After years of playing against humans and bots, I generally find that I get no enjoyment out of beating a bot. There is simply something more infinitely satisfying about playing with and against humans.
I think there are two critical elements needed for the player to start to care about an AI character. Usefullness and communication. We've all had to babysit our AI teammates from time to time and it continually reminds us that we are playing with a computer controlled automaton. A lot of this is the "smarts" I referred to earlier and I proposed, this has and will continue to get better.
There is a third element needed for the player to emotionally interact (love or hate) with a bot: personality. However, as Joe Maru pointed out to me, personality is simply an expected set of responses that the player gets to know, whether it be that the bot likes to make jokes about your mother or whether he tends to hang back in fights. As Joe pointed out with his experiences from Think Tanks, the "personalities" of their bots basically fell out of their pre-programmed behavoirs. People know that this bot is a sneaky sniper and that other bot is a suicidal nutcase. I think that it would be fairly easy for a game like Think Tanks to play on these personalities by given them voices and extending their revenge system into something more complex.
As a brief aside I would suggest that a revenge/grudge system is not quite enough to give the AI human-like behavior. Often times in multiplayer games you will find yourself forging temporary alliances with other players. Usually, these are unspoken. Sometimes you will just find yourself pulling your shots for one particular player as he does the same for you. Or you will team up briefly to take out someone who is giving both of you trouble. Other times you just find yourself outright running with a partner and it doesn't usually take long for others to notice and to team up against you. These sort of alliances (and breaking of) help to add an ebb and flow to the game yet you never see such happen with the bots. I think that implementing such a system along with a revenge and grudge system would help to make bot matches more authentic and to create more of an emotional connection between you and them (you might start seeking out a certain bot and trying to team up with him against another bot).
I believe that communication is an area of AI that is still in its infancy. Sure we can issue orders and in a few games the bots will give you a little feedback about what they are doing but this is a relatively unexplored area. Personally, unless I am directing a mindless robot army I never want to be issuing orders. Generally, in multiplayer games you rarely tell someone what to do, instead you relate to them what you want to do and they either follow you or not. At the most you can make suggestions. Whether or not that person listens to depends on how well they know you and how experienced they know you are. People who don't know you will usually only listen if they can look up at your score and see that you do know what you are talking about. A leader is usually just someone who is providing a little bit of organization. He doesn't say, "You three go down that hall while you four follow me." Orders such as that are generally ignored or argued with. Instead a leader will simply say things like, "Rush the tunnel!" or "Going for objective B" and if he is respected most of the team will follow along and feel pretty good doing so.
Communication in games tends to fall into two categories. The first is the chatting that takes place somewhat outside the gameplay. This is stuff like smack talk, taunts, jokes, observations, and just general stuff. It is often related to the game but usually takes place in the pauses of the gameplay. This type of chatting is where the "personality" of the AI can be strengthened. This can be done with something as simple as a smack talk generator or random quotes up to a lot more subtle context-based comments (much harder). The other type of communication is directly tied to the gameplay. This is when players coordinate their efforts and relay useful information to each other. I find it interesting that the AI often coordinate in their gameplay but that it is almost always a silent coordination that leaves the players out. Exposing their coordination would be fairly easy to do and would allow the players to work with the bots. The hard part would be to have the bots respond to the players coordinational conversations but I believe that this can be accomplished as well since most of this data will fall within a fairly narrow range.
Well, I believe I have summarized most of the points I made and the things I learned in the irc chat so I will leave it to others for now. I'm sure I will have more to say after I finish re-reading the logs for that chat.
Now, for the record, I have no experience with AI programming. I also know but a little of theory. So with that understanding, I am not trying to offer solutions but rather observations.
AI is getting smarter everyday. As computers get faster, games have more and more resources to throw at making the AI better. From what little experience I do have, it is generally not hard to cook up a way to make your AI smarter. Instead it is hard to cook up a way to make him smarter given limited computational resources. The good news here is that this problem will solve itself given time as computers continue to get faster. The graphics in a gmae are rapidly moving off the processor to gpus and in a few years we will have all the processing power needed to make our physics as realistic as we'd want. At that point all extra processing power can be plied towards the AI and AI programming will truly come into focus.
Now while this is nice and good and all, I already find that the AI in modern games have very little difficulty beating the crap out of me so I am not overly concerned with making them smarter. As I've heard it said, you don't need to make the AI smart, you just need to make them smart enough to give me a good fight and then to lose (I think Phil Carlisle said this).
Rather than worrying about making the AI smarter, I find myself concerned with making me and my audience care about the AI. After years of playing against humans and bots, I generally find that I get no enjoyment out of beating a bot. There is simply something more infinitely satisfying about playing with and against humans.
I think there are two critical elements needed for the player to start to care about an AI character. Usefullness and communication. We've all had to babysit our AI teammates from time to time and it continually reminds us that we are playing with a computer controlled automaton. A lot of this is the "smarts" I referred to earlier and I proposed, this has and will continue to get better.
There is a third element needed for the player to emotionally interact (love or hate) with a bot: personality. However, as Joe Maru pointed out to me, personality is simply an expected set of responses that the player gets to know, whether it be that the bot likes to make jokes about your mother or whether he tends to hang back in fights. As Joe pointed out with his experiences from Think Tanks, the "personalities" of their bots basically fell out of their pre-programmed behavoirs. People know that this bot is a sneaky sniper and that other bot is a suicidal nutcase. I think that it would be fairly easy for a game like Think Tanks to play on these personalities by given them voices and extending their revenge system into something more complex.
As a brief aside I would suggest that a revenge/grudge system is not quite enough to give the AI human-like behavior. Often times in multiplayer games you will find yourself forging temporary alliances with other players. Usually, these are unspoken. Sometimes you will just find yourself pulling your shots for one particular player as he does the same for you. Or you will team up briefly to take out someone who is giving both of you trouble. Other times you just find yourself outright running with a partner and it doesn't usually take long for others to notice and to team up against you. These sort of alliances (and breaking of) help to add an ebb and flow to the game yet you never see such happen with the bots. I think that implementing such a system along with a revenge and grudge system would help to make bot matches more authentic and to create more of an emotional connection between you and them (you might start seeking out a certain bot and trying to team up with him against another bot).
I believe that communication is an area of AI that is still in its infancy. Sure we can issue orders and in a few games the bots will give you a little feedback about what they are doing but this is a relatively unexplored area. Personally, unless I am directing a mindless robot army I never want to be issuing orders. Generally, in multiplayer games you rarely tell someone what to do, instead you relate to them what you want to do and they either follow you or not. At the most you can make suggestions. Whether or not that person listens to depends on how well they know you and how experienced they know you are. People who don't know you will usually only listen if they can look up at your score and see that you do know what you are talking about. A leader is usually just someone who is providing a little bit of organization. He doesn't say, "You three go down that hall while you four follow me." Orders such as that are generally ignored or argued with. Instead a leader will simply say things like, "Rush the tunnel!" or "Going for objective B" and if he is respected most of the team will follow along and feel pretty good doing so.
Communication in games tends to fall into two categories. The first is the chatting that takes place somewhat outside the gameplay. This is stuff like smack talk, taunts, jokes, observations, and just general stuff. It is often related to the game but usually takes place in the pauses of the gameplay. This type of chatting is where the "personality" of the AI can be strengthened. This can be done with something as simple as a smack talk generator or random quotes up to a lot more subtle context-based comments (much harder). The other type of communication is directly tied to the gameplay. This is when players coordinate their efforts and relay useful information to each other. I find it interesting that the AI often coordinate in their gameplay but that it is almost always a silent coordination that leaves the players out. Exposing their coordination would be fairly easy to do and would allow the players to work with the bots. The hard part would be to have the bots respond to the players coordinational conversations but I believe that this can be accomplished as well since most of this data will fall within a fairly narrow range.
Well, I believe I have summarized most of the points I made and the things I learned in the irc chat so I will leave it to others for now. I'm sure I will have more to say after I finish re-reading the logs for that chat.
About the author
I am a Game Designer at PopCap who has worked on PvZ Adventures, PvZ2, Peggle Blast, and Bejeweled Skies. I am an ex-GarageGames employee who helped ship TGE, TGEA, Torque 3D, and Constructor.
#2
The ideas you have are interesting and would make the AI more interesting to play with or against, but they won't change the basic problem.
05/28/2003 (12:01 pm)
Quote:After years of playing against humans and bots, I generally find that I get no enjoyment out of beating a bot. There is simply something more infinitely satisfying about playing with and against humans.That's because you know the bot doesn't care whether it wins or loses. In fact, you know that the bot is not even trying to beat you, it's trying to let you win by the smallest margin possible.
The ideas you have are interesting and would make the AI more interesting to play with or against, but they won't change the basic problem.
#3
Very true! AI will simply never be a substitute for playing with humans especially people you know (at least until the AI is really sentient). Hopefully, though, we can make the AI a little more fun to play with.
05/28/2003 (1:08 pm)
John,Very true! AI will simply never be a substitute for playing with humans especially people you know (at least until the AI is really sentient). Hopefully, though, we can make the AI a little more fun to play with.
#4
One game, as far as I am concerned, has mastered the art of artificial intelligence: Alpha Centauri. I would rather play AC against a full compliment of computer players than I would against a full compliment of human players. The computer personalities are much more exciting and entertaining than any human could be. The more flamboyant and exaggerated, the better: there's nothing quite like playing off Sister Miriam and Chairman Yang as their initial distrust turns to loathing and hatred, and then watching in horror as they begin to commit atrocities against each other, culminating in mutual Planetbusting. Playing with my friends just doesn't come close.
05/28/2003 (1:46 pm)
I'm not sure I agree entirely.One game, as far as I am concerned, has mastered the art of artificial intelligence: Alpha Centauri. I would rather play AC against a full compliment of computer players than I would against a full compliment of human players. The computer personalities are much more exciting and entertaining than any human could be. The more flamboyant and exaggerated, the better: there's nothing quite like playing off Sister Miriam and Chairman Yang as their initial distrust turns to loathing and hatred, and then watching in horror as they begin to commit atrocities against each other, culminating in mutual Planetbusting. Playing with my friends just doesn't come close.
#5
So the problem here is not that they ARE bots, but that we are constantly reminded through their inhuman behaviors that they are bots.
At least, that's how I see it.
05/30/2003 (1:45 pm)
Sure, you know that they are bots. But you know the game isnt real too, and it is still fun. The game has to allow you to suspend your disbeleif long enough for you to actually begin believing they are bots, just as it needs you to suspend you disbelief of the gameworld long enough to start caring about the game itself.So the problem here is not that they ARE bots, but that we are constantly reminded through their inhuman behaviors that they are bots.
At least, that's how I see it.
#6
There should be more random values in their behaviour. (as you may have noticed, I'm big fan of random:) - if bot starting the game states that this has been VERY bad day for him, await agressive and reckless tactics. Combined with ideas expressed above about bot involvement in chat sessions (come on, IRC bots have done it for ages:), it could give a bit more to emotional attachment to bots. Have you studied people responses to bots on IRC? Its quite entertaining.
Everybody knows they are just chunks of code but treat them like live beings nevertheless. Attitude is like to beloved doggy ("come on, botty, say your random line, now, will you?")
Multiplayer games can give actually extra depth to this relationship. For example, if bot is being laughed at or disturbed to much in chat, players who initiated it, can await more anger in game. This way, there is a REASON why bot hates or loves certain persons and chatting would become more meaningful, actually, part of the gameplay.
Bots have to have some restrictions to allow humans to win, we all can agree on that. Lets call these restrictions "taboos". But if each bot has its dynamic mood value, it can forget some of them when "pissed off". so they start sniping more accurately, hunt certain individuals etc. To neutralize the effect, players can try to "calm them down" - saying they love him, he is a good fighter etc.
More than that, each bot SHOULD have its personality. If Bubba is dumb warrior and reacts painfully to key phrases like "Bubba no fighter", "Bubba weak" or "sucks", then Desmond, for example, is more intelligent, replys to similar phrases more witty and holds the grudge deep, choosing opposing team next time and stalking personas non grata later with witty comments.
And then there is another bot, who is all "lets be friends", holds sportsmanship over everything else, rewards good shots with encouraging cheers and basically is good old buddy to everyone.
The problem may lay in the fact, that players would discover all these nuances only after a time. to speed up the process, bots should communicate between themselves, showing humans how the basic principles work. If Desmond and Bubba start exchanging taunts, third bot (lets call him Puppy), get in the middle ("Desmond didnt really mean it") and basically, monitors mood values of other bots to keep them balanced.
Having said all this, I have to say, that I have no AI experience at all, so maybe some of the thoughts may sound juvenile, however, I believe that "there is something in all this" :)
06/02/2003 (1:51 am)
Maybe problem is that players fairly quickly decipher the behaviour of bots. Not only tactically, but emotionally - they know what line bots will scream out when taunting etc.There should be more random values in their behaviour. (as you may have noticed, I'm big fan of random:) - if bot starting the game states that this has been VERY bad day for him, await agressive and reckless tactics. Combined with ideas expressed above about bot involvement in chat sessions (come on, IRC bots have done it for ages:), it could give a bit more to emotional attachment to bots. Have you studied people responses to bots on IRC? Its quite entertaining.
Everybody knows they are just chunks of code but treat them like live beings nevertheless. Attitude is like to beloved doggy ("come on, botty, say your random line, now, will you?")
Multiplayer games can give actually extra depth to this relationship. For example, if bot is being laughed at or disturbed to much in chat, players who initiated it, can await more anger in game. This way, there is a REASON why bot hates or loves certain persons and chatting would become more meaningful, actually, part of the gameplay.
Bots have to have some restrictions to allow humans to win, we all can agree on that. Lets call these restrictions "taboos". But if each bot has its dynamic mood value, it can forget some of them when "pissed off". so they start sniping more accurately, hunt certain individuals etc. To neutralize the effect, players can try to "calm them down" - saying they love him, he is a good fighter etc.
More than that, each bot SHOULD have its personality. If Bubba is dumb warrior and reacts painfully to key phrases like "Bubba no fighter", "Bubba weak" or "sucks", then Desmond, for example, is more intelligent, replys to similar phrases more witty and holds the grudge deep, choosing opposing team next time and stalking personas non grata later with witty comments.
And then there is another bot, who is all "lets be friends", holds sportsmanship over everything else, rewards good shots with encouraging cheers and basically is good old buddy to everyone.
The problem may lay in the fact, that players would discover all these nuances only after a time. to speed up the process, bots should communicate between themselves, showing humans how the basic principles work. If Desmond and Bubba start exchanging taunts, third bot (lets call him Puppy), get in the middle ("Desmond didnt really mean it") and basically, monitors mood values of other bots to keep them balanced.
Having said all this, I have to say, that I have no AI experience at all, so maybe some of the thoughts may sound juvenile, however, I believe that "there is something in all this" :)
#7
All I'm saying is that you have to be careful with random events, and make them likely and common enough that the player can notice them.
Also, about the chatting... I dont normally talk alot in multiplayer games like that, and I certainly would not if they were bots. Sure, it might be slightly entertaining for a little while, but it would be just another bot behavior after a while. And if you make their anger affect the gameplay too much to the point that you actually HAVE to talk to them and calm that down, then it just becomes irritating.
Just my perspective. :)
06/03/2003 (11:39 am)
The point about 'random' behaviors is a good one, but you have to be careful when making random behaviors for bots. I was reading an interview with one of the designers for the AI in Halo, and he pointed out that when you make behaviors happen randomly, people will often not notice these behaviors at all. For example, when you kill the leader of a squad in Halo (one of the Covenenat Elites) the rest of the squad of grunts should run away in fear. However, I never noticed this behavior, and I've played the game ALOT.All I'm saying is that you have to be careful with random events, and make them likely and common enough that the player can notice them.
Also, about the chatting... I dont normally talk alot in multiplayer games like that, and I certainly would not if they were bots. Sure, it might be slightly entertaining for a little while, but it would be just another bot behavior after a while. And if you make their anger affect the gameplay too much to the point that you actually HAVE to talk to them and calm that down, then it just becomes irritating.
Just my perspective. :)
#8
About the chatting bots, Josh, its the same as on every IRC channel. There are people who ignore them and there are those who "chat" with them all the time. It would simply add some liveliness in overall mood. Of course, they shouldnt be too active and maybe cease their activities when chatting between human players increases.
Back to the randomness: it would be enough for one player to notice bots behaviour changes to make all the others know as well. Its especially true for multiplayer games or games with strong multiplayer element - forums, chats etc are full of various nuances and tips.
Kubrick has said once that movie doesnt start in the cinema and does not end there as well. The same applies to games. Its more than chunk of code.
06/03/2003 (1:25 pm)
Interesting.. this makes tweaking 'randomness" of events or behaviour as important as "pure gameplay tweaking".About the chatting bots, Josh, its the same as on every IRC channel. There are people who ignore them and there are those who "chat" with them all the time. It would simply add some liveliness in overall mood. Of course, they shouldnt be too active and maybe cease their activities when chatting between human players increases.
Back to the randomness: it would be enough for one player to notice bots behaviour changes to make all the others know as well. Its especially true for multiplayer games or games with strong multiplayer element - forums, chats etc are full of various nuances and tips.
Kubrick has said once that movie doesnt start in the cinema and does not end there as well. The same applies to games. Its more than chunk of code.
#9
10/12/2003 (8:33 am)
I agree, Nauris, it's a Process , a means to an end. This whole system, art,code,graphix is used to entertain folks, and if that isn't achieved; all the star-spangled techno ain't gonna cut it(UnrealIIanyone?)...believe it or not; my work has involved me with several feature films. What you see onscreen, is a very tiny portion of what it takes to get that image to fill that aspect ratio...(secret:I keep hearing rumors of Superman/Batman showdown...shhhhh.)
Torque Owner Josh Albrecht
I have been working on AI for my game recently, and I've thought alot about what you say here. My game is a squad based WW2 game, and the AI for the soldiers and squads is of the utmost importance.
One of my major goals is to get the player to actually care about the soldiers under his command. I have seen this accomplished in a very few other games, but it has been done. (The WW2 mod for Myth II comes to mind, as well as Halo) In both games, the characters have names, look relatively human, and act relatively believeably. In Halo, I loved trying to get past a certain scene without losing many of my AI squadmates, and it was always fun to fight alongside them.
I think what you said about communication is crucial. For example, let's say that a squad runs from building to building by crossing a street. As they're doing so, one of the squadmembers gets shot and falls. I'd like to have him scream and shout for help, or for a medic, or groan and crawl towards cover. Perhaps the other squadmember could wince at his screams, and they should even possibly act to save him by laying down some covering fire and running back for him. If they decide to do that, the squad leader should say something to that effect, like "Johnson, you cover me. I'm going back for him."
I think that would really draw the player into the game by allowing them to relate to the bots and think of them more as humans than as game pieces.
Of course, the other aspects of the AI, like the ability to find intelligent paths, find cover when under fire, and perform all the other actions that a human could are crucial to maintaining the illusion of humanity for the bot. Those calculations are sometimes pretty complex, and so I think there is still alot of work to be done in that area as well.
Ok, enough rambling for now. Anyone else want to weigh in? :)