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
Wow, lots of comments. i feel late to the party

Should enemies remember your tactics? Depends. A *big* question in game AI that many people seem to miss - are you modeling a player sitting at a keyboard playing against you or are you modeling a real soldier (monster, etc.) who doesn''t know he''s a computer game character. One doesn''t know he''s in the matrix and that he''s playing a god and he has a real short life span and so can''t learn anything. The other is trying to prove his is bigger than yours and so wants to beat you personally. The difference shows up most in single player vs. multiplayer - multiplayer you always assume you''re playing a human controlling a game piece and in single player the game pieces all control themselves

Would you be screwed if your friend came over? Maybe, maybe not. If you want AI to adapt to a player (and that''s a feature and should be marketed) then you make the player log in. Friend comes over and friend plays the default AI. Besides, humans can radically change their patterns, especially when they''re bored or frustrated. Most AI doesn''t handle this type of "learning" well but cogsci has some useful concepts on this (the recency effect in memory and learning and the Best One heuristic from the German ABC decision group)

Will an artificial neural net learn? No. ANNs aren''t like neural networks (the things in your brain), they don''t learn. You train them before you use them and then you cut them off from changing and use them. Timkin already discussed that

Should every unit have it''s own emotions and strength and stuff? Sort of. i really, really liked this presentation by the Halo AI guy on how you really shouldn''t do that because it makes the AI seem stupid (seriously, they tested it). They made two points. First, don''t make an AI random, it bugs people. Not sure how much i agree with this, but what they said is that humans are random so just make the AI react to the player and the AI will appear intelligently random. Second, SHOW EVERYTHING. Good: NPC AI brazenly wears its heart on its sleeve. Bad: NPC AI has a complex internal world but the player can''t see it or tell what''s going on. Point being, have some really obvious way of telling the player how the NPC feels (via animation and talking) so the player "gets" that there''s something going on. A sad animation looks more intelligent to a user than an NPC with a complex internal world that affects it privately

And as for strength and ability, this is done today. You differentiate between classes of characters with uniforms. Poorly trained grunts have one uniform, the elite have a different one

Squad tactics? That looks more intelligent than single player death match stuff. i''m assuming this will be the next big wave of FPS AI. But here''s the problem - it''s hard for a group of guys who have you cornered in a room to display intelligence. You need the right type of game to let this type of intelligence shine through. This one has been challenging for me. i''ve seen several demos on academic AI papers but it''s easier there because you''re watching on a zoomed back overhead view, you''re not in a game. In games, intelligence not seen is intelligence that doesn''t exist, at least as far as the player is concerned

How many tactics does a player use? Oh gosh, this has been bugging me. Watching people play multiplayer FPS games (all of which are deathmatch as far as most players are concerned ), it seems like there''s not really that much strategic or tactical thinking going on. The common approach is a)run to get biggest gun, b)get biggest powerup, c)point at anything that moves, d)fire, fire, FIRE! It''s especially bad in games where you instantly respawn because you have nothing to lose. i''ve been trying to think of what''s really lacking in FPS AI and i honestly don''t know

How do you make the proper level of difficulty? i love this question and have been thinking about it the last few months. i want an NPC that can hustle me, like my friends who make sure they always beat me by just one point. i want to feel challenged. i don''t want to be unbeatable like god or sucky like me, i want to feel like i''m trying hard and earning progress. So how do you do that? Varies a bit by game. You could dynamically adjust # of armor, ammo and medical pickups. You could adjust accuracy of enemy AI. You could adjust response time of enemy AI. In Halo the AI starts off fairly inaccurate and then, if you stay still (camp) they get more and more accurate to encourage you to move (it''s a running game i guess)

