Jump to content
Sign in to follow this  
PlayeR87

Taking Cover

Recommended Posts

The only way we'd have decent urban, street to street fighting with an AI that uses cover, is some sort of waypoint system that kicks in when the AI enters urban areas.

Waypoint's are the reason every other FPS's AI appears "decent". A human had to create those waypoints.

Share this post


Link to post
Share on other sites
Hi all

To add to Baff1's last post and refer back to my own.

As you can see Baff1 quicly ID'ed a few forms of use of cover. That is the simple part the problem though is ID ing the forms of cover.

He might say: "Oh well I see the cover then use it.", but what he is doing is far more complex. He would have skipped many stages to come up with that simple answer. For instance how did distinguish one type of cover from another? Or the left side of the street from the right?

The first question is what is seeing the cover?

Trust me when I say we are into some very complex mathmatics just to see one dot. To then add up a mass of dots and come to an interpretation that that mass of dots is a sandbag wall of kneeling height shooting cover and lay down defilade rather than not very bullet proof bush, is very very complex. We have some advantages though ArmA does a lot of this for us and IDs the terrrain features but we still have to interpret them. And there are many different types and combinations.

Kind Regards walker

You could have a system in the AI-neural net, to pinpoint whereabout the enemy is, and at which locations nearby has 'safe locations' meaning where bullet path is obstructed.

Then make a move-to towards the closest location. It is not a perfect smooth solution, but it's simple and therefore it doesn't require too much hardware bandwith.

As some1 mentioned, it would require too much work making scripted cover-location in ArmA. Such a solution wont work in an open game environment like ArmA - but works fine in the corridor-gameplay like in Vegas.

Share this post


Link to post
Share on other sites
...

Arma's world is way too complex for some poor dev to define "safe locations" with "nodes" - or give all objects definitions to allow the same result.

The only way to do it would be procedurally. But how do you define "safe locations" in mathematics? And is that viable in real time?

Think about how complex this problem would be.

AI: Find cover that is aprox 1m tall, where there's room for it to stand and where the cover would shield it in the direction of the x number of enemies.

Can't be done. Well it can possibly, but it would probably suck any cpu dry in anything more complex than a corridor shooter.

AI is generally better off being "faked". Faked through less predictability and more frequent "change of minds" particularly when events occur - like when a man is downed or shot at. Too often arma's ai just lies flat on the ground for ages and this may not be aggressive enough. When it's obvious that an enemy has been shooting right from behind the wall they shouldn't always just lie there and wait while you make your flanking move for a safe shot. Thus, much improvement can be done through simple reaction, action and direction.

Share this post


Link to post
Share on other sites

Hm. What I would be interested in would be allowing editors to add their own individual "cover points" (perhaps side-related, or even unit or group-related) in a somewhat-easy manner, which could then be used in each mission dynamically without needing to entirely revamp the code. Commands such as findCover, setHideBehind, getHideFrom, and possibly hideBehindScripted, isHidden and isHideBehindScripted seem to be precursors of a possibly more advanced way of handling AI-cover. I'm guessing it's FMS editing that leads the way here again.

But what I'd want would mostly be more precise AI movement in all areas, AI in general tend to abhor getting too close to walls, they get stuck in fenced areas, and they generally won't touch any objects, wether they're editor-placed or already there. Even when controlling them in your group it can be quite difficult to get them exactly where you want them. This might be something to do with the fear of AI starting to clip right through walls (like they tend to do) or units (such as tanks and trucks). If the AI would be enabled to move in a precise manner, and some kind of system with commands akin to the ones above could be implemented : as has been discussed, with nodes and whatnot, then each editor could create their own zones fairly easily and expediently, all dependant on what kind of movement they want and how they want the battle to go on (fast movement, still defence, commando-like or mad zombie dash).

wink_o.gif Fear not, I have great trust in the future editing powers of all of ye. The AI shall yet be something truly fearsome!

Kind regards,

Wolfrug

Share this post


Link to post
Share on other sites
Hi all

To add to Baff1's last post and refer back to my own.

