Jump to content

Recommended Posts

As a (yet another) follow-up of Difficulty/AI Skill settings proposal (also, REF:AI Configuration Analysis & this) I've decided to start a new thread dedicated not to what the AI can and can't do, but to how you, as a player, mission designer or modder can directly affect the AI's behavior.

The initial goal is to:

  • DEFINE how individual AI config params affect AI behaviour, document and refine these settings
  • PROVIDE the player more meaningful control over the difficulty of the AI (global configuration)
  • ENABLE mission designers more useful control over AI configuration (per-unit configuration)

DEFINE

Together with slightly improved documentation of AI Sub-skills, setSkill command and under-improvement CfgAISkill & page about precision(skill)Friendly(Enemy) (currently incomplete info here, more info here) we'd like to consolidate the configuration of AI on all levels. For that purpose, we've divided the issue into 2 main branches. Global and Per-unit configuration.

Please, take a look at the documentation and let us know what you think about the current status, about current options how to configure the AI and also feel free to ask about anything you'd like to know and you feel is missing in the documentation!

PROVIDE

We'll hopefully get a chance to improve both "branches" soon or later, but our first focus is on the global settings; i.e. player more meaningful control over the difficulty of the AI in Game Options/Difficulty, defined in your .Arma3Profile.

One option is to get rid of it completely and leave the decision about how dangerous the AI is going to be purely on the mission designer. #noFlameIntended

I bet you'd still like to adjust the AI on a global scale (especially on MP servers without having to go into the mission itself and adjust the units there), so removing the AI UNIT SKILL sliders completely isn't an option, right?

I'd though still consider such approach quite feasible - it would give us the possibility to fine-tune one preset and take a full responsibility for it. The amount of challenge in such case would be only altered by what "helpers" you use, what difficulty "flags" you have enabled. And the only control about AI skill would belong to mission makers.

By that "fine-tuning" we could get rid of one variable and make also sure, that any level of the AI's skill you choose in the mission editor will always give reasonable and enjoyable results, only with different challenge.

The other option is to provide limited amount of, let's say 3, hard-set global AI skill presets - carefully tuned by us (with an assistance of your feedback) - that would give a consistent experience and would also let you know what you can expect from a MP session that uses one of such presets. (showing this parameter in server info is intended)

For your convenience there still could be one more (advanced) option - a custom preset where you could set, for example, the Skill & Precision of AI to any value. We wouldn't take responsibility for that ;). That would allow you to adjust the AI if you didn't like the presets defined by us, it would allow you to test the effects of those two multipliers on the run or drastically change the mission experience without touching the individual AI units' skills inside it. (More about how they work to be found here)

That would also come with separating the AI skill settings completely from the other "difficulty" settings, that serve mainly the purpose of "helpers" (HUD elements...).

ENABLE

In future, we'll take a look at how we can give mission makers more options for setting units in, for example, the mission editor; for now, we're focus now purely on those global settings: how would you like to adjust the AI globally?

I know it's interconnected with per-unit skill settings, but let's say we can - just for a moment - forget about that ;)

Edited by oukej
links to wiki

Share this post


Link to post
Share on other sites

I think that the best way for AI configuration would be a multiplier. The individual skill values would be up to the mission designer but the server/player's difficulty settings are a multiplier on that. So say Regular would be 1x multiplier, so it would play exactly as the mission maker made it. While Recruit/cadet would be 0.5x, or veteran 1.25x. This of course should have a hard limit so if the mission maker has set a unit as the Best Goddamn Dude Around he wouldn't suddenly go over the maximum skill level (if thats even possible) due to a difficulty setting.

At the very least there should be two of these global settings, one for 'general' and one for accuracy as I know a lot of people like smarter AI but not aim bot AI

Share this post


Link to post
Share on other sites
I think that the best way for AI configuration would be a multiplier. The individual skill values would be up to the mission designer but the server/player's difficulty settings are a multiplier on that. So say Regular would be 1x multiplier, so it would play exactly as the mission maker made it. While Recruit/cadet would be 0.5x, or veteran 1.25x. This of course should have a hard limit so if the mission maker has set a unit as the Best Goddamn Dude Around he wouldn't suddenly go over the maximum skill level (if thats even possible) due to a difficulty setting.

At the very least there should be two of these global settings, one for 'general' and one for accuracy as I know a lot of people like smarter AI but not aim bot AI

