Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Very high AI accuracy caused by ACE #6948

Closed
BlackAlpha opened this issue Apr 18, 2019 · 26 comments
Closed

Very high AI accuracy caused by ACE #6948

BlackAlpha opened this issue Apr 18, 2019 · 26 comments

Comments

@BlackAlpha
Copy link

Arma 3 Version: 1.90.145471 Stable
CBA Version: 3.10.1 (Steam Workshop)
ACE3 Version: 3.12.6 (Steam Workshop)

Mods:

  • CBA_A3
  • ace

Description:
The AI accuracy is very high with the ACE mod and it's not possible to give the AI low accuracy. This is a problem if, for example, you want to do a mission with low AI skill or you are running a suppression script that uses setSkill to modify AI accuracy.

It would be very, very helpful if the ACE AI accuracy was more similar to vanilla, allowing for more granular control over the accuracy setting.

Steps to reproduce:

  • Download this test mission: https://www.dropbox.com/s/j46m247dd9b1n5w/aiAccuracyTest1.VR.rar?dl=0
  • Start vanilla and load up the mission in the editor.
  • Don't do anything and allow the AI to fire 200+ shots and take note of the results.
  • Use the scroll wheel to change the AI accuracy skill and repeat the test.
  • Repeat the test with the ACE mod. The AI Accuracy is tremendously higher with the ACE mod, super-human level.

I've done many tests and the following numbers give you a pretty good picture:

Distance: 300 meters
Weapon: Rifle without magnification
Shooter position: Prone on elevated platform
Target position: Prone on ground
Profile accuracy level: 0.5
Setskills: 0.9

Vanilla
Accuracy Skill: 0.9
Accuracy SkillFinal: 0.8125
Shots fired: 200
Hits: 47
Accuracy: 23.5%

Vanilla
Accuracy Skill: 0.1
Accuracy SkillFinal: 0.1
Shots fired: 200
Hits: 7
Accuracy: 3.5%

Vanilla
Accuracy Skill: 0.01
Accuracy SkillFinal: 0.099
Shots fired: 200
Hits: 4
Accuracy: 2%

ACE
Accuracy Skill: 0.9
Accuracy SkillFinal: 0.8125
Shots fired: 200
Hits: 182
Accuracy: 91%

ACE
Accuracy Skill: 0.1
Accuracy SkillFinal: 0.1
Shots fired: 200
Hits: 71
Accuracy: 35.5%

ACE
Accuracy Skill: 0.01
Accuracy SkillFinal: 0.099
Shots fired: 200
Hits: 60
Accuracy: 30%

Where did the issue occur?

  • Dedicated server / Editor (Singleplayer)

Additional information:
ACE settings: https://pastebin.com/RT0J7ECd
ACE debug: https://pastebin.com/Mja9pJwg
RPT file: https://pastebin.com/Zd6JSm8p

@commy2
Copy link
Contributor

commy2 commented Apr 18, 2019

Weapon: Rifle without magnification

Which weapon? In Arma, each weapon has its own AI.
Can you try this again, except that you delete @ace\addons\ace_ai.pbo beforehand?

@alganthe
Copy link
Contributor

^ it's very likely to be the changes to dispersion to make them realistic.

@commy2
Copy link
Contributor

commy2 commented Apr 18, 2019

That only applies to a select few sniper rifles. Therefore it would be helpful to know what weapon this is about and if deleting the ace_ai component resolves this.

@alganthe
Copy link
Contributor

@BlackAlpha
Copy link
Author

The weapon is "arifle_Katiba_F". The AI fires with the "single" firing mode.

Removing ace_ai.pbo made no difference.

I ran vanilla with the ACE dispersion value for the Katiba and I got the same accuracy results as with the ACE mod. So, it looks like the large AI accuracy boost is caused by the dispersion values on the firing modes.

@commy2
Copy link
Contributor

commy2 commented Apr 18, 2019

Then I suggest you delete ace_ballistics.pbo

@BlackAlpha
Copy link
Author

So, the fix for this is to change the aiDispersionCoefX and aiDispersionCoefY values on the weapons. For example, for the Katiba I multiplied the values by 4.4 (vanilla dispersion / ace dispersion = 4.4), and then you end up with an AI accuracy that is very similar to vanilla.

@commy2
Copy link
Contributor

commy2 commented Apr 21, 2019

Are you sure you can just divide the dispersions? That seems to me like it would not necessarily lead to the correct result.

@BlackAlpha
Copy link
Author