How do you improve FPS AI? i''m not sure what the problems are so i don''t know. The few things that come to my mind are:
- Don''t lock NPCs to an area. In Thief they chased me
everywhere but in most games the bad guys stay in one room
- Move. In Delta Force the NPCs walked beats and in
Medal of Honor they were in random spots but in most
games they''re always in the same place waiting for you. Yuch!
- Do everything i do. If i can swap weapons and pick up
health packs, you should to. One game i love was SoF 2
because it has civilians. If a fight breaks out, they
run. If they happen over a body with a dropped gun they
grab the gun and defend themselves
- No magic spawning. Spawning sucks
- Multiple outcomes. Sin is the only game i know of where
what you do actually matters. Example - shoot a water
main in level 2 and the alleyway is flooded in level 4
- Run for help. A lot of games do this now, but it''s fun
to see someone run to push an alarm button and know
you only have so long to get him or else fight off
a new wave of bad guys
- Retreat and quit if necessary. Why do NPCs fight to the
death? They can''t restore like i can, when they have 1HP
they should run
- Camp and move. i like enemy snipers but once you shoot at
me, don''t sit there, move to a new spot. Otherwise i''ll
find you
- Cower in fear when you''re losing. Then stab me in the
back maybe if i let you live. The first time i saw
an unarmed scientist do this to me in SoF 2 i was pissed
- Notice sounds and little things like your buddy''s corpse.
Thief was good at this, most other games stink at it
- Use the environment. Level designers always put bad guys
next to the omnipresent exploding barrels. If i''m near
one, shoot it and blow me up
- Hurt me. Why am i perfectly OK and then dead? When i have
1 HP i can still act as if i''m at perfect health. Some
games make you limp and less accurate. Good for them
- Use grenades. NPCs in SoF 2 were always flashbanging
and blinding me. It was cool
- Set traps. i love trip mines. The world needs more trip
mines
- Recognize avenues of approach and learn mine.
In Counter-Strike, it was common that the T were in one
area that had 3 paths leading to it. i generally prefer
one. If i sneak through the tunnels every time, remember
that and wait for me (with trip mines!). Make me change
my tactics

OK, lunch meeting, gotta go

-b
Baylor touched on something - but rather than quote and snip, I will reintroduce on my own. FPS games, in their predominate form, run way too fast and frenetic for anyone to really NOTICE the enemy AI. Doom and Quake were notorious for this. When I was at E3 and heard Carmack speak regarding the upcoming Doom III, he pointed out that there would be less "roomfulls of Imps" that you could just lob a rocket into like a bowling ball. Because of the graphic intensity of the game, they had to design for fewer, more powerful and engaging, enemies. They found a way to make it fun, however.

Compare the run and gun tactics we all got used to in Doom/Quake et al to something like Rainbow 6. When that first came out, people quickly realized that you couldn''t apply the same skills and tactics to Rainbow 6 because you would get whacked! That forced the player to slow down both physically and mentally. They had to think things out and approach with caution. Because of that, the player had more time to observe and appreciate the AI that went into the opponents. In turn, that made it necessary that the AI was more robust since it was likely that the enemy would be around longer that the few moments it takes to BFG him.

If there were a concious effort to slow down the gameplay so that elaborate AI was needed more and noticed more, there are many things that can be done to improve it. As it stands now, this is simply not necessary.

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!"

Advertisement
Squad based combat always lends something positive to a game, so allowing a player to see his tactical prowess is rewarded by a teammate''s complimentary action is a very nice feature in a game. Allowing the enemies to work together as a cohesive unit is a good idea, too. Use of camoflauge, hit-and-run tactics, herding, cover fire, and psychological warfare are some possible elements of game-play with a little depth.

When you find yourself in the company of a halfling and an ill-tempered Dragon, remember, you do not have to outrun the Dragon...

Without order nothing can exist - without chaos nothing can evolve.
Well, my addition is how I think an FPS AI should be made. It''s how I was planning on making one if I ever did.

It''s a very simple concept, but basically, start out with giving them piss-poor aim. Then develop thier tactics and routines until they are hard, *with* the piss-poor aim. Then adjust their aim for difficulty tweaks.

Seems to me too many people rely on aim for difficulty. Yeah, its definately a large portion of FPS skill, but I often see that preferred over tactics. You know, accomplish simple map walking and increase thier aim until they are hard... bleh.