That is basically the way precision/skill in .Arma3Profile work. Presets tuned and defined by us would give you reliable results, could help also you giving us feedback about your experience with AI and also would set stable levels for MP.

Share this post


Link to post
Share on other sites
That is basically the way precision/skill in .Arma3Profile work. Presets tuned and defined by us would give you reliable results, could help also you giving us feedback about your experience with AI and also would set stable levels for MP.

So the precision setting is functional again? I thought it was still disabled since that Arma 2 patch.

Share this post


Link to post
Share on other sites
Please, take a look at the documentation and let us know what you think about the current status, about current options how to configure the AI and also feel free to ask about anything you'd like to know and you feel is missing in the documentation!

Ok, then. :cool:

From the wiki:

Courage

Affects the morale of a group of subordinates. (Higher value = more courage)

This explains in simple terms what it does, but it doesn't link to the effect of lower/higher courage on the AI.

As I recall, it's related to fleeing, but it could be useful to define it a bit more clearly?

Keep up the good work :p

Best,

RiE

Share this post


Link to post
Share on other sites

Well I usually play with maximum skill settings (I'm that pro), so the AI inherits the true values (at least I think they are) set in the mission itself.

Community wise, I think the best way to go is presets (I want maximum skill preset included) and optional "Use at your own risk" custom preset (so you don't have people making addons because they don't like the presets).

Share this post


Link to post
Share on other sites
That is basically the way precision/skill in .Arma3Profile work. Presets tuned and defined by us would give you reliable results, could help also you giving us feedback about your experience with AI and also would set stable levels for MP.

Does the setskill array scripting command override this?

Share this post


Link to post
Share on other sites
That is basically the way precision/skill in .Arma3Profile work. Presets tuned and defined by us would give you reliable results, could help also you giving us feedback about your experience with AI and also would set stable levels for MP.
Does the setskill array scripting command override this?

It does not, the value of each of the sub-skill from the array is multiplied by the value of either precisionFriendly/Enemy* (for aimingAccuracy or AimingShake) or skillFriendly/Enemy (for the rest) before actually used for the algorithm behind an action performed by the AI unit. *"precisionFriendly/Enemy" is derived from skillFriendly/Enemy.

Share this post


Link to post
Share on other sites

I think the lacking thing is simply documentation on what the settings do. I.E. like Jay said, we know the general idea behind the setting, but we don't know EXACTLY what it does and what it affects. Also like the confusion over whether or not the settings in the .arma3profile, knowing what settings interact with other settings and whether or not those settings even work would be something sorely needed as well.

The issue's with AI and how accurate they are stem from the AI themselves and how they aim more than the accuracy settings. Basically right now we use the accuracy settings as a crutch because of the unrealistic aiming behavior of the AI, something to keep in mind during the discussion.

Also reading through the subskills that you updated, aimingSpeed "Affects how fast can the AI rotate and stabilize its aim. (Higher value = faster, less error)", shouldn't those be opposite of one another? For instance faster rotation with lower stabilization? Maybe they should be separated so you can have faster rotation without instant stabilization or gimping the AI's stabilization into the ground.

Edited by Windies

Share this post


Link to post
Share on other sites

For more enabling mission designers more useful control over AI, could we see some VBS2 scripting commands? (Sorry if this is the wrong place.)

getMoralLevel, addToMoral and getMoraleLongTerm:

http://feedback.arma3.com/view.php?id=16306

setDispersionFactor and getDispersionFactor

http://feedback.arma3.com/view.php?id=16301

ignoreRoads:

http://feedback.arma3.com/view.php?id=16285

As well as possibly more scripting commands for each aspect of the AI?

Share this post


Link to post
Share on other sites
I think that the best way for AI configuration would be a multiplier. The individual skill values would be up to the mission designer but the server/player's difficulty settings are a multiplier on that. So say Regular would be 1x multiplier, so it would play exactly as the mission maker made it. While Recruit/cadet would be 0.5x, or veteran 1.25x. This of course should have a hard limit so if the mission maker has set a unit as the Best Goddamn Dude Around he wouldn't suddenly go over the maximum skill level (if thats even possible) due to a difficulty setting.

At the very least there should be two of these global settings, one for 'general' and one for accuracy as I know a lot of people like smarter AI but not aim bot AI

Instead of a multiplier, how about additive difficulty setting?

Share this post


Link to post
Share on other sites
I think that the best way for AI configuration would be a multiplier. The individual skill values would be up to the mission designer but the server/player's difficulty settings are a multiplier on that. So say Regular would be 1x multiplier, so it would play exactly as the mission maker made it. While Recruit/cadet would be 0.5x, or veteran 1.25x. This of course should have a hard limit so if the mission maker has set a unit as the Best Goddamn Dude Around he wouldn't suddenly go over the maximum skill level (if thats even possible) due to a difficulty setting.

At the very least there should be two of these global settings, one for 'general' and one for accuracy as I know a lot of people like smarter AI but not aim bot AI

I agree, a multiplier or something like that would be the best option.

Except I don't agree of having a hard limit the way you worded it, the mission maker can't make an unit "best goddamn dude around". The real maximum limit can be only reached if he put a soldier with maximum values AND the player chooses the maximum difficulty. The maximum is 1.25, not 1. Or if you want the maximum to be still 1.0, then the maximum amount you can pick or code from the editor should be 0.8 (0.8x1.25=1.0).

Think of it this way:

1 The mission designer doesn't have the final control of how difficult will be the mission.

2 The player doesn't have the final control of how difficult will be.

3 The real difficulty in practical terms will be the combination of both difficulties.

Share this post


Link to post
Share on other sites
I agree, a multiplier or something like that would be the best option.

Except I don't agree of having a hard limit the way you worded it, the mission maker can't make an unit "best goddamn dude around". The real maximum limit can be only reached if he put a soldier with maximum values AND the player chooses the maximum difficulty. The maximum is 1.25, not 1. Or if you want the maximum to be still 1.0, then the maximum amount you can pick or code from the editor should be 0.8 (0.8x1.25=1.0).

Think of it this way:

1 The mission designer doesn't have the final control of how difficult will be the mission.

2 The player doesn't have the final control of how difficult will be.

3 The real difficulty in practical terms will be the combination of both difficulties.

So basically the user skill setting would act as a ceiling for the actual difficulty of each soldier?

Share this post


Link to post
Share on other sites

Guys, the precision setting still has no effect on AI accuracy. Only the skill does. Or am I alone with this problem?

Share this post


Link to post
Share on other sites
Guys, the precision setting still has no effect on AI accuracy. Only the skill does. Or am I alone with this problem?

It works, the problem is that anything over .3-.4 and they are like terminator aimbots more or less. Set the precision to .15 or .2 and you can see a difference.

Share this post


Link to post
Share on other sites

Seems to me that I have to restart the game every time I change the config. Otherwise I cannot see any effect after a change. When I restart, it feels different.

Share this post


Link to post
Share on other sites

we've updated the community wiki again after discussing with the lads. Setting it out this way, one thing that becomes quite clear is that the aimingAccuracy sub-skill is tied to a lot of quite important calculations; i.e. just 1 value has an impact upon a range of (related but) different behaviours.

aimingAccuracy

  • Affects how well the AI can lead a target
  • Affects how accurately the AI estimate range and calculates bullet drop
  • Affects how well the AI compensates for weapon dispersion
  • Affects how much the AI will know to compensate for recoil (Higher value = more controlled fire)
  • Affects how certain the AI must be about its aim on target before opening fire

A common complaint is that the AI are 'terminators', which can kill you with one shot. AI with high aimingAccuracy will (as designed) be more likely to kill quickly because one value determines that they will be more likely to choose to fire only when certain, and when they do fire they will do so in a controlled way (firing slowly to compensate for recoil), with accurate information about the vector and range and adjustment for dispersion.

One idea would be to decouple some of the behaviour from this one value by adding more subSkills. In this way one might, for example, create AI which are able to accurately judge distance to target, but are more likely to pull the trigger with imperfect information about the target or with less accurate correction for recoil (i.e. shots would impact around targets rather than on targets). However, we should be careful about adding subSkills carelessly.

We'll continue our investigations but, if you meanwhile have any observations, please do share them. (And please bear with us that this is just part of our taskload - something like an ongoing personal vendetta against the AI!) :)

Best,

RiE

Share this post


Link to post
Share on other sites

For those of us less versed in the various subskills and how they interact with difficulty, could you please give a layman's terms overview of the relationship between the various settings? I mean currently we have:

1) player.profile (skillFriendly,skillEnemy,precisionFriendly,precisionEnemy)

