Advertisement

Will A.I. for FPS always stay simple?

Started by July 22, 2003 02:50 PM
21 comments, last by DarkDream 21 years, 6 months ago
Most A.I. in FPS is fairly straight forward. There is an action, then one of several random reactions, while checking your ammo, health and your comrads health. What else could be done to make the A.I. better?
The enemies could remember your tactics from one game to the next, so that the next time you try to strafe them from behind a crate after playing the game 4 times already, they just toss down their weapons, grab a crowbar, corner you and smack you around.

Hmm... I wonder how well creatures would learn the best fighting tactics by just letting them fight each other in a variety of circumstances and each build up a database?
It's not what you're taught, it's what you learn.
Advertisement
One of the biggest improvements would be better coordinated movement... e.g. squad based movement in the enemy.

Dave Mark - President and Lead Designer
Intrinsic Algorithm -
"Reducing the world to mathematical equations!"

Dave Mark - President and Lead Designer of Intrinsic Algorithm LLC
Professional consultant on game AI, mathematical modeling, simulation modeling
Co-founder and 10 year advisor of the GDC AI Summit
Author of the book, Behavioral Mathematics for Game AI
Blogs I write:
IA News - What's happening at IA | IA on AI - AI news and notes | Post-Play'em - Observations on AI of games I play

"Reducing the world to mathematical equations!"

The real problem with FPS is that it is almost universally always a single player against a variety of enemies. Make the AI too good, and the player stops playing because the game becomes too hard.

My idea of great FPS AI has always been that enemies (or classes of enemies) have their actions controlled by a single neural network for that class, so as the player plays the neural network learns tactics which increase that particular enemy''s survival time, or can recognize old tactics. The fact that there is only a single network for a class of enemy''s though means that as the player gets better at the game, they also need to play smarter as reusing an old tactic over and over again eventually let''s all enemy''s of a particular type get the jump on them.

----
flying starfish




----flying starfish
quote:
Original post by flying starfish
My idea of great FPS AI has always been that enemies (or classes of enemies) have their actions controlled by a single neural network for that class, so as the player plays the neural network learns tactics which increase that particular enemy''s survival time, or can recognize old tactics.



An artificial neural network doesn''t ''learn'' anything... it''s just a function approximator. It can be trained, even periodically retrained - which is what you are suggesting - however the network itself doesn''t learn... at least, not for feed-forward networks.

One can build a hybridised network-training system that modifies network topology during operation, but even then, the learning actually occurs as a separate iteration of an estimate-train cycle.

Cheers,

Timkin
quote:
Original post by Waverider
The enemies could remember your tactics from one game to the next


This would be useful for better replay value for a game, but I''m not sure how well it could learn your tactics? How many tactics does a player use?
Most people either hide behide something and pop out to shoot the enemy or charge in guns a blazing hoping for the best. Tactics in a fps is very different from a tournament type game.

quote:
Original post by InnocuousFox
One of the biggest improvements would be better coordinated movement... e.g. squad based movement in the enemy.


This is one of the more interesting areas. A player taking on a squad is much more challenging than taking on a few enemies hiding behind boxes. If the leader of the squad dies, does the squad go into disaray? Does someone else take over but are now more cautious?

Thanks all for the input

quote:
Original post by flying starfish
The real problem with FPS is that it is almost universally always a single player against a variety of enemies. Make the AI too good, and the player stops playing because the game becomes too hard.


Balance is so important to good gameplay, yet how do you dumb down the AI without making them look really dumb? Perhaps you could drop them down to the next lower class that is less agressive?

quote:
Original post by Timkin

quote:
--------------------------------------------------------------------------------
Original post by flying starfish
My idea of great FPS AI has always been that enemies (or classes of enemies) have their actions controlled by a single neural network for that class, so as the player plays the neural network learns tactics which increase that particular enemy''s survival time, or can recognize old tactics.
--------------------------------------------------------------------------------

An artificial neural network doesn''t ''learn'' anything... it''s just a function approximator. It can be trained, even periodically retrained - which is what you are suggesting - however the network itself doesn''t learn... at least, not for feed-forward networks.

One can build a hybridised network-training system that modifies network topology during operation, but even then, the learning actually occurs as a separate iteration of an estimate-train cycle.