Anyway, that''s my 2cents, but maybe I''m wrong and this way would suck .




weee!
The reason people rely on aim for difficulty in a FPS is because that's what most FPS's are all about. If you have perfect aim then it doesn't matter how, where, or why you take one path over another: you'll still win.

One player with perfect aim can wipe-out 8 players with 'okay' aim 9 times out of 10. The same rule has to be applied for 'bots as well. Even BF1942 carries this theme.. If you can fly the plane well you can kill everybody, everytime.

Personally I like the way POD Bot works for Counter-Strike. In hostage levels, the terrorist all camp around the hostages. The counter-terrorists all run towards the hostages. The rounds are quick and the battles are quite realistic. Navigation is accomplished via pre-set way points, camp-points, and goal-points. The bot's kind of 'wander' from way-point to way-point and go in to a combat mode once they make contact. Difficulty of the bot is based on aim and a few other factors (like moving in a way thats difficult to track).

Will

EDITED

[edited by - RPGeezus on July 25, 2003 1:59:43 PM]
------------------http://www.nentari.com
this is my reresponce. I am glad to see people taking interest in this, and especially what I said, so here I go again to try and spice things up.

I have been playing alot of POD bot for counter-strike recently, and I''ve come to learn a few things. I agree and disagree with you all here and there. On the subject of battle speed, I believe that you get mind fucked in FPS fights when things like bullets start whizzing past you, especially when one hits you. If you can lean a player into a fast paced battle slowly, and then open up the bfg''s, then everything they feel they have strived for and learned in the past will kick in. While it all may seem like an aiming war (which is basically true), you really do use a lot of tactics. Think of militia in c-s for a minute. when ur a T at the window and the good guys are coming with aug''s and colt''s, you fire off some rounds and duck or go somewhere else or you will die. I guess the point is that even though some things cannot be seen, doesn''t mean it isn''t there or shouldn''t be there. If it wasn''t, then you would have died as you stood in that window. In an FPS, you have to make the player feel like they''re fighting for something, something that seems vital for them; may it be beating the game, living, getting that sweet gun, moving on, whatever. As long as they feel like there is something to lose even if there may be nothing.

I am working on some bots for Day of Defeat (it''s been a while since I deleted c++ accidentally, but if you want my beta version, just ask.) And my latest goal is to have the bots remember places that they have seen you over and over. You know that if you''re sniping in the enemy base and if you stay too long, your buddies will find you very soon, so you force yourself to move. The same is what I am trying for. It gives them a realistic feel. I may not be able to make an ann for my bots, but I can still make them "learn" in a way that would seem real. And that is what A.I. is suppose to be.

The use of tactics has already been in use for quite some time, along with that scripting idea you guys were talking about. Think of half-life, when you played that game for itself, not for the gazzilion mods. When fought those grunts in black mesa, they used tactics, didn''t they? or were they scripted events? it honestly doesn''t matter, because to you it seemed real enough. The leader of the squad would cover for his soldiers and one from the back would lob a grenade at you while another came at you with his dual shot shotgun, all the while staying behind concrete supports and crates. For anyone who''s disected the game already knows how that all worked out. And even so, that worked didn''t it? that game''s like what, 6 years old? that seemed pretty good "tactics" to me. So like I said, If it appears real to the person, then it''s real enough. Simple things like that are all you need. The rest can come in testing, but first, you have to ask yourself when creating a.i., "what would I want it to do?" "What would I want to see?". However, keeping fps a.i. in a reaction mode all the time won''t be going anywhere because things are changing and a.i. will have to as well. Just think to yourself, "What would I want to experience?" "What''s fun and exciting?". Granted, not everything you find fun is the same for me and everyone else, but still, it''s a start. I hope (or at least think) in the right direction.

oh, and RPGeezus, I don''t fully agree with you there, 1 guy with marvelous accuracy may be great against 1 or even a couple average guys, but a team for average guys will win against that one great player almost every single time. Think about it, teamwork will smote a lonewolf in the open.
Advertisement
i have an idea,if a very very advanced neutral and classicism AI inteligence behind a FPS game decides his actions with some neural random energy transmition not based on clock processor but on the time that the player got to do same action,in that way it's more realistic,because the AI decisions don't depend only on computer intructions but also in the Human reaction capability.