2) SetSkill (and the described subskills) assigned by mission makers (or defaults by BIS in the editor, or some values assigned to every unit by e.g. ASR_AI)

3) overall difficulty slider in game settings.

Currently, it's not exactly clear which supersedes each other, if one acts as a multiplier to others, and which takes precedence (at least to majority of players)

I assume the Friendly/Enemy difficulty slider is identical to SkillFriendly/Enemy in the .profile and PrecisionFriendly/Enmy is derived from that numerically by engine (unless edited by the player), and these in turn affect the subskills set by missionmakers, right? But which ones are affected by what? And it works like a multiplier? Which of the subskills are affected if one edits the Precision in .profile to a much lower value for example?

Thanks!

Edited by fraczek

Share this post


Link to post
Share on other sites
For those of us less versed in the various subskills and how they interact with difficulty, could you please give a layman's terms overview of the relationship between the various settings? I mean currently we have:

1) player.profile (skillFriendly,skillEnemy,precisionFriendly,precisionEnemy)

2) SetSkill (and the described subskills) assigned by mission makers (or defaults by BIS in the editor, or some values assigned to every unit by e.g. ASR_AI)

3) overall difficulty slider in game settings.

Currently, it's not exactly clear which supersedes each other, if one acts as a multiplier to others, and which takes precedence (at least to majority of players)

