Jump to content

Recommended Posts

I recommend everyone play one of the missions from the workshop, its called "Assault on Charkia - SP".

Its basically an infantry assault on a town on the new map Altis. I think it shows off pretty well the advances made with the AI.

When I think back to ARMA 2, the improvement is pretty plain to see.

I was playing 'Assault on Charkia' last night and it is a great showcase for AI advancement, certainly overall since Arma 2 and possibly for recent updates too. I was really impressed at my squads behavior, staying roughly together inside the town, not too many people wandering off to the other side of buildings and even stacking up on street corners, allowing one soldier to peek first before moving.

On the edge of the town, just before we moved in, the whole squad lined up along a wall facing the town firing at a few visible defenders. I just had to stop and admire it!

Combat in the town also seemed snappier, both friendly and enemy AI much quicker to engage.

Share this post


Link to post
Share on other sites
Right now I can run up to and dance on top of prone AI (and they are prone often which by itself often is a correct behavior) and the guy will never be able to kill me, he's not even able to turn around when you are right behind him, twitching to the left and right.

(Of course that's a non-issue for the player and will get you killed in 0.5 seconds)

Metalcraze, I see this amnesia of your almost every day now.

The situation you describe was 100% possible in ArmA 2. But I didn't hear you protesting then.

Halfway improvement is not really an improvement.

We'll have to agree to disagree... and mod. This way we just need one instead of two.

Share this post


Link to post
Share on other sites
When I sneak up on the AI from the flank, 95% of the time they don't even begin to turn, no matter their stance. They just keep staring at their former target. I think you know what I mean. The decisive factor in between human and AI will almost always be the humanity or the artificiality of one side or the other, not minutiae like turn rate. This isn't a dog fight.

One thing I'm trying to figure out is the eye and head position as relates to FOV and AI awareness. Meaning, if the AI is looking hard left is his awareness also hard left? If it is, why not have all AI's especially in Danger mode and above looking furiously to all sides? I know Gamma did tests on FOV but honestly they're above my simple understanding.

Seriously guys, we have to get this done now. Might make the difference between the game being well-balanced on release or in a later patch, and all the review scores that implies.

Fully agreed and great initiative!

Share this post


Link to post
Share on other sites
Right now I can run up to and dance on top of prone AI (and they are prone often which by itself often is a correct behavior) and the guy will never be able to kill me, he's not even able to turn around when you are right behind him, twitching to the left and right.

(Of course that's a non-issue for the player and will get you killed in 0.5 seconds)

AI also seems to have started lacking precision seriously. At times I can just stand 50m away from them and casually aim for the headshot with them spraying me in panic and not hitting (yet up close it's always a fast 1 shot kill). Thankfully there's no suppression fire, eh?

Halfway improvement is not really an improvement. If AI is not equal to a player for the sole reason of people at BIS not being able to agree on game mechanics (AI must be natural, but player must be supernatural) there's a problem.

Could you, please, distinguish bug reports from complains about development strategy? I would be interested in repro steps and mission for the lack of accuracy you are describing but I don't have enough politeness to respond to other parts of your post.

Share this post


Link to post
Share on other sites
Could you, please, distinguish bug reports from complains about development strategy? I would be interested in repro steps and mission for the lack of accuracy you are describing but I don't have enough politeness to respond to other parts of your post.

A repro would be a nice to see...

Share this post


Link to post
Share on other sites

@klamacz

I got the test setup now. Tomorrow and the day after tomorrow I have to script all measurements and make some dialogs for changing AI and target settings...

Towards measurements:

I'm thinking about: Time needed to kill all Targets, Firing Direction (Which Target), Firing Accuracy (Where was the Target hit), distance to Target

All can be done with eventhandlers (killed,Fired and HitPart), just have to think about the connection between them (To know which bullet was shot when and if it hit a target and where)... thinking about time or the bulletobject itself

Is there anything else you want to know about AI?

Edited by Cthulhu616

Share this post


Link to post
Share on other sites

@Cthulhu616: This sounds great already ;) Just please keep it enjoyable for players as well, then we will have both informations, statistical and subjective feelings.

Share this post


Link to post
Share on other sites
@Cthulhu616: This sounds great already ;) Just please keep it enjoyable for players as well, then we will have both informations, statistical and subjective feelings.

Actually I wouldn't be bothered about the enjoyment of it and I am sure the majority of community members think the same as long as it helps the game in the long run.

Share this post


Link to post
Share on other sites

@maturin

here's a short script to collect count of shots versus landed hits. It is easy to modify it to register the distances too.

in editor create 3 units. name the one to be tested "aimingUnit", and name potential targets "t1" and "t2". Create also a civ for observing.

place this init in mission folder. It is possible to add additional targets to the (_potentialTargets = [t1, t2, anothertarget, yetanother]) name them in editor accordingly

init.sqf

// Units Setup
_aimingUnits = [aimingUnit];
_potentialTargets = [t1, t2];

// Event functions
GAM_FireCount = {
_unit = _this select 0; /*_weapon = _this select 1; _muzzle =_this select 2; _mode = _this select 3; _ammo = _this select 4;*/
_unit setVariable ["NShots", (_unit getVariable "NShots") + 1];
_unit setVariable ["TShots", (_unit getVariable "TShots") + 1];
};

GAM_HitCount = {
_unit = _this select 0;
_causedBy = _this select 1;
_damage =_this select 2;

if (isNil {_unit getVariable "NHits"}) then {
	_unit setVariable ["NHits", 1];
	_causedBy setVariable ["NHits", 1];
	//_causedBy setVariable ["CurrentTarget", _unit];
	_unit setVariable ["CausedBy", _causedBy];
} else {
	_unit setVariable ["NHits", (_unit getVariable "NHits") + 1];
	_causedBy setVariable ["NHits", (_causedBy getVariable "NHits") + 1];
	_unit setVariable ["CausedBy", _causedBy];
};

_index = (_causedBy getVariable "NKills");
_prevKills = _causedBy getVariable "Kills";
_prevKills set [_index, [_unit, round(_causedBy distance _unit), _causedBy getVariable "NShots", _causedBy getVariable "NHits"]];
_causedBy setVariable ["Kills", _prevKills];
//_unit setDamage 0;
};

GAM_Killed = {
_unit = _this select 0;
_killer = _this select 1;

_unit setVariable ["Killer", _killer];
_unit setVariable ["NHits", (_unit getVariable "NHits") + 1];

_killer setVariable ["NHits", (_killer getVariable "NHits") + 1];
//_killer setVariable ["CurrentTarget", objNull];

_index = (_killer getVariable "NKills");
_prevKills = _killer getVariable "Kills";
_prevKills set [_index, [_unit, round(_killer distance _unit), _killer getVariable "NShots", _killer getVariable "NHits"]];
_killer setVariable ["Kills", _prevKills];

_killer setVariable ["NKills", (_killer getVariable "NKills") + 1];
_killer setVariable ["NShots", 0];
_killer setVariable ["NHits", 0];
};

// Init unit under test
{
_EHFired = _x addEventHandler ["Fired", {_this call GAM_FireCount}]; // [unit, weapon, muzzle, mode, ammo]
_x setVariable ["TShots", 0];
_x setVariable ["NShots", 0];
_x setVariable ["NHits", 0];
//_x setVariable ["CurrentTarget", objNull];
_x setVariable ["Kills", []];
_x setVariable ["NKills", 0];
}forEach _aimingUnits;

// Init targets under test
{
_EHHit = _x addEventHandler ["Hit", {_this call GAM_HitCount}]; // [unit, causedBy, damage]
_EHKilled = _x addEventHandler ["Killed", {_this call GAM_Killed}]; // [unit, killer]
}forEach _potentialTargets;

// Loop to show info
while {true} do {
info = format ["%1 Killed: %2 units\n\n", aimingUnit, aimingUnit getVariable "NKills"];
_kills = aimingUnit getVariable "Kills";
if (count _kills > 0) then {
	{
		info = info + format ["Distance(%1): %2m\nShots: %3 | Hits: %4 (%5%6)\n\n", _x select 0, _x select 1, _x select 2, _x select 3, round(((_x select 3) * 100) / (_x select 2)), "%"];
	} forEach _kills;
};
info = info + format ["Total Shots: %1\n", aimingUnit getVariable "TShots"];
hintSilent info;
sleep 0.1;
};

@Cthulhu616

feel free to pick on this script however you may need. Be careful since it assumes aimingUnit does not change targets during the count until the current is killed. It is also possible to miss a shot or two when aiming unit switches targets. Also, i always assumed assignedTarget would return the current target under aim of a unit, such is not the case. If you know a short way to check for this keeping track of the counting simplifies a lot.

Edited by gammadust
script update

Share this post


Link to post
Share on other sites

sure... but update the array in init to:

_potentialTargets = [t1];

just updated the script to include the distance and a percentage. Keep in mind that per target shot counting may miss some of them, this info is only shown after the target is killed, refer to Total Shots to get a better idea.

Share this post


Link to post
Share on other sites

What i noticed is that AI infantrymen in towns are often running into enemy APCs and MTBs. It was the case in A2 and it is a case in A3. I suppose that their target destination path might lead through the roads the enemy armor is localised. AI should avoid it.

Share this post


Link to post
Share on other sites

Coming back from a session testing JRSR on Infantry Showcase. Man, sounds really change the feeling of the game, take note B.

Anyway, to AI. Those long\medium distance firefights where much better because of the lack of accuracy, both sides. I couldn't hit those first tangos while about ~10m back from that rock neither the AI in the first shots, I am bad shot? We killed them, kept pushing (AI is more agressive but not careless it seems), second wave of enemies even more intense firefights and while my squad was dying (that mission is a little PITA) a MG kept firing at us and killed the last guy that was with me. So I went Rambo and then the bad thing happened:

Two enemies were close and I should be dead but they couldn't kill me from 5-10m while I was moving; I killed one and the other just killed me when the barrel was pratically in my ear. This behaviour doesn't match the experience I had yesterday while in CQB where they were deadly.

Conclusion: Sounds are important!

AI lack of accuracy on medium\long range on open field seems fine but up close ,at least while moving, are dreaded. There is any change between open ground and CQB?

On profile: SkillEnemy and Friendly are set to .9 and enemy precision to .3 and friendly .4 (Wasn't promissed a talk on those values some days ago?)

Going to set up a mission to do some testing.

Share this post


Link to post
Share on other sites

Situation: Rifleman shooting at standing targets. Shooting from 3 stances. Game options skill is .75, precision is .55 or .56.

"# Skill: 0.582961 - Distance: 50 - Stance: up - Iterations: 21 of 20 - Shots fired: 77 - On target avg: 26%"

"# Skill: 0.582961 - Distance: 50 - Stance: middle - Iterations: 21 of 20 - Shots fired: 79 - On target avg: 26%"

"# Skill: 0.582961 - Distance: 50 - Stance: down - Iterations: 21 of 20 - Shots fired: 60 - On target avg: 34%"

"# Skill: 0.582961 - Distance: 100 - Stance: up - Iterations: 21 of 20 - Shots fired: 86 - On target avg: 24%"

"# Skill: 0.582961 - Distance: 100 - Stance: middle - Iterations: 21 of 20 - Shots fired: 70 - On target avg: 29%"

"# Skill: 0.582961 - Distance: 100 - Stance: down - Iterations: 21 of 20 - Shots fired: 83 - On target avg: 25%"

This is using the adapted FAB Targetrange script I mentioned earlier. One possible wildcard here is the precision value. The player observes as civilian, with Blufor shooting at Opfor. In ArmA 2, this would mean that the shooter uses precisionFriendly. What value ArmA 3 uses for this purpose, I don't know.

Anyways, the coder who adapted the mission got the following results, but with a marksman instead of a rifleman. Note the difference in editor skill slider value.

"# Skill: 1 - Distance: 50 - Stance: up - Iterations: 21 of 20 - Shots fired: 41 - On target avg: 49%"

"# Skill: 1 - Distance: 50 - Stance: middle - Iterations: 21 of 20 - Shots fired: 62 - On target avg: 33%"

"# Skill: 1 - Distance: 50 - Stance: down - Iterations: 21 of 20 - Shots fired: 36 - On target avg: 56%"

"# Skill: 1 - Distance: 100 - Stance: up - Iterations: 21 of 20 - Shots fired: 54 - On target avg: 38%"

"# Skill: 1 - Distance: 100 - Stance: middle - Iterations: 21 of 20 - Shots fired: 83 - On target avg: 25%"

"# Skill: 1 - Distance: 100 - Stance: down - Iterations: 21 of 20 - Shots fired: 60 - On target avg: 34%"

"# Skill: 1 - Distance: 200 - Stance: up - Iterations: 21 of 20 - Shots fired: 64 - On target avg: 32%"

"# Skill: 1 - Distance: 200 - Stance: middle - Iterations: 21 of 20 - Shots fired: 85 - On target avg: 24%"

"# Skill: 1 - Distance: 200 - Stance: down - Iterations: 21 of 20 - Shots fired: 75 - On target avg: 27%"

Note the strange results with standing shooting better than prone.

Here it is again with a Sniper, using the parameters from my first test:

"# Skill: 0.582961 - Distance: 50 - Stance: up - Iterations: 21 of 20 - Shots fired: 27 - On target avg: 75%"

"# Skill: 0.582961 - Distance: 50 - Stance: middle - Iterations: 21 of 20 - Shots fired: 26 - On target avg: 77%"

"# Skill: 0.582961 - Distance: 50 - Stance: down - Iterations: 21 of 20 - Shots fired: 30 - On target avg: 67%"

"# Skill: 0.582961 - Distance: 100 - Stance: up - Iterations: 21 of 20 - Shots fired: 39 - On target avg: 52%"

"# Skill: 0.582961 - Distance: 100 - Stance: middle - Iterations: 21 of 20 - Shots fired: 33 - On target avg: 61%"

"# Skill: 0.582961 - Distance: 100 - Stance: down - Iterations: 21 of 20 - Shots fired: 42 - On target avg: 48%"

Edit: Currently I'm having trouble getting units to engage past 200m with this script. I suspect the unlimited ammo provision got lost somewhere along the way.

Edited by maturin

Share this post


Link to post
Share on other sites

ive noticed that when in combat in towns.. the AI sometimes i dunno what to call it but they kind of stay in 1 position and dont really try to navigate through the town to engage the enemy..

if they moved in the town more engaging and taking cover against walls and not just staying still then CQB would be almost complete :)

thats my input anyway

Share this post


Link to post
Share on other sites
sure... but update the array in init to:

_potentialTargets = [t1];

just updated the script to include the distance and a percentage. Keep in mind that per target shot counting may miss some of them, this info is only shown after the target is killed, refer to Total Shots to get a better idea.

That's a much simpler script, easier to edit.

Prone rifleman shoots standing target 300m distant:

5 hits out of 60 shots, or 8% accuracy.

Share this post


Link to post
Share on other sites
the AI sometimes i dunno what to call it

I don't know what to call it sometimes either, when it comes to CQB maybe AR for Artificial Retards would be more suitable, since they currently barely show any signs of intelligence.

Edited by clydefrog

Share this post


Link to post
Share on other sites

Playing the Whole Lot of Altis mission and my guys refuse to engage enemy soldiers. Could be an issue with the mission but it's an odd one, they'll engage enemy vehicles and even call out enemy positions but won't shoot.

Share this post


Link to post
Share on other sites

For the umpteenth time, guys. Stay on topic. We are discussing actual changes currently being made by the devs. If you have a concrete issue to report, use the bugtracker. If you just want to air your grievances, get a Tumblr.

More results from other people:

"# Skill: 1 - Distance: 50 - Stance: up - Iterations: 21 of 20 - Shots fired: 52 - On target avg: 39%"

"# Skill: 1 - Distance: 50 - Stance: middle - Iterations: 21 of 20 - Shots fired: 50 - On target avg: 40%"

"# Skill: 1 - Distance: 50 - Stance: down - Iterations: 21 of 20 - Shots fired: 50 - On target avg: 40%"

"# Skill: 1 - Distance: 100 - Stance: up - Iterations: 21 of 20 - Shots fired: 66 - On target avg: 31%"

"# Skill: 1 - Distance: 100 - Stance: middle - Iterations: 21 of 20 - Shots fired: 68 - On target avg: 30%"

"# Skill: 1 - Distance: 100 - Stance: down - Iterations: 21 of 20 - Shots fired: 68 - On target avg: 30%"

"# Skill: 1 - Distance: 200 - Stance: up - Iterations: 21 of 20 - Shots fired: 108 - On target avg: 19%"

"# Skill: 1 - Distance: 200 - Stance: middle - Iterations: 21 of 20 - Shots fired: 80 - On target avg: 25%"

"# Skill: 1 - Distance: 200 - Stance: down - Iterations: 21 of 20 - Shots fired: 70 - On target avg: 29%"

"#"

"# Targetrange session end. Duration: 769.508 seconds"

Run2

"# Skill: 1 - Distance: 50 - Stance: up - Iterations: 21 of 20 - Shots fired: 50 - On target avg: 40%"

"# Skill: 1 - Distance: 50 - Stance: middle - Iterations: 21 of 20 - Shots fired: 48 - On target avg: 42%"

"# Skill: 1 - Distance: 50 - Stance: down - Iterations: 21 of 20 - Shots fired: 54 - On target avg: 38%"

"# Skill: 1 - Distance: 100 - Stance: up - Iterations: 21 of 20 - Shots fired: 72 - On target avg: 28%"

"# Skill: 1 - Distance: 100 - Stance: middle - Iterations: 21 of 20 - Shots fired: 54 - On target avg: 38%"

"# Skill: 1 - Distance: 100 - Stance: down - Iterations: 21 of 20 - Shots fired: 51 - On target avg: 40%"

"# Skill: 1 - Distance: 200 - Stance: up - Iterations: 21 of 20 - Shots fired: 73 - On target avg: 28%"

"# Skill: 1 - Distance: 200 - Stance: middle - Iterations: 21 of 20 - Shots fired: 62 - On target avg: 33%"

"# Skill: 1 - Distance: 200 - Stance: down - Iterations: 21 of 20 - Shots fired: 91 - On target avg: 22%"

Share this post


Link to post
Share on other sites
Yes, it will be lots and lots of fun. Because unless you are in a moral panic about the poor AI you might exploit (and like most moral panics, it acts like a very rare event will be of all-encompassing significance), it's just not going to be noticeable.

The AI in CQB is a lot better now, but still not good enough. When I sneak up on the AI from the flank, 95% of the time they don't even begin to turn, no matter their stance. They just keep staring at their former target. I think you know what I mean. The decisive factor in between human and AI will almost always be the humanity or the artificiality of one side or the other, not minutiae like turn rate. This isn't a dog fight.

Well to chip in with my own experiences: that behavior is one I see a lot, even from myself. When I'm in some urban environment and advancing n enemy, I very often get sideswiped by some AI and it takes me some time to figure out where it's coming from. That amount of time, more often than not, gets me killed. In MP I often see human players having similar difficulties, complaints about possible player-superhumanness are grossly exaggerated IMO.

Halfway improvement is not really an improvement. If AI is not equal to a player for the sole reason of people at BIS not being able to agree on game mechanics (AI must be natural, but player must be supernatural) there's a problem.

Halfway improvement is not really an improvement? You seem to expect all your grievances to all end all at the same time? Even for you this seems a ridiculous stance to adopt.

Share this post


Link to post
Share on other sites

Just in case anyone is interested this is % chance of a hit with an M16 from the US Army advanced combat rifle program in the 90's

US%20Army%20M16%20hit%20probability.jpg

Share this post


Link to post
Share on other sites
exactly my point. i'm not asking for all knowing super helis. but having them hover over an AO does nothing until you are in a vehicle right now. i want to have to hide from them using houses etc. it's all about the interesting game play. i'd be fine with them just using the gatling gun and not the rockets like in arma 2. just make them do something.

I noticed that I could run around under patrolling helis without being engaged but I was just using a Move waypoint so I set the waypoint to Search and Destroy. They patrolled the waypoints and shot me with the cannon very nicely if I gave them half a chance.

It might be nice to have them do something interesting without a waypoint as default behavior but the functionality for them to do effective patrols is there right now easily enough.

Share this post


Link to post
Share on other sites
I noticed that I could run around under patrolling helis without being engaged but I was just using a Move waypoint so I set the waypoint to Search and Destroy. They patrolled the waypoints and shot me with the cannon very nicely if I gave them half a chance.

It might be nice to have them do something interesting without a waypoint as default behavior but the functionality for them to do effective patrols is there right now easily enough.

that sounds good. gonna investigate more when i have time.

good first post btw. welcome to the forums :)

Share this post


Link to post
Share on other sites

This is a little bit off topic but I wanted to bring it up since I've always wanted a good ai control system implemented into the map mode.

I wouldn't expect to see any work on this done until after the initial release but it would be great to have it.

A lot of headaches w/AI could be solved if BIS developed a AI control scheme similar to a real time strategy. Give us the option to assign waypoints to our AI as well as advanced commands like what stance to have at a waypoint, whether to be aware, combat ready, etc, standing/crouching/crawling, and more all from the map mode.

A similar comparison would be high command in Arma 2, but a lot more polished.

I don't see how this is a hard thing to implement and it would be a very useful feature.

Vote here: http://feedback.arma3.com/view.php?id=13669

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

×