Jump to content
Wiki

What is your AI settings?

Recommended Posts

What is your AI settings?

 

Can't figure out how to have a balance game:

I'm facing all-knowing terminators and on the other hand, I always have a dumb medic...

 

For example, mission 7 in Apex:

Beginning on a high ground, at night, with suppressors.

the enemy is Syndikat guys:

they just know where I am located whereas I have suppressor / no muzzleflash and they have no NVG.

 

this all mighty AI is really game breaking.

 

What are your settings to have a balanced experience?

  • Like 2

Share this post


Link to post
Share on other sites

Had 4-5 presets for AI, ranging from untrained over rookie/guerilla to elite, while not being too accurate and give nice prolonged firefights that could drag on and lead to pretty tense situations.

Since the "AI refactoring" back in august 2017 I couldn't really reach those values even a conversion table from old to new was provided, maybe there was more involved since the difficulty AI sliders are also somewhat broken.


These were the (no longer working) values I was using, maybe you can go from there:
 

Spoiler



if ("FRENCH" in _this) exitwith {
_unit setskill 0.15;
_unit setUnitAbility 0.15;
_unit setskill ["aimingAccuracy", random [0.06,0.08,0.1]];
_unit setskill ["aimingShake", random [0.6,0.8,1]];
_unit setskill ["aimingSpeed", random [0.3,0.5,0.7]];
_unit setskill ["spotDistance", random [0.5,0.7,0.9]];
_unit setskill ["spotTime",random [0.6,0.8,1]];
_unit setskill ["commanding",random [0.8,1,1.2]];
_unit setskill ["courage",random [0.4,0.6,0.8]];
_unit setskill ["general", random [0.4,0.6,0.8]];
_unit setskill ["reloadSpeed",random [0.01,0.1,0.3]];
_unit setUnitRecoilCoefficient random [4,5,6];
true
};

if ("ROOKIE" in _this) exitwith {
_unit setskill 0.3;
_unit setUnitAbility 0.3;
_unit setskill ["aimingAccuracy", random [0.11,0.15,0.2]];
_unit setskill ["aimingShake", random [0.6,0.8,1]];
_unit setskill ["aimingSpeed", random [0.5,0.7,0.9]];
_unit setskill ["spotDistance", random [0.3,0.5,0.7]];
_unit setskill ["spotTime", random [0.5,0.7,0.9]];
_unit setskill ["commanding", random [0.8,1,1.2]];
_unit setskill ["courage", random [0.4,0.6,0.8]];
_unit setskill ["general", random [0.1,0.3,0.5]];
_unit setskill ["reloadSpeed", random [0.01,0.1,0.3]];
_unit setUnitRecoilCoefficient random [2,3,4];
true
};
if ("GUERILLA" in _this) exitwith {
_unit setskill 0.3;
_unit setUnitAbility 0.3;
_unit setskill ["aimingAccuracy", random [0.1,0.2,0.3]];
_unit setskill ["aimingShake", random [0.6,0.8,1]];
_unit setskill ["aimingSpeed", random [0.5,0.7,0.9]];
_unit setskill ["spotDistance", random [0.3,0.5,0.7]];
_unit setskill ["spotTime", random [0.5,0.7,0.9]];
_unit setskill ["commanding", random [0.8,1,1.2]];
_unit setskill ["courage", random [0.4,0.6,0.8]];
_unit setskill ["general", random [0.1,0.3,0.5]];
_unit setskill ["reloadSpeed", random [0.01,0.1,0.3]];
_unit setUnitRecoilCoefficient random [2,3,4];
true
};

if ("TRAINED" in _this) exitwith {
_unit setskill 0.3;
_unit setUnitAbility 0.6;
_unit setskill ["aimingAccuracy", random [0.2,0.35,0.5]];
_unit setskill ["aimingShake", random [0.6,0.8,1]];
_unit setskill ["aimingSpeed", random [0.5,0.7,0.9]];
_unit setskill ["spotDistance", random [0.8,1,1.2]];
_unit setskill ["spotTime", random [0.8,1,1.2]];
_unit setskill ["commanding", random [0.8,1,1.2]];
_unit setskill ["courage", random [0.8,1,1.2]];
_unit setskill ["general", random [0.8,1,1.2]];
_unit setskill ["reloadSpeed", random [0.1,0.3,0.5]];
_unit setUnitRecoilCoefficient random [1,1.7,2];
true
};
if ("ELITE" in _this) exitwith {
_unit setskill 0.3;
_unit setUnitAbility 0.3;
_unit setskill ["aimingAccuracy", random [0.5,0.6,0.62]];
_unit setskill ["aimingShake", random [0.6,0.8,1]];
_unit setskill ["aimingSpeed", random [0.5,0.7,0.9]];
_unit setskill ["spotDistance", random [0.3,0.5,0.7]];
_unit setskill ["spotTime", random [0.5,0.7,0.9]];
_unit setskill ["commanding", random [0.8,1,1.2]];
_unit setskill ["courage", random [0.4,0.6,0.8]];
_unit setskill ["general", random [0.1,0.3,0.5]];
_unit setskill ["reloadSpeed", random [0.01,0.1,0.3]];
_unit setUnitRecoilCoefficient random [0.5,0.55,0.6];
true
};


 