As you can see Baff1 quicly ID'ed a few forms of use of cover. That is the simple part the problem though is ID ing the forms of cover.

He might say: "Oh well I see the cover then use it.", but what he is doing is far more complex. He would have skipped many stages to come up with that simple answer. For instance how did distinguish one type of cover from another? Or the left side of the street from the right?

The first question is what is seeing the cover?

Trust me when I say we are into some very complex mathmatics just to see one dot. To then add up a mass of dots and come to an interpretation that that mass of dots is a sandbag wall of kneeling height shooting cover and lay down defilade rather than not very bullet proof bush, is very very complex. We have some advantages though ArmA does a lot of this for us and IDs the terrrain features but we still have to interpret them. And there are many different types and combinations.

Kind Regards walker

Seems a bit over complicated.

Lets give each enemy a random chance of seeking cover and another a random chance of suppressing.

In this way groups will behave with some suppressing and others running for cover.

(Or we could assign suppression to machine gunner perhaps).

The cover seeking AI (simply) attempts to break line of sight with an enemy upon contact. It does not have to worry about hard and soft cover at all.

Should a more advanced AI wish to distinguish between hard and soft cover, objects need simply be assigned a score.

1 or 0.

1 is hard cover, 0 is soft cover. So when our AI attempts to break line of sight it automatically knows if the cover it is considering is hard or soft.

Share this post


Link to post
Share on other sites

Yeah I was thinking the same a score system, rather a bit more complicated;

0 No cover

1 Low Cover - Soft

2 Low Cover - Hard

3 High Cover - Soft

4 High Cover - Hard

Low means you/AI can stay hidden behind when crouched

High means you/AI can stand behind and is still hidden

Maybe even add 2 types for soldiers when prone

But maybe it's easier to add Soft/Hard cover stats to textures or something like that, probably saves work on all the different objects, but probably will not allow adding height stats

Share this post


Link to post
Share on other sites
Hi all

To add to Baff1's last post and refer back to my own.

As you can see Baff1 quicly ID'ed a few forms of use of cover. That is the simple part the problem though is ID ing the forms of cover.

Seems a bit over complicated.

Lets give each enemy a random chance of seeking cover and another a random chance of suppressing.

In this way groups will behave with some suppressing and others running for cover.

(Or we could assign suppression to machine gunner perhaps).

The cover seeking AI (simply) attempts to break line of sight with an enemy upon contact. It does not have to worry about hard and soft cover at all.

Should a more advanced AI wish to distinguish between hard and soft cover, objects need simply be assigned a score.

1 or 0.

1 is hard cover, 0 is soft cover. So when our AI attempts to break line of sight it automatically knows if the cover it is considering is hard or soft.

Same thing happens when scrpiting. You have simple idea, which you think to take only maybe 100 lines... You start to build it, and notice that you theory of that script is too simple, it doesn't cover all possible outcomes of the action.

I once builded scrpit to just force squads to move in certain pre-designed formation as platoon or company of even batallion. Idea was simple and first version of it was ideed simple... And it did work only in certain almost labratory like conditions... It didn't work in field or in practice. So i needed to take into acount all possible aspects and situations where it (formation) can get or what it produces. Script does still only one thing (forces units to maintian formation and act as formation "leader"), but it's five times bigger than at start. And it's just simple script.

Idea might be simple, but when you try to make it to work, it just doesn't work like you think at start. There are plenty of things to take in to acount even in your simple idea. Or maybe not... i'm not sure, i'm just simple amateurish scripter, not programmer/coder.

Share this post


Link to post
Share on other sites
Hm. What I would be interested in would be allowing editors to add their own individual "cover points" (perhaps side-related, or even unit or group-related) in a somewhat-easy manner, which could then be used in each mission dynamically without needing to entirely revamp the code. Commands such as findCover, setHideBehind, getHideFrom, and possibly hideBehindScripted, isHidden and isHideBehindScripted seem to be precursors of a possibly more advanced way of handling AI-cover. I'm guessing it's FMS editing that leads the way here again.

