Jump to content
Sign in to follow this  
WildFire6

AI Improvements?

Recommended Posts

Don't think I have an memorable moments for my ai really.

So after playing around with singleplayer for a bit and really focusing on ai behavior these are some more conclusion I am making.

Ai do know how to take cover and fairly well in relation to the enemy... the only problem is they would prefer to do other things instead. It seems that to them charging towards the enemy is the proper first reaction, but in reality it should be moving to cover.

Although ai can take cover, they do not choose it wisely. When in a small town on cherno the ai would rather hide behind a decaying wooden fence or tiny lampost rather than hiding behind the edge of a building or sandbags. Basically all cover is the same to ai and they don't care which one they hide behind.

In a small squad on squad fire fight I would say half the enemy just tried to charge us and were mowed down, 10% went prone in the middle of the open, 30 % took cover that was not adequate (ie lightpost) and 10% actually took cover behind the edge of buildings and good hard cover. The problem was a lot of those guys would move to a new position after finding suitable cover, getting themselves killed in the process. They should be made to camp more.

And lastly I noticed once again how horrible the ai's situational awareness is, especially at close ranges. units would literally run past me, no more than10 metres or so away and would never stop to engage me, or even acknowledge me for that mater, making it easy to shoot them as they run by. I think this may be in part due to this bug which is apparently addressed in the upcoming patch. This may mean ai will be somewhat capable of closequarters fighting in the next patch.

So key points

Ai needs to be able to distinguish between the levels of protection different cover gives them and choose to move behind the better cover.

Ai needs to get there priorities straight. return fire while moving to cover - once the enemy is suppressed or severely (4:1) outnumbered started charging in. other wise just camp out and stay in cover.

Ai needs to be more aware in close quarters and engage threats as soon as they are seen even if in the middle of running unless that run is planned to be very short (3-4 metres)

Just some of my thoughts

Share this post


Link to post
Share on other sites

I think there's a middle ground, where ArmA's AI really shines. The problems become noticable once we look at micro-AI, or in the other direction, at macro-AI.

Problems with micro-AI are the most obvious: pathfinding, (immediate) action and reaction of individual units and the like. And then there is a lack of differentiation: AI snipers (or even a sniper team) do not "act" as they should. AT/AA units/teams do not act as they should. MG teams do not act as they should. They all run the same, quite capable routine. But it really shows, and I think a lot could be gained, by starting to introduce more apropriate rules of engagement/danger- and combat.fsm's. Not that every class would need such a special routine. But some really do.

Then we need to look at the macro-AI. What we have here are either a clever composition of waypoints or some script/fsm, that needs to be written.

Sure, with the second option we're basically free to do anything we want. Yet I feel there should be something more than waypoints (or some easy interface for editor users).

With waypoints you may tell your AI to go there and do that, then this... and granted, there are some very nice and dynamic waypoint types, such as the GUARDED BY waypoint. Yet, what's completely lacking are goals, the AI could reach (and get creative about it, hrhr) all by itself. If you could setup your scenario in such a way, that the AI would know: we need to defend this position (first priority), we try to attack that position (second priority)... then there could be some routine, that makes use of that knowledge (on how to win the mission).

What we can currently do in the editor is: link up a group and give it a destroy waypoint, linked to some unit/object (you know the deal). That's an order. A simple command. But what happens if they won't succeed? Hu :/

Now imagine you could simply define that unit/object as a target to be destroyed, as a goal or objective, not as a command/waypoint...

And this could work very well with High Command - if only it had the missing AI part for a working command-chain the AI would make use of. Imagine you'd setup 1) prioritized points and 2) a functional command-chain with the units desired and that's it. Let the AI play it out and reach those defined goals, however it thinks is most appropriate, considering the available resources. Maybe let there be defineable types, from defensive to aggressive/offensive "commanders"...

Also the whole "flee"-thing could benefit, by AI declaring such goals as unreachable. If all goals are declared unreachable, AI will flee - which then could be easily detected by some trigger to end the scenario or something.

And let there be a basic set of goals or objectives (just like waypoint types): attack, defend, destroy, reach position... what else? :)

Share this post


Link to post
Share on other sites
Then we need to look at the macro-AI. What we have here are either a clever composition of waypoints or some script/fsm, that needs to be written.