I'm not sure if it will work for other weapons, but it worked for the Katiba.

@commy2
Copy link
Contributor

commy2 commented Apr 21, 2019

I mean mathematically. If anything would would have to add the values.

@BlackAlpha
Copy link
Author

BlackAlpha commented Apr 22, 2019

The 4.4 (vanilla dispersion / ace dispersion = 4.4) was just to see by how much the fire mode dispersion had changed between vanilla and ACE. Then, the aiDispersionCoef values (on the weapon itself) got multiplied by 4.4.

@commy2
Copy link
Contributor

commy2 commented Apr 22, 2019

Yes, but why do you multiply and not add or do a different operation?

@BlackAlpha
Copy link
Author

The aiDispersionCoef values are multipliers for the dispersion values, but they only apply to AI.

So, if for example you divide dispersion by 2, the weapon will become twice as accurate, but so will the AI. If you then multiply aiDispersionCoef by 2 to compensate, the AI accuracy will be back to how it was before the dispersion got changed.

@commy2
Copy link
Contributor

commy2 commented Apr 22, 2019

That makes sense. Is that documented anywhere?

@Laid3acK
Copy link
Contributor

The actual applied dispersion with the assault rifles comes from civilian Bench Rest values which is completely incoherent with military shooting.
Moreover, these dispersions don't even take into account the length of the barrel.
So a rifle with a pistol barrel for example has exactly the same dispersion as a rifle with a 30" barrel.
Double inconsistencies.
The raison i chosen a sort of "technical" dispersion for the R3F assault rifles depending only of the weapon and his ammo, and not an hypothetical reference from someone somewhere in a limited civilian target range : #6003
A quick example, all 5.56 rifles have a dispersion = 1.12 MOA, approximately a recalculated 2 MOA with the Ruthberg 0.562 coefficient.
The R3F HK416 14,5" has 1.87 MOA, the HK461 11" 2.12 MOA, respectively 3.32 and 3.78 MOA, a little bit more coherent with military values.

So, why not increase the aiDispersionCoef but i think all ACE3 dispersions need to be improved with something different than civilian Bench Rest values.

@Blutze
Copy link
Contributor

Blutze commented Apr 23, 2019

The actual applied dispersion with the assault rifles comes from civilian Bench Rest values which is completely incoherent with military shooting.

What you call "bench rest values" is just the mechanical precision of the device. In combat you will not see those results because shooter error is added to the equation... which for a AI is simulated by the aiCoefs, and for a player does not need to be simulated at all because it is a human element. I, the player, am going to make marksmanship mistakes. That is how you get to the "military shooting" results, not through disperson config.

@Laid3acK
Copy link
Contributor

If you, players, are happy with the accuracy of these arcadish dispersions, there is no reason the IA hasn't got the same level of accuracy.

@commy2
Copy link
Contributor

commy2 commented Apr 23, 2019

Fully agree with Blutze. The reason the AI has this dispersion coeficient is because it can and will aim pixel perfect otherwise, which a player with a mouse can not.

@BlackAlpha
Copy link
Author

BlackAlpha commented Apr 23, 2019

Personally, I think using real dispersion values for the weapons is preferable, so that you get the possibility to make full use of the weapon's accuracy. I believe ACE gets closer to the real values than vanilla does. The vanilla Katiba was missing (at random) a human sized target at 300 meters, which is silly. Aiming errors should be modeled through other methods, like for example weapon sway, wind, or aiDispersionCoef. Which is why I hope the ACE team will look into the aiDispersionCoef values.

@Laid3acK
Copy link
Contributor

I believe ACE gets closer to the real values than vanilla does.

You know where these values come from and how it was managed in-game after ?

@xrufix
Copy link
Contributor

xrufix commented May 28, 2019

Wouldn't it be a good solution to use the vanilla values for AI and ACE values for players?

@commy2
Copy link
Contributor

commy2 commented May 28, 2019

And how would you do that?

@xrufix
Copy link
Contributor

xrufix commented May 30, 2019

If I understood the conversation above correctly, there is an AI dispersion coefficient which applies to the dispersion value. So we would need to set this coefficient so that the product of coef and dispersion equals that of vanilla values.

But I may be wrong, I have never worked with weapon configs before

@stale
Copy link

stale bot commented Nov 26, 2019

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@stale stale bot added the status/stale label Nov 26, 2019
@stale
Copy link

stale bot commented Dec 10, 2019