But what I'd want would mostly be more precise AI movement in all areas, AI in general tend to abhor getting too close to walls, they get stuck in fenced areas, and they generally won't touch any objects, wether they're editor-placed or already there. Even when controlling them in your group it can be quite difficult to get them exactly where you want them. This might be something to do with the fear of AI starting to clip right through walls (like they tend to do) or units (such as tanks and trucks). If the AI would be enabled to move in a precise manner, and some kind of system with commands akin to the ones above could be implemented : as has been discussed, with nodes and whatnot, then each editor could create their own zones fairly easily and expediently, all dependant on what kind of movement they want and how they want the battle to go on (fast movement, still defence, commando-like or mad zombie dash).

wink_o.gif Fear not, I have great trust in the future editing powers of all of ye. The AI shall yet be something truly fearsome!

Kind regards,

Wolfrug

Perhaps each map object can have, as part of it's structure, designated nodes of cover.

So that each building for example has a network of nodes both inside and outside for the AI to use when it is within the building's immediate area. If this sort of structure is built into the model then all buildings on the map will have it by default regardless of where it's placed. The AI seem to act fine going from place to place IMO, but do need some extra help in the fine-tuning of where to place themselves around objects like buildings or vehicles.

Share this post


Link to post
Share on other sites

What is a little amazing is that the AI refuses to use cover inside of buildings. The dude who made SLX wrote a Group Link III script that makes groups of AI run into buildings and take cover for a few minutes - it works really, really well and hopefully he'll figure out a way to do it with ArmA.

Share this post


Link to post
Share on other sites

related to this, I would like to see an extension of the "find cover" command to be more of a toggle, so that when I enter an urban area and stop to, say, check the map/go into the command mode my troops aren't all lined up in a nice V behind me inn the middle of the road, but are crouched next to walls/prone behind objects.

Is it possible to modify current AI commands?

Share this post


Link to post
Share on other sites

How about a sub commander AI.

A sargeant who does all the micromanagement for you. Take Cover, Go Prone, Reload. Take Magasine, Danger, Heal etc.

Or do they do that already?

A smart one that can give tactical Move To co-ordinates...

Share this post


Link to post
Share on other sites

I would disagree with calls for a RS:V style cover system.  The lean, crouch, prone abilities in ArmA are more than adequate in my opinion.  However what does need to improve is the manner in which the AI uses these abilities (or not).  It may do it to some degree but I don't see my team mates keeping their backs to walls or leaning round corners.

Share this post


Link to post
Share on other sites

I would accept this "cover system" only under one condition: no point of view switch - no 1st to 3rd person transition. This feature is the reason number one why I don't even want to touch R6:Vegas. I would give it a try if the 3rd person, over the shoulder feature, would be toggeable. - I use 3rd view in OFP/ARMA only when driving; probably wouldn't use it if I had TrackIR. If I was forced such a feature upon I'd forget about ArmA very fast.

The only thing that doesn't work for me in this cover system is the ability to see things from around the corner without physically (or virtually) being in the position to see them. The "out of body experience" is something that doesn't belong in ArmA. If it was realized it would have to be optional. ArmA tries to implement things as close as they are in real life - it's BIS credo, the guiding principle. The above mentioned system completely falls out of the realm of realism. Once it's implemented what's next? - the ability to absorb 30 rounds in the face with a few scratches, rocket launchers with thermonuclear missiles, magical healing serums, and walking robots. - Oh, have I just described Battlefiels 2142.

Share this post


Link to post
Share on other sites

Hi all

I think some of you are starting to understand the complexity of a proper and professional generalised solution to the seemingly simple concept (to humans) of taking cover. I think we have also established that the scripted node solution used in corridor shooters such as R6V is an amateurish and unworkable solution in a true simulator like ArmA.

As some of you have noted in terms of actual programming it is much more complex.

As I have already stated the problem breaks down to three key areas and in the course of this thread we dicovered a fourth area:

Identify need for cover

The fourth factor we have just identified, some of this is already done by BIS but when do you hide and when do you attack and when do you seek cover and when do you run away, what direction do you need cover from.  

Identify Type of Cover

