Jump to content
Sign in to follow this  
mr_centipede

A discussion about cfgAISkill

Recommended Posts

class CfgPatches {
class AI_Dispersion {
	units[] = {};
	weapons[] = {};
	requiredVersion = 1.01;
	requiredAddons[] = {};
};
};

class CfgAISkill {
aimingAccuracy[] = {0, 0, 1, 0.5};
aimingShake[] = {0, 0, 1, 0.2};
aimingSpeed[] = {0, 0, 1, 1};
courage[] = {0, 0, 1, 0.25};
commanding[] = {0, 0, 1, 1};
endurance[] = {0, 0, 1, 0.7};
general[] = {0, 0, 1, 1};
reloadSpeed[] = {0, 0, 1, 1};
spotDistance[] = {0, 1, 1, 1};
spotTime[] = {0, 0, 1, 1};
};

A little clarification here:

aiskil[] = {min skill, min skill value, max skill, max skill value}

The AI_Dispersion mod I downloaded from thunderbird84's. I just tweaked around and these are the values I'm kinda comfortable with.

I would like to highlight you to the courage values. It seems, it' doesnt actually relate to morale, but rather aggressiveness level. With the value I posted above, the AI seems less reluctant to charge toward the enemy and stay in cover more, and return fire. sometimes it does seems a bit timid though, as they would stay mostly in cover and dont return fire (because the cover is behind a reverse slope, so no LOS to the target..

I would like to hear you oppinions on the various skills and values

Edited by Mr_Centipede

Share this post


Link to post
Share on other sites

Related: setSkill_array

Bit of docu from binarize commented configs

class CfgAISkill

{

// source skill value, target skill value, ...

/// precision related skills

aimingAccuracy[]=

{

0,0, 1,1

};

aimingShake[]=

{

0,0, 1,1

};

/// skill related skills

aimingSpeed[]=

{

0,0.5, 1,1

};

endurance[]=

{

0,0, 1,1

};

spotDistance[]=

{

0,0.2, 1,0.4

};

spotTime[]=

{

0,0, 1,0.7

};

courage[]=

{

0,0, 1,1

};

reloadSpeed[]=

{

0,0, 1,1

};

commanding[]=

{

0,0, 1,1

};

general[]=

{

0,0, 1,1

};

};

Share this post


Link to post
Share on other sites

Interesting findings on "Courage" values.

I think that capping "aimingShake" to a very low value may be a bad idea.

"AimingShake" seems affecting more the ability to take fire than the firing accuracy.

Units with low "aimingShake" skill tend not to open fire promptly,because they struggle to aim on target.

Share this post


Link to post
Share on other sites

Maybe i misunderstand you.