Sure, with the second option we're basically free to do anything we want. Yet I feel there should be something more than waypoints (or some easy interface for editor users).

With waypoints you may tell your AI to go there and do that, then this... and granted, there are some very nice and dynamic waypoint types, such as the GUARDED BY waypoint. Yet, what's completely lacking are goals, the AI could reach (and get creative about it, hrhr) all by itself. If you could setup your scenario in such a way, that the AI would know: we need to defend this position (first priority), we try to attack that position (second priority)... then there could be some routine, that makes use of that knowledge (on how to win the mission).

What we can currently do in the editor is: link up a group and give it a destroy waypoint, linked to some unit/object (you know the deal). That's an order. A simple command. But what happens if they won't succeed? Hu :/

Now imagine you could simply define that unit/object as a target to be destroyed, as a goal or objective, not as a command/waypoint...

And this could work very well with High Command - if only it had the missing AI part for a working command-chain the AI would make use of. Imagine you'd setup 1) prioritized points and 2) a functional command-chain with the units desired and that's it. Let the AI play it out and reach those defined goals, however it thinks is most appropriate, considering the available resources. Maybe let there be defineable types, from defensive to aggressive/offensive "commanders"...

Also the whole "flee"-thing could benefit, by AI declaring such goals as unreachable. If all goals are declared unreachable, AI will flee - which then could be easily detected by some trigger to end the scenario or something.

And let there be a basic set of goals or objectives (just like waypoint types): attack, defend, destroy, reach position... what else? :)

To be honest, this could all be written by a missionmaker in a DAC-like system.

Share this post


Link to post
Share on other sites
I think there's a middle ground, where ArmA's AI really shines. The problems become noticable once we look at micro-AI, or in the other direction, at macro-AI.

Problems with micro-AI are the most obvious: pathfinding, (immediate) action and reaction of individual units and the like. And then there is a lack of differentiation: AI snipers (or even a sniper team) do not "act" as they should. AT/AA units/teams do not act as they should. MG teams do not act as they should. They all run the same, quite capable routine. But it really shows, and I think a lot could be gained, by starting to introduce more apropriate rules of engagement/danger- and combat.fsm's. Not that every class would need such a special routine. But some really do.

Then we need to look at the macro-AI. What we have here are either a clever composition of waypoints or some script/fsm, that needs to be written.

Sure, with the second option we're basically free to do anything we want. Yet I feel there should be something more than waypoints (or some easy interface for editor users).

With waypoints you may tell your AI to go there and do that, then this... and granted, there are some very nice and dynamic waypoint types, such as the GUARDED BY waypoint. Yet, what's completely lacking are goals, the AI could reach (and get creative about it, hrhr) all by itself. If you could setup your scenario in such a way, that the AI would know: we need to defend this position (first priority), we try to attack that position (second priority)... then there could be some routine, that makes use of that knowledge (on how to win the mission).

What we can currently do in the editor is: link up a group and give it a destroy waypoint, linked to some unit/object (you know the deal). That's an order. A simple command. But what happens if they won't succeed? Hu :/

Now imagine you could simply define that unit/object as a target to be destroyed, as a goal or objective, not as a command/waypoint...

And this could work very well with High Command - if only it had the missing AI part for a working command-chain the AI would make use of. Imagine you'd setup 1) prioritized points and 2) a functional command-chain with the units desired and that's it. Let the AI play it out and reach those defined goals, however it thinks is most appropriate, considering the available resources. Maybe let there be defineable types, from defensive to aggressive/offensive "commanders"...

Also the whole "flee"-thing could benefit, by AI declaring such goals as unreachable. If all goals are declared unreachable, AI will flee - which then could be easily detected by some trigger to end the scenario or something.

And let there be a basic set of goals or objectives (just like waypoint types): attack, defend, destroy, reach position... what else? :)

I was thinking the exact same thing for AI as well. Similar to how the AI in RTS games behaves, there are priority nodes that placed on the map (resources, territory, flags) and the ai makes moves to these areas to fulfill a goal. Now obviously the priorities change as the fight goes on, and this can become complicated (as in Supreme Commander Complicated) but really, if the AI could at least be assigned priority nodes (game logics with setVariable) then this would be more than enough to setup some very interesting engagements.