This issue has been automatically closed due to inactivity.
If this is still an issue, please feel free to re-open this. If necessary, provide any additional details to help us solve this issue.
If you wish to assist us resolving this issue, please re-open or create a new issue stating you wish to help us out.
Thank you for your contributions.

@BenjaminWadeGoulart
Copy link

BenjaminWadeGoulart commented Sep 18, 2022

What you call "bench rest values" is just the mechanical precision of the device.

These are not simple mechanical devices with deterministic outcomes even when you subtract the human useability element.

The actual applied dispersion with the assault rifles comes from civilian Bench Rest values which is completely incoherent with military shooting. Moreover, these dispersions don't even take into account the length of the barrel. So a rifle with a pistol barrel for example has exactly the same dispersion as a rifle with a 30" barrel. Double inconsistencies. The raison i chosen a sort of "technical" dispersion for the R3F assault rifles depending only of the weapon and his ammo, and not an hypothetical reference from someone somewhere in a limited civilian target range : #6003 A quick example, all 5.56 rifles have a dispersion = 1.12 MOA, approximately a recalculated 2 MOA with the Ruthberg 0.562 coefficient. The R3F HK416 14,5" has 1.87 MOA, the HK461 11" 2.12 MOA, respectively 3.32 and 3.78 MOA, a little bit more coherent with military values.

So, why not increase the aiDispersionCoef but i think all ACE3 dispersions need to be improved with something different than civilian Bench Rest values.

The muzzle velocity and drop are at least currently affected by the barrel length, though, with fairly accurate depictions of rapidly diminishing returns with certain calibers in ACE, if not the adverse consequences of excessive barrel length beyond, say, 16 inches for certain 5.56 rounds, for example. I believe we also get increased dispersion and more jams as the barrel heats up, which is a wonderful simulation effect to have in a first-person shooter. Personally, I increase overall ACE barrel cooling but also increase the heating effects of suppressors to incentivize the use of simple flash hiders when shooting rapidly and/or when not using subsonic ammo. I do tune overheating cook-off way down, though, such that it only occurs in the most extreme situations occasionally.

The ACE Dispersion extension and many add on gun mods' values seem to come from minority best-instance bench rest tests with the best possible match-grade (super-expensive and not necessarily durable) versions of those guns and the best possible match-grade ammo. And they're usually one-offs rather than average performance across many trials even using that unique example of that gun with the best ammo you can get. In other words, it's the fan boys of those respective guns who understandably cherry-picked the specs by using one-off performance of the best of the best with the best of the best ammo... completely idealized.

Bohemia Interactive's values in combination with ACE Ballistics are substantially more representative of the actual real-world performance of the guns (at least the ones that are not fantasy guns) even with the best ammo. For instance, you might get 1.5 MOA with match grade ammo on an average match grade 'classic' M14. You'll be at least twice that MOA with average ammo on that classic M14 even with its barrel precisely bedded in a glass liner... assuming you're firing slowly enough and not heating the barrel up compared to what an ultra-expensive (by about 5X) AR-10 with floating barrel can handle.

The minimum solution, not discounting the additional utility of simply not using one-off, non-representative gun specs even when using ACE match grade ammo, is to at least use the ACE ammo specs to modify the dispersion... particularly to use ballistic coefficient, such that a G1 BC of 1.0 would indeed give you the ACE MOA for that gun, and any BC inferior to that would give you worse MOA. Ballistic coefficient isn't a perfect representation of the accuracy of a round, but it's probably the best spec for the purpose we've already got in ACE and many of these gun mods, and it could be easily used in a simple modification calculation just as-is... just divide the dispersion MOA of the gun by the BC number for that ammo to get the dispersion probability of the combo.

Using this math, some of the excessive gun MOA accuracy specs might actually work themselves out on some of these mods and on even the ACE Dispersion extension that modifies the vanilla guns, as for many of these guns there does not exist ammo of sufficiently high BC in the game to get anywhere near that stated MOA using this simple math. So, if some M14 is ludicrously stated as having an MOA of 0.8, you might actually get something reasonable even with the best BC on some ACE Berger match ammo.

Optimally, though, one could also include a multiplier slider in ACE's menu to skew the MOA to BC combination towards more or less accuracy than this default calculation, and maybe even an additive slider, too, for adding, say, 0.1 or 0.2 MOA to everything, including those goofy guns in some packs with 0.0 MOA. While adding 0.1 MOA first might not do much to something that's 2.0 MOA, it would significantly affect the resulting accuracy of a 0.0 MOA gun when that's then divided by its ammo BC.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

8 participants