i forgot to explain in what my theory is based.
Neural AI - Pleutonik transmission
a Pleutonium have 4 links,1 internal and 3 external
2 of the 3 external links receive energy, then the internal link compares that energy to the Alpha Value (the max energy value in this pleutonium) and if the received energy is greater than Alpha Value then this pleutonium sends a calculated value of energy to the next pleutonium, if not,he waits for more energy and doesn't send it for the moment. the mix of both receive links can create cool results.

sorry about my english... i hope that u understand what i tried to explain :|

:D

_,,,^Ó..ò^,,,_

[edited by - KosmiC_Khaoz on July 28, 2003 1:05:15 AM]
Innovating another form of communication in an AI might make it better. I would most definitely enjoy an AI that could talk non-procedurally at high-level.
while, I see what ur trying to say as a connection between the a.i., i don''t see that happening anythime soon, however that is quite clever. I see that this could be done, i just don''t see how. perhaps a simpler way could be done with what we have now for a.i. I''d like to test this on my DoD bots, but i''m not sure how I would use it, maybe for tactical maneuvers and for talking to one another. It''d be hard tho, but I see it working. As soon as I figure out how to do that and what to use it for, I''ll let you know how it turns out.

And I have a new idea, instead of launching random things out here, I say we make a new thread and discuss ways of making improvements on the a.i. we already have. If anyone''s interested as to what i just said, then look for the new thread, and bring your a.i. idea''s there and elaborate.

"you can''''t understand some thing you can''''t create."
"you can''t understand some thing you can''t create."
I went home and messed around with POD bot (for Counter-Strike) in the hopes that I could add something more constructive than ''shoot enemy in head''.

There are a few small features that could be added to the POD bots to make them dramatically more realistic. I''ll outline them here.

1. The bots follow way points until they get in to a combat situation. Once combat occures the best laid plans break down for the following reasons:

The bots will crowd each other. A small hallway can become packed with bots. Power in numbers doesn''t really scale that well when fighting off machine gun bullets. If the bot''s tried to keep a safe distance from one another they would die less fequently.

The bots engage every enemy the same way. Jump and shoot. In entrances to hallways this is especially stupid. If I knew 3 people were standing down a hallway, I wouldn''t jump out and shoot at them-- I would run past the entrance straffing as I moved, in an attempt to get a quick head shot or two. The bots, in this case, will run to the entrance and begin blasting away. If the bots had a set of options to choose from for these types of encounters they could handle the situation less predictably and more realisticly.

2. There are no ''avoid'' waypoints. Certain portions of the map should be avoided, even during an active engagement, as they are never good places to be.

3. Waypoints and camppoints should have priorities that float based on the number of remaining players AND the last known location of an enemy. This would give the bots the ability to stalk their opponents in a more realistic manner.

4. The bots should be aware of firing lanes. Really only important when the firing lane belongs to an enemy with an AWP. Currently the bots will all run to the slaughter trying to kill the AWPer. In a human game, after the first two people die the others usually avoid engaging the AWP''er directly and either a) camp, or b) look for an alternate route.

5. The bots have no knowledge of choke points and how to exploit them. Human players learn quickly where the best lines of defence can be made. If the game could be setup (via waypoints) to give the bots an idea of what type of combat situation to expect within a given area the game would appear more lifelike.

For example. A small hallway leads to an open area. The open area is a great place to be for the defenders, as long as they spread themselfs out. This is because the defenders know exactly where to aim, and because the people in the hallway cannot see all of the defenders until they are being shot at. The bot defenders in this situation may mill about the open area, but once they see an enemy they abandon their positions and run in to the hallway, loosing their advantage.

Best of luck with your DoD bots.
Will


------------------http://www.nentari.com

This topic is closed to new replies.

Advertisement