This is the most complex problem and as I and others such as Espectro suggested is best solved by neural net although how we are going to train this is hard, in fact I will go so far as to say I do not think any other solution would work for this it is mind bogglingly complex. You learn this as a human being when you play hide and seek it actually takes you years before you become proficient at hide and seek. In the beginning hiding your head under a blanket seems sufficient, you have probably forgotten this but those of you with children will understand.

Soldiers learn a more complex version of hide and seek and cowboys and Indians; it takes months of basic training, then years of experience as a soldier to become professional at it, that is why being a soldier is a profession and why professional armies kick the ass of amateur armies made up of drafted kids who have only learned hide and seek and cowboys and Indians and for snipers it takes years plus many hours of practice everyday. Identifying cover is a a complex set of thousands of expert decisions. The only computer programing solution that I know of that works in these cases in a neural net.

Make a cover decision

It is no use seeking cover on the same side of the sandbags as fire will come from. Each form of cover has to be used correctly. This should though not be very complex; I think there will be somewhere between 20 and 200 basic solutions to making use of cover. I already identified some of them in a previous post. One basic algorithm will be matching direction of threat to direction of cover. There will be modifiers such as the risk of moving to better cover. Danger of grouping at cover, ten AI soldiers all trying to hide behind the same tombstone in a grave yard. Risk of being flanked etc.

Use correct animations

Many of the cover solutions already exist as animations in ArmA and you will see human players making use of them all the time in MP games. We learned all that as kids playing cowboys and Indians. It is a lot of kinesthetic memory we now transpose to our in game avatar. There are some additional animations we may need such as duck animation and ideally a graduated lower and raise. We will also need a cover use algorithm to use the correct animation and to asses the level of raise and lower or lean.

The way forward

As we can see each of those key areas can then be subdivided. There are a lot of tasks. I would suggest we now need to maybe move this concept to the scripting section of the forum. Then those of us who want to and feel able to, need to take on the separate tasks.

Kind Regards walker

Share this post


Link to post
Share on other sites

I'd recommend anyone interested in wanting more advance AI and seeing AI take cover intelligently with no scripting but with only 3d knowledge of the environment take a look at these two sites.

http://www.kynogon.com/products/demos/index.html

-This company specializes in liscensing advance AI engines to game developers. Checkout their demos which are playable. the Hide & Shoot demo displays advance use of cover.

http://aiseek.com/

-A new card dedicated to AI

Demonstrations on YouTube and some more on the main site

http://www.youtube.com/watch?v=ZNFu9UIkpiQ

http://www.youtube.com/watch?v=03FWopcFQiY

Share this post


Link to post
Share on other sites
I'd recommend anyone interested in wanting more advance AI and seeing AI take cover intelligently with no scripting but with only 3d knowledge of the environment take a look at these two sites.

http://www.kynogon.com/products/demos/index.html

-This company specializes in liscensing advance AI engines to game developers. Checkout their demos which are playable. the Hide & Shoot demo displays advance use of cover.

http://aiseek.com/

-A new card dedicated to AI

Demonstrations on YouTube and some more on the main site

http://www.youtube.com/watch?v=ZNFu9UIkpiQ

http://www.youtube.com/watch?v=03FWopcFQiY

That's some interesting stuff there, thanks for the links smile_o.gif

Share this post


Link to post
Share on other sites

Hi all

In Reply to Checkmaty

Thing is; this forum is full of former or serving soldiers, some are or were quite high up or training sergeants and the like and since we have the tools it is cheaper, more accurate and more fun to do our selves.  wink_o.gif

And for those of who are not professional soldiers we like to convert our own gaming experience into AI that works as we expect it too.

Kind Regards walker

Share this post


Link to post
Share on other sites

I just wanted to add that the AI doesn't realy using cover is the biggest complaint I have about ArmA. While I absolutley love the game for the many things it does excellent, I feel it doesn't realy represent infantry combat realisticaly.