And I must stress the AI needs to know how to use WEAPON SYSTEMS. In any large fight (platoon vs platoon) the MG team is the most valuable asset, it suppresses and racks up the kills, mortars also rack up kills with indirect fire on the enemy. If AI could learn to use these weapons on their own, then fights would change forever (no more of this flanking everywhere without a purpose, MG is setup, firing away at your position, and teams are flanking to destroy you). This changes the priorities for the human players, suddenly the MG is the most important target to eliminate.

but simply put, simple goals as reube said with a priority setVariable, and ai to handle assembled weapons independantly. (also, more different combat FSM types, or atleast killing one type of combat FSM when the unit looses its weapon (Mortar out of ammo, no more AT rounds) then run primary FSM)

Share this post


Link to post
Share on other sites

Yeah, I like this thinking, I've always wished the AI somehow understood the map better, and communicated better, as in they understood what assets they have and use them more strategically

gotta say although there's a lot of criticism of the AI I get a lot of enjoyment just observing them, yes they do some dumb things but I have witnessed many cool things.

Share this post


Link to post
Share on other sites

Yeah I wasn't really hoping for perfect AI or anything, I just would hope to see some improvement in the right direction. It is the one that that seems like if it is changed is only a few small changes here and there.

Its like the elephant in the room. The point of the thread was to see BIS' response to any real changes they've made to AI, hopefully in a dev note or video that could be put up sometime in the future. I watched all their dev movies a month or so ago and the video with an enemy engagement looked very much the same as old AI.

In one video he was engaging a group running around a corner at close range, and in that situation it would be easy to mow down a few people running around a corner and shooting, yet I think he lost two people. This seems all too typical to me, you'll be moving and taking direct fire, you turn around and two of your people are facing the wrong direction. Its like yep, their gonna die.

Share this post


Link to post
Share on other sites

I too am impressed with the current ai, its probably one of the best ones around for this type of game. They have their moments :D

Just a few more adjustments and they will be great

Share this post


Link to post
Share on other sites

People's opinions of the AI seem to be dependent on how good they are at team management, and whether they know the situations where AI thrive instead of fail.

If you run tests on the Utes runway or Chernogrosk, they suck. Put them in a thicket and they look deadly.

Those of us who have positive views often tend to have written them off in certain situations, seeing the good that comes in others, and the underlying potential.

Leaving aside cover for a moment, another big problem is logical navigation. AFAIK, the AI can't choose firing positions because that would require the engine to check line of sight between dozens, possibly hundreds of potential locations and entities. These are the calculations that only the human brain can do efficiently and quickly. So even if your AI gets into a good firing position in cover (which usually has lethal consequences for the player), he can't use his intelligence to prevent suicide rushes towards useless positions. He thinks he is flanking or displacing, but he's really breaking from cover towards a killzone. There's no real solution for this, except enforcing some sort of distance limitation for assaults and cover-hopping tactics.

Once you start coding those sorts of constraints, you get AI that is tailored to only 30% of firefights, however, and impossible to command.

Edit: For example, I stood on the lighthouse outside Strelka (allowdamage false) and shot at four soldiers standing in the yards of a house.

On paper, I could see that they were coded to exactly what all of us want them to do. Two ran for cover and suppressed me, two flanked right, using bounding overwatch techniques.

The problem? They were only 'in cover' theoretically. One stood next to the wall of a house, and one next to a brick dividing wall. Both were completely exposed. They only knew to adhere to an object that would stop bullets, but they stood on the wrong side of it. The flankers made very gradual progress on the flank. I can't fault their specific behavior, but their slow run-prone-suppress-run behavior would have gotten them shot to pieces in the open like that. A player would have simply sprinted to cover in the same situation.

In subsequent tests, their behavior was much more effective. Less firing, more efficient cover. One man stayed prone the whole time, at the corner of a wall (not actually behind it in any way), suppressing me. The other three darted in and out of cover, and eventually a two-man team flanked left, moving laterally across the field to take advantage of the stone walls there. Wouldn't have stopped me from shooting them to pieces, but oh well.

I just realized that there were five enemies. In two tests I never saw the fifth man at all. He was probably prone somewhere out of sight, hopefully watching a flank but possibly picking his nose.

In conclusion, the AI is better in cover rich environments (but not urban grids or areas of maze-like obstructions) than most people give it credit for. True, they hang out in the street to much, but if you told too forcefully to avoid the street, they would end up trapped in specific blocks. Units who hang out there are probably designated suppressors. Unfortunately they don't usually correspond to the machinegun units.