Cheers

  • Like 2

Share this post


Link to post
Share on other sites

Currently playing on top of a script by Fluit and Bl1p (random AI skill). 

 

Grumpy would you have the converted values as well or did you put them into the trashcan? BTW love the names you gave to your troop quality levels :don9:

 

I guess one answer could be to leave aiming accuracy (not too high, results in broken experience) but adjust reaction times etc.

Share this post


Link to post
Share on other sites
3 hours ago, Varis said:

Currently playing on top of a script by Fluit and Bl1p (random AI skill). 

 

Grumpy would you have the converted values as well or did you put them into the trashcan? BTW love the names you gave to your troop quality levels :don9:

 

I guess one answer could be to leave aiming accuracy (not too high, results in broken experience) but adjust reaction times etc.

I don't have any converted values, just goofed around with it a bit after the change, couldn't get any results that are close to before the change.

A setUnitRecoilCoefficient above +2 also can force the unit to reacquire aim.

 

Cheers

Share this post


Link to post
Share on other sites
11 hours ago, Varis said:

Currently playing on top of a script by Fluit and Bl1p (random AI skill). 

 

Hello Varis !

Can you add a link for this ?

Share this post


Link to post
Share on other sites
2 hours ago, Varis said:

I could not find a link to the original script

 

Thank you very much Varis !

I found the same searching this , but i wanted so else to ask you if you know about the original script.

 

Thanks !

Share this post


Link to post
Share on other sites

I don't care much about AI any more. I tend to make them dumb. I created stupid script which simply sets their skills randomly inside a defined range. 

Share this post


Link to post
Share on other sites

Dont forget about my list fellas if your looking for scripts, codes, posts, and mods to help sort out issues or set them up to how you want:

Also a little code i use in missions i build:

 

Create a init.sqf

inside it copy n paste the following:

[] spawn
    {
    while {true} do
        {
        sleep 10;

            {
            _x setSkill ["aimingspeed", 0.1];
            _x setSkill ["spotdistance", 0.2];
            _x setSkill ["aimingaccuracy", 0.2];
            _x setSkill ["aimingshake", 0.1];
            _x setSkill ["spottime", 0.1];
            _x setSkill ["spotdistance", 0.5];
            _x setSkill ["commanding", 0.2];
            _x setSkill ["general", 0.5];
            }
        forEach allUnits;
        }
    };

and adjust the values to where you see fit, the lower the numbers the dumber they get, lol

This works for units already on the map, and spawned in units as well.

 

The current set values will give you a fighting chance, just dont get to cocky as they are somewhat still accurate, just not every bullet they

shoot will land, i'd say  5 out of 10 will, consider the distance you are from them too.

Heres an older vid i recorded, its just a gameplay demo of my mod but that mission im in is using this code:

 

  • Like 2

Share this post


Link to post
Share on other sites
2 hours ago, Gunter Severloh said:

Dont forget about my list fellas if your looking for scripts, codes, posts, and mods to help sort out issues or set them up to how you want:

 

I'd put a "sleep 0.05;" into the foreach loop just to be on the safe side (possibly lag when many units?) because you apply skill on all units every time.

Also good practise when spawning units. Don't know if it presents lags at all. OTOH, ArmA people are used to detect unit spawns with help of lag :D

 

 

The below script sets random skills (per side) and remembers units in arrays, i.e. can apply only once, may not be 100% perfect code (e.g., could use "params") and change of skill on spawn EH would be better, but hey.

It may also be an idea to create seeded randomness per unit seed. Should be easy to get a number from the object name and with seeded randomness you can get the same pseudo randomness per unit.

EDIT: The rotten forum software a) ate preceding blank spaces and b) added empty lines.

I put the code here: https://pastebin.com/itgrjwmM

  • Like 1

Share this post


Link to post
Share on other sites
2 hours ago, Gunter Severloh said:

Dont forget about my list fellas if your looking for scripts, codes, posts, and mods to help sort out issues or set them up to how you want:

Also a little code i use in missions i build:

 

Create a init.sqf

inside it copy n paste the following:


[] spawn
    {
    while {true} do
        {
        sleep 10;

            {
            _x setSkill ["aimingspeed", 0.1];
            _x setSkill ["spotdistance", 0.2];
            _x setSkill ["aimingaccuracy", 0.2];
            _x setSkill ["aimingshake", 0.1];
            _x setSkill ["spottime", 0.1];
            _x setSkill ["spotdistance", 0.5];
            _x setSkill ["commanding", 0.2];
            _x setSkill ["general", 0.5];
            }
        forEach allUnits;
        }
    };

