Jump to content
Sign in to follow this  
mailor

Suggestion: AI finding cover

Recommended Posts

Every once in a whil I try to play ArmA (because I say to myself "It can't be that bad..."). But then I play one of the missions, and I am impressed all the time how st00pid the AI reacts.

For example: I have played the campaign mission, in which you have to destroy some urals. So I go up to the church in the little village to get some explosives and wait...and wait...and wait...and wait... Anyway, the mission seems to be broken and the convoy never comes. I didn't mind that, to be honest (I know these sort of things happen in ArmA). Well, I got bored and started shooing the civilians. That's when I was reminded again how bad this game is. I mean, come on! If I shoot one of the guys, the others around him lie down on the floor for 2 seconds, get back up and stroll around, as if nothing happend.

Is it that hard to make AI find cover behind bushes or houses or whatever? Or start running away in panic?

Exactly the same in the first sniper mission:

I start shooting the enemies that exit the trucks, and what are they doing? They lie down on the floor and start rotating. A nice reaction would be: FINDING COVER!!! I mean, there are trucks, at least get behind them! Or run for the trees! But don't lie down on the open road and rotate around.

Too bad this will never be fixed. The AI is just too bad, which ruins the game totally for me.

Share this post


Link to post
Share on other sites

Some other problems with the AI is that they don't react fast enough, they never seem to understand whats going on (I've had enemies run right past eachother, some stare into space while the soilders right next to him are being killed, sometimes they aren't even facing the battle).

Also, they should stop going prone everytime an enemy is near. Armed Assault looses it's imersiveness when I run into an enemy around a corner, and all he does is stare at me for a second and then go prone to shoot me. It's like he's asking me to kill him. crazy_o.gif

They should also avoid going prone at all in tight combat zones, like citys. They leave themselves open when crawling around, as opposed to walking or crouching.

Cover is a big issue, but I've learned to live without it.

Oh yea, the AI should be able to see through objects like fences and I think they rarely/never shoot at me if I'm only exposing part of my body.

Share this post


Link to post
Share on other sites

SmellyJelly:

Exactly!

Urban fights are even the biggest crap in this game! As you say, when 2 enemies meet, first thing they do is lying down (which takes 2 seconds), and then start shooting each other, then starting to rotate.

Isn't there any way to improve these behaviors?

Share this post


Link to post
Share on other sites

It sounds to me like you're not playing in Veteran Mode, with a forced minimum ai difficulty setting of 0.75.

That doesn't remove the rotating and prowning but the the ai is so fucking fast at doing it in close encounters that I would never call it "he's asking me to kill him".

Share this post


Link to post
Share on other sites
Some other problems with the AI is that they don't react fast enough, they never seem to understand whats going on (I've had enemies run right past eachother, some stare into space while the soilders right next to him are being killed, sometimes they aren't even facing the battle).

Fanboy answer:

It's only realistic that some soldiers are spaced out because war is a very stressful environment, so they might not appear very aware of their surroundings. War is hell!

Share this post


Link to post
Share on other sites
Some other problems with the AI is that they don't react fast enough, they never seem to understand whats going on (I've had enemies run right past eachother, some stare into space while the soilders right next to him are being killed, sometimes they aren't even facing the battle).

Fanboy answer:

It's only realistic that some soldiers are spaced out because war is a very stressful environment, so they might not appear very aware of their surroundings. War is hell!

My 'fanboy' answer:

Detecting wether its a good thing to lay down or not is very hard, you cannot predict that when you are coding the .fsm. (Although it could use some improvements, you can assume that when the enemy is < x meters away from the AI that its not a good thing to lay down, i edited a .fsm a while back so they would never lay down in cities (actually, when buildings were near), usually this was a good improvement but in some cases its better to have them laying down so it wasnt that perfect, but at least they 'looked' smarter, which is better for the immersion (Look at CoD/GRAW/...)).

Soldiers looking at the people who got killed next to them:

If its their teammember: They will only notice that their teammembers got killed if they are within their LOS, and usually they are busy to find out whats going on (already have another target). (Guard waypoint will let them counterattack the enemy with force, no waypoint will just put put them in danger mode and they may or may not send 1 or 2 people after you if their knowsabout about the enemy is high enough by accident).

EDIT: @TS: Yeah, the AI doesnt always flee properly. I guess this is related to waypoints the mission editor gave them.

When i just place a group of civilians and start shooting them they do flee, im uploading a vid right now.

They seem to flee to the nearest 'cover' (3 guys run to the left to some bushes, the others seem to run to the town or maybe some other bushes in that direction)

EDIT2: http://www.zippyvideos.com/9480798947106596/aiflee/

When i give them a dismissed waypoint, they dont flee but crawl around like a bunch of blind retards instead.

Share this post


Link to post
Share on other sites
when 2 enemies meet, first thing they do is lying down (which takes 2 seconds)

You can, as a editor of the mission, use the setUnitPos command.

This will force the AIs to keep given position even when encountering hostile units or taking heavy fire.

For example, if you want a unit to remain standing during a fight (he will lie down if he gets shot in the leg though wink_o.gif ), simply type this setUnitPos "UP" in that units init line.

Although, for some reason this does not seem to affect civilians at all. Guess that's because they're using a different FSM than the soldiers.. or something...

Share this post


Link to post
Share on other sites
Although, for some reason this does not seem to affect civilians at all. Guess that's because they're using a different FSM than the soldiers.. or something...

Yup i checked the civilian .fsms and they are using the old setunitpos instead of the new setunitposweak which is supposed to be used for .FSMs.

Its only a small tweak for BI so if someone reports this to the bugtracker then it will probably be fixed in the next patch.

Share this post


Link to post
Share on other sites

In my case, BIS has at least one customer less due to those things. I don't complain about them any more, because its just a hopeless case.

But I made my decition - and I think a lot of other did it too. Since Armed Assaut, which was said to be with a - quote - "rewritten engine from scratch" - endquote - and to be "a hundert times better OFP" turned out to be as ancient as OFP is today (crappy AI, crappy engine - only grafics are not THAT ancient but still very ugly) => That is it: Im not a customer of futer BIS Games.

Share this post


Link to post
Share on other sites
In my case, BIS has at least one customer less due to those things. I don't complain about them any more, because its just a hopeless case.

But I made my decition - and I think a lot of other did it too. Since Armed Assaut, which was said to be with a - quote - "rewritten engine from scratch" - endquote - and to be "a hundert times better OFP" turned out to be as ancient as OFP is today (crappy AI, crappy engine - only grafics are not THAT ancient but still very ugly) => That is it: Im not a customer of futer BIS Games.

Thanks for both reading and adding so much to the whole discussion. smile_o.gif

(Btw, where did you get that quote from? Google has never heard of it. And whoever 'wrote' that couldnt spell "hundred" so i dont know where you 'quoted' that from but it cant be very reliable.. tounge2.gif )

Share this post


Link to post
Share on other sites

You didn't think of the possibility I may have quoted it from another language?

1.) Think 2.) Re-think 3.) Write

It's OT now (sry): I've read this about 2 years ago. I was always waiting for ArmA (f.k.a. OFP2) so I checked the news monthly.

Share this post


Link to post
Share on other sites

If it was written in another language then

1. Its not official.

2. 2 years ago? 2 years ago we saw screens which looked similiar to OFP:E back when ArmA was supposed to be a quick OFPE port with some VBS vehicles trown in.

3. Why didnt you PM this aswell?

EDIT: Better keep PMing, keeps this tread clean.

Share this post


Link to post
Share on other sites

I just spent about two hours fiddling around with a couple of commands that I thought might help create a scripted AI "find cover" behaviour, but only with limited success.

The command findCover doesn't always find very suitable objects to hide behind. Sometimes nothing more than a small bush, even though there's a building or a rock nearby  crazy_o.gif . And even if it does find something suitable, trying to get AI units to go there and take cover fast is practically impossible. The AI first lies down, then takes ages to decide which route it wants to take, and then stops short of the hiding position, only to stand around and apparrently forget what it was doing.