Edit: And another thing. If you put a man behind a short stone wall and shoot at him, he will drop to the ground to save his life. If you shoot at him in the open and he runs to that same wall, he will kneel and use it appropriately.

Edited by maturin

Share this post


Link to post
Share on other sites
To be honest, this could all be written by a missionmaker in a DAC-like system.

I am paying money for this game so that BIS can do the programming. Not

everyone has the time to learn to script something like DAC or other

complex routines.

Here’s a good discussion about macro ai that took place a little while

ago. I think it would definitely be worth Bi’s time to at least make a

start at programming “macro AIâ€. It doesn’t have to be great but the

ai needs to be aware of nearby friendly and enemy groups and react

accordingly.

As far as micro ai, I really like the idea of having different FSMs

for different ai. There could be a sniper team, one heavy mg one,

mortar one and a assault and defend one. When ever you place a group,

in you could select the leader and from a drop down menu decide which

routines his group will follow. I have seen this in other types of

games such as crisis 2 where there are stealth ai, grunt ai, boss ai

etc. I don’t see this happening any time soon however because it would

basically mean scrapping the existing ai and creating a whole bunch of

new ones, which would take way to much time.

gotta say although there's a lot of criticism of the AI I get a lot of

enjoyment just observing them, yes they do some dumb things but I have

witnessed many cool things.

Observing the ai fight one another is actually really interesting.

They don’t seem half that bad when you are doing this. The problem

comes when you play with them and are able to literally kill 10x more

than your fellow squad mates. Kinda kills the immersion.

The point of the thread was to see BIS' response to any real changes

they've made to AI, hopefully in a dev note or video that could be put

up sometime in the future.

I watched all their dev movies a month or so ago and the video with an

enemy engagement looked very much the same as old AI.

I did the same thing, specifically looking for ai changes or mention…

Zippo. And it kinda makes me scared for A3 ai. Right now it doesn’t

sound like arma 3 will be much more than a patch for the ai. But I am

going to have faith that this is not the case. I’m hoping that they’ll

release some more videos or info at Christmas and some of those will

mention improvement in this area. I am also hoping to see some of the

new animations because these will probably make the ai at least look

smarter.

Share this post


Link to post
Share on other sites

Observing the ai fight one another is actually really interesting.

They don’t seem half that bad when you are doing this. The problem

comes when you play with them and are able to literally kill 10x more

than your fellow squad mates. Kinda kills the immersion.

I can safely that this is purely because the AI is a better squad commander that you are. He can give orders instantly and has a hive mind with his subordinates. Player commanders always want to keep their charges in tight formation and under their complete control rather than trust their dim-witting autonomous brains. This is a handicap.

Unless you put your men in the right position and you slaughter the computer-led enemies like pigs. Enemy squads will run into the open willingly, right into killboxes. It's entirely possible to make your AI friendlies shine.

Share this post


Link to post
Share on other sites

Yeah its true that the ai commander is much more capable than a human even if it isn't quite as smart. But in this case I am talking about when I am just a grunt following ai commands. I still get 10x the kills usually. And yes it is possible to make sure that ai are useful but it is often easier (for me) to just make the kills myself rather than spend the time micromanaging them.

Share this post


Link to post
Share on other sites

Most new players say that their AI comrades rack up all the kills, hitting the enemies they never even saw. That lasts until the humans get good at spotting and the accuracy differential starts to count.

Share this post


Link to post
Share on other sites

Heres another suggestion for ai. They should move near to bushes when no hard cover is available. I am noticing that since there is not to much hard cover in most maps the ai just decides to go prone in the open even when bushes are near by. The ai should move either behind (if in stealth mode) or beside or In front of the bushes. Although the bush provides no hard cover, it will conceal them and make it harder to spot by silhouetting them or making it look like they are just apart of the bush.

To make this fair for the player, the ai would take longer to spot units near bushes, unless of course the unit is behind the bush and should not be visible at all. Just a suggestion to make firefights last longer and get closer and more intense. Right now when assaulting an ai team in forest or foliage, by the time you get 250 m away your ai has killed all the enemy. And when you are right by a bush (practically in it) as soon as you fire you may as well be out in the open, because the ai doesn't care you are camoflauged or silhouetted by the bush, which is not realistic.

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  

×