Advertisement

First person shooter AI

Started by November 27, 2005 08:44 PM
21 comments, last by Timkin 18 years, 11 months ago
We need three things to dramatically improve the quality of FPS AI.

1) We need bots that interact with players on a psychological level. That is, rather than being passive reactants to the players interactions with the game, they should actively exploit the players mood to affect gameplay. Mood can be estimated through actions. If the player is racing all over the place, shooting at anything they see, they're probably hyped and excited (the adrenaline is pumping). If they're hiding behind a crate, they may be relaxed (if sniping) or tense, if setting an ambush. Using this sort of basic analysis and changing bot tactics and strategy would dramatically alter the experience one has in an FPS setting.


2) We need to retrain designers so that they realise that 'deterministic' and 'unpredictable' are not mutually exclusive. That is, something can be completely deterministic and yet very hard to predict, simply because of its complexity (the heart of chaos theory). Giving designers the tools to explore this complexity will open their eyes to the possibilities. Giving them the tools to funnel the evolution of the game state through disjoint narrow windows will enable them to generate storylines that meet certain design expectations, yet have sufficient room between the windows to expand into into temporary free-form gameplay.

Finally,

3) BoTs should think like players (and not like BoTs). By that, I don't mean they should be as intelligent, but they should play the game like a player does. They should vary their tactics depending on what their opponents are doing. They should suffer from human frailties (uncertainty, arrogance, fear, loathing, a desire for retribution, etc). Imagine being camped by a bot simply because you pissed him off by camping him!? Sound familiar?

Astrogrrl, if you're interested in making FPS bots a little more human, you might be interested in Emma Norling's work (and that of the Intelligent Agents lab at Melbourne Uni). They do a lot of work on AI for military training simulation environments. Emma did her PhD in this area, but due to the confidential nature of the sim environment, she implemented a lot of her ideas in Quake first so she could publish. Her work might give you some inspiration.

Cheers,

Timkin
astrogrrl, ok, sorry then I have no experience with "bots". AIs that populate a world to help out the scenario are a totally different thing in my mind than bots. They both have their complexities and I'm not really experienced with bots.

This link might be interesting to you, it's William van der Sterren's web page, it contains a few interesting links.

Hope this helps

Eric
Advertisement
Quote: Original post by astrogrrl
I just had an idea, what if the bot built up scenarios dynamically during gameplay? Then they could refer to situations they are in which are similar to ones they have experienced before. So essentially they learn through what they see and experience. Though this may break the deterministic rule, potentially some interesting gameplay could come out of it.


For linear scenarios, this is rather easy. You can search common sequences in observed player actions. For exemple, the bot could observe that the player always grab the sniper rifle and head west after respawning at location B. So if the bot hear a sniper rifle shot, it can look west of location B for the player. Or if it sees the player west soon after killing him, it can assume the player has a sniper rifle. We all have those habits when playing action games, all have our favorites way around maps... It would be interesting for a bot to observe this and vary its strategy accordingly.

But scenarios become really interesting when non-linear, and thats when they are complex to observe.
One thing that would always be interesting to me is interbot communication.

Ie. your running away from one bot (you need to achieve your objective quickly, or your running out of hp/ammo), and that bot tells another bot where you are.

That bot happens to be around the next corner, so it stops, backs up onto the wall, switches to shotgun, and shoots you in the back the second you come around.

Also, getting bots to call in for backup would be pretty nice. Just after you machinegunned a few bots, a few more come from behind and kill you.

Getting bots to divide fire would also be a nifty little attribute. Instead of everyone firing at whoever is closer, they all find there targets and shoot at them.

From,
NIce coder
Click here to patch the mozilla IDN exploit, or click Here then type in Network.enableidn and set its value to false. Restart the browser for the patches to work.
Quote: Original post by Timkin
We need three things to dramatically improve the quality of FPS AI.

1) We need bots that interact with players on a psychological level.


Hook up a neural probe to the player?? ;-)

Quote:
2) We need to retrain designers so that they realise that 'deterministic' and 'unpredictable' are not mutually exclusive.


The main problem with non-deteministic, unpredictable agents is that it becomes very hard to test them. It would be very embarssing to the company if they shipped a project and there bots did something quite bizarre. But I agree,
it is the future of game AI!
Quote: Original post by Anonymous Poster
The main problem with non-deteministic, unpredictable agents is that it becomes very hard to test them.


You didnt read what I wrote correctly. I said deterministic and unpredictable are not mutually exclusive. I did not say that agents should be non-deterministic.

You can have completely deterministic bots that are difficult to predict (if you don't have all of the information regarding their state and/or their agent function). In development and testing, where you know their state and function exactly (because you can look inside the bot with your design tools), you know exactly how it is going to behave given any specific stimulus. To the player though, who cannot access the agent function or assess the game state perfectly, they can only guess the agents behaviour. The degree to which this guess is accurate will depend on how well they have observed previous behaviour, how well they have assessed the game state and the nature of the agent function.

There are very specific mathematical measures for edge-of-chaos behaviour that can be used in the design process, so there is no need for any company to ship a title that they don't know exactly how it will behave. It just requires education and a willingness to extend what is currently the norm.

Timkin
Advertisement
Quote: Original post by Timkin
Quote: Original post by Anonymous Poster
The main problem with non-deteministic, unpredictable agents is that it becomes very hard to test them.


You didnt read what I wrote correctly. I said deterministic and unpredictable are not mutually exclusive. I did not say that agents should be non-deterministic.

Timkin


That sounds like cool stuff Mr. Timkin, maybe you could write up a small article on how this is done? It's hard to understand how it isn't mutually exclusive.

Quote: Original post by Timkin
We need three things to dramatically improve the quality of FPS AI.

1) We need bots that interact with players on a psychological level. That is, rather than being passive reactants to the players interactions with the game, they should actively exploit the players mood to affect gameplay. Mood can be estimated through actions. If the player is racing all over the place, shooting at anything they see, they're probably hyped and excited (the adrenaline is pumping). If they're hiding behind a crate, they may be relaxed (if sniping) or tense, if setting an ambush. Using this sort of basic analysis and changing bot tactics and strategy would dramatically alter the experience one has in an FPS setting.