and adjust the values to where you see fit, the lower the numbers the dumber they get, lol

This works for units already on the map, and spawned in units as well.

 

The current set values will give you a fighting chance, just dont get to cocky as they are somewhat still accurate, just not every bullet they

shoot will land, i'd say  5 out of 10 will, consider the distance you are from them too.

Heres an older vid i recorded, its just a gameplay demo of my mod but that mission im in is using this code:

 

 

How would you turn this into a lobby parameter and have 1-5 settings to choose from for MP, Dedicated, etc?

  • Like 1

Share this post


Link to post
Share on other sites
6 minutes ago, tortuosit said:

you apply skill on all units every time

 

Maybe it would be a better idea to set a variable and check that instead.

 

Share this post


Link to post
Share on other sites
11 minutes ago, Jnr4817 said:

How would you turn this into a lobby parameter and have 1-5 settings to choose from for MP, Dedicated, etc?

 

Once i ll have time i will add my example here as well !

Share this post


Link to post
Share on other sites

yes, but that only works on missions you make.

 

what is your AI settings for official missions?

Share this post


Link to post
Share on other sites
23 hours ago, Jnr4817 said:

How would you turn this into a lobby parameter and have 1-5 settings to choose from for MP, Dedicated, etc?

 

Here is my example:

Spoiler

G7ikLQVjRDGjczJbQ1_t4g.png

 

  • Like 1

Share this post


Link to post
Share on other sites

I have a somewhat related question that keeps buggering me since the Arma 2 days -- how do you actually set the the AI skill?

 

The skills you change in game's difficulty are not the skills you actually get because each unit has this weird skill slider which somehow affects the final skill. To make matters worse, that slider doesn't seem to be a simple multiplier for the AI skill because you can set AI skill to 1, leave the slider at 0.5 and still get something like 0.74915164.

 

Is there any way to set the damn thing to a concrete and constant value once and for all?

  • Like 1

Share this post


Link to post
Share on other sites
52 minutes ago, semiconductor said:

Is there any way to set the damn thing to a concrete and constant value once and for all?

 

Hello there semiconductor !

 

I will just tell you to check my script.

( + There is also a random option. )

Share this post


Link to post
Share on other sites
1 hour ago, semiconductor said:

I have a somewhat related question that keeps buggering me since the Arma 2 days -- how do you actually set the the AI skill?

 

The skills you change in game's difficulty are not the skills you actually get because each unit has this weird skill slider which somehow affects the final skill. To make matters worse, that slider doesn't seem to be a simple multiplier for the AI skill because you can set AI skill to 1, leave the slider at 0.5 and still get something like 0.74915164.

 

Is there any way to set the damn thing to a concrete and constant value once and for all?

 

I've been wondering the exact same thing for probably just as long. I remember during Arma 2, setting the unit skill in the editor above 50% would turn them into terminator death machines, I assume the same happens with Arma 3, so I usually leave the average unit skill around 40-50%, depending on rank, infantry or insurgents, etc etc. I'm not too sure how much ACTUAL effect this has, or if the skill is too low, too high. 

Share this post


Link to post
Share on other sites

*crickets*

 

Well, here's the problem with the AI - you can't balance it because nobody has any clue what the skill would actually be and how it would affect bots' behaviour.

 

Most of the time I just tune them to some random level that intuitively seems acceptable and call it a day. The more you try to tweak the AI, the more it will start to deviate from desired behaviour.

  • Like 2

Share this post


Link to post
Share on other sites

I give them high dispersion weapons. If you really want you could add a trigger that doesn't enable them to engage until your parameters are met

Share this post


Link to post
Share on other sites
22 hours ago, warlord554 said:

I give them high dispersion weapons.

Interesting, what weapons are these?

 

22 hours ago, warlord554 said:

If you really want you could add a trigger that doesn't enable them to engage until your parameters are met

Yes but it's too much hassle for something that should be a trivial thing.

Share this post


Link to post
Share on other sites

Yeah I know brother AI needs alot of work. Workarounds like those is what I've resorted too over the years lol

 

Weapon dispersion is defined in the weapon config (whatever weapons you give to enemy). Just adjust and pack config as pbo. This method simulates lower skilled bad guys pretty good. They aren't all sharpshooters

  • Like 2

Share this post


Link to post
Share on other sites
On 9/15/2018 at 7:34 PM, Wiki said:

yes, but that only works on missions you make.

 

what is your AI settings for official missions?

 

I turned the campaign and all showcases couple of times before "AI refactoring" grumpy mentioned and I have it by now with first shot, headshot on 300m.

So, now that global skill slider affects AI a lot more linearly I'm running these, forgiving values.

class CustomAILevel
{
	skillAI=0.75;
	precisionAI=0.25;
};

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

×