A lot of good things have already been written about what the AI should do better, so I don't want to repeat all that. What I just wanted to add is that I think that animations and the maneuverability of the AI has quite a impact on the subject. I agree that first priority is that the AI needs to be able to recoginse when it needs cover and where it can find it. This alone seems to be a massive task. After that I think the AI needs to have a much bigger selection of movements to use that cover. In current ArmA I have observed some situations where the AI actualy used cover, like moving behind a rock when enemy contact is made. This happened very sparely, but the basics seems to be there. The problem is that the AI is missing the selection of proper movement ( and pathfinding to a degree ). If the AI needs to stand up, turn around, run back, turn around, run behind the rock, turn around again and then goes prone, it takes a good 10 seconds to achieve this. When under fire this is simply too long, and the guy has been shot long before. Also if that AI wants to open fire again, he will move back in the open again to do so wich means he completly gives up his cover again. So the Ai realy has to learn not only to find cover but also to fight from it. And currently it is missing the movement options for that.

First I think the AI needs to be able to lean, just as the player can. This is a very basic and effective way to fight from cover. Leaning allows the AI to quickly get back into cover when under fire, opposed to the time it takes to walk aside from cover, shoot and walk back again ( plus some lenghty turning and change stance animations ) that most likely gets them killed.  

Then there should be a quick way to slighly adjust the height in any stance in order to shoot over a obstacle and quickly get back into cover again. You can say that the AI could always go to a higher stance to do this ( this would be a good start as it doesn't do that right now ). But the problem is that changing the stance is a slow animation, it simply isn't quick enough to pop up, fire some rounds and get down again when under fire. It's similar to leaning, the key from firing from cover is to be able to get down quick again once someone starts shooting at you.

Changing the height of your stance slightly would also allow you to lying down flat when prone or raise your torso slightly to shoot over the grass or a ridgeline.

Then there should be a way the AI could maneuver more natural and quick, like when diving to cover or change position to new cover. I already mention it that AI movement is very robotic in ArmA ( stand up, turn around, walk, turn around, crouch etc. ... ). This not only destroys the imersion as it looks a bit silly, it also makes the AI very vulnerable. I think it has a lot to do with the animation system, that can only do new animations once the former are complete ( people only dying after done reloading, not beeing able to go prone again until stand up is complete, not beeing able to put away binoculars until binoculars have been completly get out, release sprint button and character sprints another 3m until animation is complete etc. ). Perhaps the whole animation system has to be rethought in order to provide more realistic AI behaviour/visuals.

Share this post


Link to post
Share on other sites

there are several problems caused by these additional AI and PPU cards even at first look You don't see them

more units => higher load on GPU (more dynamic stuff to render)

more objects => higher load on GPU (even more dynamic stuff to render)

new AI Card = expensive, not to mention it need another slot

new PPU card = expensive,  not to mention it need another slot

new GPU card to be able render complex scene = expensive

in short all these AI and PPU cards are nice pieces of hardware

and they can and are very useful for server use (especially MMOs or huge online games)

yet just take look at fail of Ageia card (low sales and miserable market share)  

then You must admit such way is approach just for niche market

to become success for end market

such cards must cost 3 or 4 times less or/and start pushing to be part of mainboards (even if it's only for expensive deluxe ++ for starter)

but back on real scenario ...

* today like 20-25% of all game computers got second CPU or second core (not to mention like another 1-2% with more than 2)

this and upcoming years bring multicore/multicpu systems to end market for cheap $

thus most of developers targets and will target multicore/cpu mainly

some exception will be richer studios to use GPU for physics (utilize Havok middleware or similar)

for ArmA "it may happen" e.g. on server level (AI related improvements and optimizing for multicore) ...

Share this post


Link to post
Share on other sites

I agree that the animations are one of the biggest problems in getting the ai to react and get to cover. I wonder if it would be possible (with a tremendous amount of work) to break each animation down by a magnitude of 10-25. For example the reload animation takes a 3 or so seconds. if that could be broken down into 20 animations, then waiting for the next animation to begin wouldn't take very long if it needed to get interupted - by being shot for example.

I dont' have time to finish the thought. I have a meeting to go to... sad_o.gif

Share this post


Link to post
Share on other sites

Some essential stuff might be breaking running animation to smaller bits. I'm not sure, but i think that this is reason why engage usually doesn't work as it should: AIs run past cover as they should stop to the cover. Might this be because of (too long) Animation has to be finished?

It's okay for player that he has to finish that long animation, but AI is different: if it doesn't know that it has to halt 4-5 steps before cover, then I'm fine with (forexample) idea that AI could just switch his running animation to standing animation instantly.

Funny thing but i didn't never-ever thought that animations would have such effect on AIs abilities... But when thinking about it, it's logical indeed.

Share this post


Link to post
Share on other sites

On the subject of cover I made an interesting observation.

Set up a fight between two squads, everything on standart and yourselfe as the last guy in one squad. Best is you make this in a area with lots of rocks as they provide good cover oportunitys. Once the fight starts, stay a bit back and observe what happens and listen to your AI leaders commands. You will notice that the AI breakes formation without order from the leader and sometimes men will actualy move for positions behind the rocks. All this without the leader telling them to do it. Compare this to when you are the leader of the squad yourselfe. Your AI fellows will strictly stay in rigid formation even when under fire. So the AI will behave different when under player lead and show less selfe preservation. I wonder why this is so and if there is a possibilitys to maken them equal "smart" as under AI lead.

It wont make a real difference on the fight tough, as the cover the AI seeks is only very basic and often sparely. It wont relly help them to fight, as they don't fire from covered positions. They are either in the open and in the fight or behind cover and out of the fight. Also in the time they spend moving around they often get themselfe killed. And like I said it doesn't happen very often anyway.

Still I think the fact that the AI behaves different under AI command than under the player is interesting.

Share this post


Link to post
Share on other sites
Still I think the fact that the AI behaves different under AI command than under the player is interesting.

Thankyou.

I often bring this subject up in AI threads but mostly people tell me the player squad AI and CPU squad AI are the same. I have noticed this many times and you put your finger on it when you mentioned the breaking of formation under the CPU squad but not the player squad. I often find when i'm commanding a squad the team is standing up and turning round slowly while unfer fire. I have to micro-manage them so they have a beter chance of survival but this usually leads to my death.

Share this post


Link to post
Share on other sites

On the subject of cover we have mostly been looking at using objects as cover. Obviously ArmA isn't realy well suited for that. How about looking more at the aspect of terrain providing cover ? As many have noted, ArmA shines in the open areas ( well, at least it is better there than in a urban enviornment ). Still I think there is much to improve in the open long distance combat of the game.

As the game is now, I don't realy see that the terrain as a big influence on combat, as the AI fails to utilise tactical advantages that terrain can provide. As I see it, AI on high ground has no advantage over AI on low ground. The AIs are mostly lieing exposed on the ground and exchanging shots until one side is death or do a uncoordinated lonesome flank move/death charge every once and then. What I would love to see are AIs on a hill actualy move behind the ridgeline and search a position that alows them to open fire while exposing only little body to the enemy. The active use of vertical movement ( go crouch to shoot, go prone when under fire ) would be of high importance for the AI. Right now they are not able to rise in order to shoot above a object/terrain. As I have mentioned earlier, a new movement type like "fluid stance" would be very usefull for this. A movement that allows fluid height modification of a stance. When prone, fluid movement from "pressing against ground" until high chest, and from "cowering crouch" till complete stand. This way you and the AI could precisely expose only as much as necessary for the situation and it would allow to quickly drop down into cover again when under fire ( oposed to crawl backwards from a ridgeline which takes too long to take cover ). The implementation of AI using cover would also pave the way for the implementation of surpressive fire, which at the current state of the game would serve not much use.

Those AI routines would also translate into hull-down and turret-down positions for tanks, wich would greatly increase the realism of armored combat.

I have no idea how difficult it would be to add the necessary AI routines. But as there are already Line of Sight checks for the AI units for shooting and spotting, the basics to determine good fighting positions seems to be there.

I would realy like to see cover and surpression take a mojor part in the gameplay , as right now I don't see much realism in the combat of ArmA.

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
Sign in to follow this  

×