Is this cheating? Would the enemy really be able to do this if they were real? If the enemy was a robot, with shared info it could do this, but would it really be useful? Again, what kind of tactics could the AI learn that would make the game more challenging?
Advertisement
Every kind of character, monster, snowman, ect. is a unique entity and should be treated as such. Lets say your facing a 5 man squad of regular grunts from the army. How well trained are they in real life? they are the army for a reason, a mass of soldiers goes in guns blazing, hoping for the best. To make the most realistic A.I., you have to understand what your enemy is, that your creating A.I. for it, and figure out what it would do in the real world. Now, lets say your up against a team of S.E.A.L.''s. They are much different in tactical situations than the army. They go in stealthy, quiet, fast, and unpredicted. The difference between the 2 would mean you have a chance with one, and no chance with the other. Difficulty can only be determined for the A.I. by the creator, making variances in movement, tactics, recognition, and whatever else that may come into factor. In addition, something only appears difficult if the person playing can''t think at the same level as the A.I., and if that''s the case, then you did one hell of a job. But what one person finds hard may seem easy for another, so in reality, A.I. in this case can''t be adjusted for every individual. If you want to make them seem easier, then do something cheep and lower their health, armor, accuracy, and whatever else to make it easy. But it''s unfortuante that some people think this is the way to make easy or hard enemies, by raising or lowering accuracy to compensate for lazyness.

Also, making the enemies remember your tactics the 4th time around is out of the question. What good would that do... humans will just develop new tactics every time in order to win so the idea is pointless. But say I do run out of tactical idea''s and the A.I. has me beat. If my friend comes over to play, then the A.I. is totally screwed. The best way to make a game interesting every time you run through it would probably be making things like emotions for the A.I. This would allow them to have different reactions every time if their emotions and personalities are random and varied than previously before in order to make a different reaction to your coming every time. This can be done, but everone''s approach is different so if you would want to do this, then think of a way, it can be done. (I do have a way to do this, but maybe yours is better, so I won''t waste my time. And besides, This reply is way too damn big.)
Interesting comment ''If my friend comes over to play then the AI is totally screwed''. Not much different then when a human masters the AI of a fighting game then plays his friends, he is screwed. I used to play ALOT of Street Fighter II. I would hear guys say they were masters of the game and could beat the puter without barely taking a hit. But then put them against even a mediocre player, and they would get whipped up on. Not much to do with the topic, but I post it anyway. And for all those ''this doesn''t belong here'' posts following this one, bite me! =) lighten up! this is supposed to be fun!


And as for how to improve on FPS AI, one way would be for an AI guy to bait you into following him or to stay where you are at and lay cover fire on him, while he is radiong for a friend to come up behind you and slit your throat. I don''t think an AI out there uses the bait & switch tactic. Or if it does, I never played that game.
Some RTS games use a "playbook" of scripted types of manuvers. It is quite possible to do a "bait & switch" as you called it by doing a pincers attack with a delay on one of the sides... you respond to the right and then someone moves in from your left. Empire Earth was nasty about doing that occasionally - although I don't know if that was by design or emergent.

The guys can affirm this, but I would assume that it would be feasible to do "playbook" activity in FPS games between groups of enemies. In fact, I would suggest that there is going to be a blurring of the lines between classic RTS gameplay features and those of FPS. Likely, that will involve more complex, heirarchical AI for an FPS game.

Dave Mark - President and Lead Designer
Intrinsic Algorithm -
"Reducing the world to mathematical equations!"

[edited by - InnocuousFox on July 24, 2003 12:02:38 PM]

Dave Mark - President and Lead Designer of Intrinsic Algorithm LLC
Professional consultant on game AI, mathematical modeling, simulation modeling
Co-founder and 10 year advisor of the GDC AI Summit
Author of the book, Behavioral Mathematics for Game AI
Blogs I write:
IA News - What's happening at IA | IA on AI - AI news and notes | Post-Play'em - Observations on AI of games I play

"Reducing the world to mathematical equations!"

I''ve been using reality factory to prototype my game, which has a nice scripting language for the AI. (based on simkin)

Emotions adds alot to the AI. Some of my npc''s will taunt the player if he is hiding but my weaker npc''s are more cautious and will surrender and ask for mercy if their health is very low.
The next thing I want to implement is rage. If the npc is having a tough time hitting or losing the player then the npc will scream out in anger and fire wildly in all directions.

Another thing that would be cool is to have the npc''s speak a forign language, or an alien language if their from another world. Also, use of hand signals would go a long way to making the npc''s more believable.






This topic is closed to new replies.

Advertisement