2) We need to retrain designers so that they realise that 'deterministic' and 'unpredictable' are not mutually exclusive. That is, something can be completely deterministic and yet very hard to predict, simply because of its complexity (the heart of chaos theory). Giving designers the tools to explore this complexity will open their eyes to the possibilities. Giving them the tools to funnel the evolution of the game state through disjoint narrow windows will enable them to generate storylines that meet certain design expectations, yet have sufficient room between the windows to expand into into temporary free-form gameplay.

Finally,

3) BoTs should think like players (and not like BoTs). By that, I don't mean they should be as intelligent, but they should play the game like a player does. They should vary their tactics depending on what their opponents are doing. They should suffer from human frailties (uncertainty, arrogance, fear, loathing, a desire for retribution, etc). Imagine being camped by a bot simply because you pissed him off by camping him!? Sound familiar?

Astrogrrl, if you're interested in making FPS bots a little more human, you might be interested in Emma Norling's work (and that of the Intelligent Agents lab at Melbourne Uni). They do a lot of work on AI for military training simulation environments. Emma did her PhD in this area, but due to the confidential nature of the sim environment, she implemented a lot of her ideas in Quake first so she could publish. Her work might give you some inspiration.

Cheers,

Timkin


Well c'mon TImkins, you make it sound so easy, let's see you put your money where your mouth is! Let's see it!
Quote: Original post by Anonymous Poster
Well c'mon TImkins, you make it sound so easy, let's see you put your money where your mouth is! Let's see it!


Such antagonism and rudeness is not called for. If you want more information you simply had to ask for it politely, rather than 'challenging' me publicly. You seem to think that I'm just sprouting bullshit to be heard... you're obviously new around here... but I'll put your ignorance aside and answer your question. (btw, double posting is not permitted... yes, I can see your IP address).

The answer is easy, it just requires that you understand something of dynamic systems, which is something that most game AI programmers and designers lack (since most are just average programmers with little or no explicit education in AI or mathematics). Thankfully many of them do display a willingness to learn more about their craft. If they're reading this, then they're welcome to this information (since it's fairly common knowledge in formal AI/control circles).

Any state machine, during its operation, traces out a defineable trajectory in both state space and in phase space. Trajectories in phase space define a vector field and this can be analysed for its divergence considering the magnitude and sign of the Lyapunov exponents of the system. Positive exponents represent divergent energy in the phase space trajectories. Negative exponents represent convergence. One of the requirements for chaos is that the largest positive exponent have greater magnitude than the most negative component. If they are (nearly) equal then you get 'edge of chaos' behaviour.

Irrespective of whether or not the state trajectory is chaotic, one can define its behaviour for all time by identifying the phase space attractor that governs the state space trajectories. Designing and tuning state machines with a view to their phase space properties gives designers far more powerful tools to provide a deeper understanding of the dynamics in state space.

It's fairly trivial to write down deterministic (and simple) mathematical expressions that produce bounded, yet chaotic behaviour. Knowing the state of the system at any instant the succeeding states can be predicted exactly, without any resort to approximation. However, if the system is chaotic (or even just nearly chaotic') then small errors in the knowledge of the state will show as a divergent predicted state trajectory from the true one. Designers can access exact state information to predict the behaviour of their bots exactly. Game players cannot do this. Depending on the rate of divergence in the local region of the state space they are currently in, the temporal horizon over which they can accurately predict the state evolution will be limited.


Timkin
Quote: Original post by Timkin
Quote: Original post by Anonymous Poster
Well c'mon TImkins, you make it sound so easy, let's see you put your money where your mouth is! Let's see it!


Such antagonism and rudeness is not called for. If you want more information you simply had to ask for it politely, rather than 'challenging' me publicly. You seem to think that I'm just sprouting bullshit to be heard... you're obviously new around here... but I'll put your ignorance aside and answer your question. (btw, double posting is not permitted... yes, I can see your IP address).



Well, gee I'm real sorry. Please forgive me.


Quote:
The answer is easy, it just requires that you understand something of dynamic systems, which is something that most game AI programmers and designers lack (since most are just average programmers with little or no explicit education in AI or mathematics).


Gee, it sucks being a lame, average programmer.

Quote:
Any state machine, during its operation, traces out a defineable trajectory in both state space and in phase space. Trajectories in phase space define a vector field and this can be analysed for its divergence considering the magnitude and sign of the Lyapunov exponents of the system. Positive exponents represent divergent energy in the phase space trajectories. Negative exponents represent convergence. One of the requirements for chaos is that the largest positive exponent have greater magnitude than the most negative component. If they are (nearly) equal then you get 'edge of chaos' behaviour.


Uh-huh. That sounds *real* easy. Like I said, let's see it *work* and not just a bunch of bullshit about how easy it actually is...


This topic is closed to new replies.

Advertisement