You should be now able to find the answers here: https://community.bistudio.com/wiki/Category:AI

Skill slider in Editor/Insert Unit allows you to set skill from 0.2 to 1.0, default is 0.6, and the value set is the same as one simply set by setSkill command (last executed prevails). The sub-skills are directly inherited from it unless a sub-skill is set specifically in array using setSkill. This value is interpolated according to definitions in cfgAISkills. In most cases it remains unchanged with the current vanilla settings. And only then, on the start of a mission, it gets multiplied either by skillEnemy/skillFriendly or precisionEnemy/precisionFriendly (which is derived from skillEnemy/skillFriendly and that is exactly the value you set in the Game Options).

To visualize it (the picture may not be technically purrfect ;), but should give u a little aid understanding what's going on)

613px-AI_Skill.png

Instead of a multiplier, how about additive difficulty setting?

That idea came to my mind as well some time ago. It would make things more linear and graspable. But it would mean either narrower hard-limit for the range a mission designer can use to allow for some global "adding/subtracting".

Edited by oukej

Share this post


Link to post
Share on other sites
Wow.... no wonder things weren't clear enough.

Ha! That is funny! (and true).

Thank you much BIS for allowing us to have all this further info and to help in directing where A3 AI is going! Great stuff!

Share this post


Link to post
Share on other sites
So basically the user skill setting would act as a ceiling for the actual difficulty of each soldier?

No, no, we were talking of multiplicative effects. The only ceiling you get is when you get a soldier with the maximum skill in the editor being played in a mission in the hardest difficulty.

A ceiling effect would be a imperfect way to do it, as some times choosing a difficulty would modify the experience and other not.

The user skill setting (difficulty) should:

-have a global effect

-be applicable to every mission

-it always do the intended effect (easy makes the mission easier, hard makes it harder, very hard even harder, etc)

-it doesn't nullify the actual design of the mission (if someone puts a company of soldiers of skill 0.5 and some elite guards in a building escorting a general with skill 0.8, players of every difficulty should notice the elite guards are harder than the rest)

These are the requisites. The actual mathematical formula of how to do it is irrelevant, if the final effect for the player is the same, if the 4 points are covered. One way to do it, as we were talking, it's a multiplier. If the skill in the editor goes from 0 to 1, just put these difficulties and multiply:

Very easy : 0.75

Easy : 0.9

Medium: 1.0

Hard: 1.1

Very Hard: 1.25

that number with the AI skill of each soldier. Hell, I always thought it would work that way in Arma games.

Of course, if you do that, you have to modify what it actually means having a value of 1.0 in a skill, as now the net maximum will be 1.25, not 1.00. In other words, you would have to make a soldier of 1.0 skill a bit less good.

But the real problem of difficulty in Arma more than reload speed, turning speed or accuracy of AI imo is the "senses", the vision, the hearing, how they share that info, etc.

Share this post


Link to post
Share on other sites
One idea would be to decouple some of the behaviour from this one value by adding more subSkills.

Please!

The AI at the moment don't seem to make better decisions as their skill increases, they just become insanely accurate shots. Those ~200m headshots, while standing really break the immersion, while the AI shooting at where they think you are, or where you last were really boosts immersion.

I'm very pleased to hear this is getting some attention.

Share this post


Link to post
Share on other sites

Anything a player can do to influence mission settings should allow the mission maker to override them as they can cause issues or unwanted results.

Edited by ProGamer

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

×