My conclusion: AI cover finding is seriously buggered.

On a further note, I also tried out the nearTargets command. Very useful, that one. It also proved something to me that we've known for while now: When an AI hears you shoot, he will know exactly where you are, even if you're 300m away and he was facing in the wrong direction and you ducked behind cover as soon as you had fired. Super hearing anyone?  confused_o.gif

Share this post


Link to post
Share on other sites
On a further note, I also tried out the nearTargets command. Very useful, that one. It also proved something to me that we've known for while now: When an AI hears you shoot, he will know exactly where you are, even if you're 300m away and he was facing in the wrong direction and you ducked behind cover as soon as you had fired. Super hearing anyone?  confused_o.gif

I confirm this: If their knowsabout about you is high enough AND they hear you they will know your exact position instead of an area. You only make sound while moving (but this was already known).

I also confirmed something else: AI does not SEE trough bushes but HEARS trough them. Also, they estimate your position if they cannot directly see or hear you, and they will fire on the estimated position.

(Actually, all of this was already known, im just the first to make a vid so people might shut up about this for a change (not directed at you MadDogX, you just happened to post while i was messing around in the editor with this).. tounge2.gif )

AIbushtest.wmv (Dont mind the shooting you hear while you still see the editor, i had the shooting clip recorded first and it was still repeating in the background along with the very fitting music while i was showing my steps in the editor tounge2.gif )

Oh, and dont mind the suppression stuff, i still had those edited PBO's loaded and i couldnt be arsed to restart ArmA just for some hints/groupchats. For those interested: Its second's suppression script, look for it in the mission editing section (It is automatically enabled on all units in my game because i edited some stuff explained in his topic).

Share this post


Link to post
Share on other sites

DAMN! I bought GRAW to see how the AI works in there and what it's like when comparing to ArmA... sad_o.gif

Is there anyone who has been thinking this urban warfare aspect of AI and how to improve it?

My ideas:

-When unit/group halts it has to search cover for itself behind solid objects.

-give AI ability to either lean, move or raise it's stance to be able to shoot and then move to cover when in firefight.

-Some thing other, but what?

I had that expiment to add alley checking ability to AI. It can be used to check solid objects and do it fast (calculation don't seem to put big strain to CPU), but is there others who would be intrested to give ideas or write code. Task feels pretty overwhelming to acomplish alone, there's too much for me to improve in ways of scripting etc and not much time.

<table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">#LOStest

_dir = round (getdir leader _grp)

?((_dir < _dir2) and (_dir > _dir2)): goto "LOStest_start"

_pos = getpos leader _grp

#LOStest1

_spot = "LOSbeam1" CreateVehicle [0,0,0];

_spot setpos [(_pos select 0) + 5 * sin(_dir),(_pos select 1) + 5 * cos(_dir), 1.4]

_spot setvelocity [10000 * sin(_dir + _n), 10000 * cos(_dir + _n), 0]

~0.01

?((nearestObject [(_spot), "AllVehicles"]) distance _spot) <= 1): goto "lostest2"

?(_spot distance _pos > ((_directionarray select (_n + 90)) * 2) and (_spot distance _pos >= 5) and _dist2 <= 30): _changearray set [count _changearray, 1];

?(count _changearray <= 0):_dist2 = getpos _spot distance _pos

_dist = getpos _spot distance _pos;

_directionarray set [(_n + 90), _dist]

#lostest2

?(count _changearray > 0): goto "dir_result"

_n = _n - 5

deletevehicle _spot

?(_n <= - 90): _n = 90; goto "LOStest1"

?(_n <= 60 and _n >= 1): _n = -60;; _dir2 = round (getdir leader _grp); _dir = round (getdir leader _grp); goto "sensor"

goto "LOStest"

This is small part of my code. This part checks for drastic changes (possible alleys after solid wall) in vicinity of unit. I'm putting this piece of code so that everyone can see that it can be made and it worked.

Is there someone other with better ideas or desire to try boost AI huh.gif

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  

×