if aiskil[] = {min skill, min skill value, max skill, max skill value} is representative for aimingAccuracy[] = {0, 0, 1, 0.5} and so on, then it means aiskil[] = {civilian, guerilla, west, east} (I'm 99% sure).

Share this post


Link to post
Share on other sites
Maybe i misunderstand you.

if aiskil[] = {min skill, min skill value, max skill, max skill value} is representative for aimingAccuracy[] = {0, 0, 1, 0.5} and so on, then it means aiskil[] = {civilian, guerilla, west, east} (I'm 99% sure).

really? now I am not sure of myself... I thought it represent the earlier one, so that if a person with min skill of 0, then he will use the min skill value and the system will interpolate the value to highest value with coresponding skill level... hmm. so far I've been testing and only change the max value, but it affected both east and west units.. never tried with independents though...

@fabrizio_T

I think that capping "aimingShake" to a very low value may be a bad idea.

"AimingShake" seems affecting more the ability to take fire than the firing accuracy.

Units with low "aimingShake" skill tend not to open fire promptly,because they struggle to aim on target.

I think maybe that's not quite right. Maybe you were referring to aimingSpeed?

Edited by Mr_Centipede

Share this post


Link to post
Share on other sites

I always assumed that aimingSpeed was the lag between where you are and where the enemy AI is aiming. So if you are moving very quickly, then an AI with a high aimingSpeed would be able to keep the gun on target better. An AI with a low aimingSpeed would still blast away but just be shooting where you just were. In this case, the low aimingSpeed AI is having trouble "keeping up" with the target with respect to aim.

One thing I've not seen in Arma2 yet is the ability of the AI to lead a target. They seemed to have much less problem with at least attempting this in Arma1.

Case-in-point: As part of testing for the dispersion mod I'm developing, I temporarily set dispersion on high rate of fire weapons to zero. I set up a scenario where an AI unit has plenty of ammo and is trying to kill me. On my motorcycle, I ride at a reasonably high speed from left to right across the AI's span of vision. He blasts away and I see the tracers flying, but all rounds consistently zip past behind me and the AI never seems to adjust and compensate for the fact he's shooting at where I WAS. He simply appears unable to lead his fire and get any closer to hitting me.

Now once I slow down his rounds catch up and finally kill me. My theory is that in this case the AI's aimingSpeed value is too low to hit me at the higher speed.

I intend to run additional testing to sort this out. But if the above statement is indeed correct, how then do we adjust the AI's ability to lead his fire in front to actually attempt hitting a moving target?!?

Share this post


Link to post
Share on other sites
really? now I am not sure of myself... I thought it represent the earlier one, so that if a person with min skill of 0, then he will use the min skill value and the system will interpolate the value to highest value with coresponding skill level... hmm. so far I've been testing and only change the max value, but it affected both east and west units.. never tried with independents though...

@fabrizio_T

I think maybe that's not quite right. Maybe you were referring to aimingSpeed?

No, i am really referring on "aimingShake".

I agree with you that's pretty strange, but that's it, based to my (limited) experience.

Try giving a unit a very low "aimingShake" and you'll see it will become quite passive at firing/returning fire (due to aiming struggle) as a major side-effect.

It seems that AI in Arma2 is not capable to open fire without a clear "lock" on target for at least a split second.

The more the "shake", the more the time needed to achieve that "lock".

About "aimingSpeed": i tried tweaking that value for infantry units, but i was not able to see any appreciable effect on their aiming capabilities.

---------- Post added at 07:18 AM ---------- Previous post was at 07:14 AM ----------

Maybe i misunderstand you.

if aiskil[] = {min skill, min skill value, max skill, max skill value} is representative for aimingAccuracy[] = {0, 0, 1, 0.5} and so on, then it means aiskil[] = {civilian, guerilla, west, east} (I'm 99% sure).

To my knowledge:

aimingAccuracy[] = {0, 0, 1, 0.5}

means:

- units with minimum (0) skill have ZERO accuracy

- units with maxed (1) skill have 0.5 accuracy

- accuracy is linearly interpolated between minimum and maxed skill

So Mr_Centipede is right to me.

AiSkill[] has nothing to do with "side" to me, it's a "per unit" based setting.

Edited by fabrizio_T

Share this post


Link to post
Share on other sites

I test with aimingSpeed very low (0), the AI has trouble 'recognizing' me as a threat and take his time to shoot.

About the aimingShake, I test aimingAccuracy with 1, their firing rate is noticibly slower (aimingShake is constant), but when they shoot, where they aim, will most probably hit. but with aiming accuracy to low, it become less fun, human player can run and gun with impunity. but if you're watching AI duking it out, its fun to watch and to hear all the gunfire... the engagement is also longer. Just not fun playing... so I guess I can balance it with aimingAccuracy and aimingShake... hence the value, and I dont notice less firing rate from the AI. and they can also be deadly, as I'm myself is a bad shot...

Share this post


Link to post
Share on other sites
(I'm 99% sure).

After some new tests im 100% sure. I'm 100% sure {civilian, guerilla, west, east} is wrong.

If testet with one for gaming senseless, but for testing usefull setting: Everything to {0, 1, 0, 0}. AI with skill from 1 down to 0.00001 does nothing. AI with skill 0 is shoting instantly.

Share this post


Link to post
Share on other sites

Another findings I made just now. It seems for the AI to engange targets further, it doesnt entirely dependent on spotDistance and spotTime values. Commanding values contribute a little

Share this post


Link to post
Share on other sites

spotTime[] = {0, 0.1, 1, 0.7};

sorry for the digging up an oldish thread. but how does the 2nd and 4th vlaues above relate to time to spot? i would think lower values would mean less spotting time as 0.1 seconds is less than 0.7 seconds?

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  

×