Jump to content

Recommended Posts

AI suppression and AI self-learning, the result at the end of the video 😀 I would like to see a similar dependence in the game, when AI can get influence from the player’s actions and get his degree of behavior in a wide range of skills.

 

  • Like 2
  • Haha 3

Share this post


Link to post
Share on other sites
6 hours ago, Alwarren said:

In static weapons, units are only getting suppressed IF the bullets hit nearby, while normal units get suppressed when the bullets fly by close enough OR they hit the ground close by.

When I read this I had to try. My testing can confirms it.  Vehicle mounted units gain suppression if a bullet strikes a ground surface (including buildings) near them.  There is no difference between static weapons, open topped vehicles or armoured vehicles in this regard. In other words: It is possible to suppress the crew of a tank by hitting the ground next to the tank.  Hitting the tank itself will have no effect. 

 

The extent to which suppression affects crew accuracy or decision making processes is unknown to me. 

 

-k 

Share this post


Link to post
Share on other sites
8 hours ago, lex__1 said:

AI suppression and AI self-learning, the result at the end of the video 😀 I would like to see a similar dependence in the game, when AI can get influence from the player’s actions and get his degree of behavior in a wide range of skills.

 

 

 Ive seen that movie. Doesnt end well for humans..

Share this post


Link to post
Share on other sites
8 hours ago, lex__1 said:

AI suppression and AI self-learning, the result at the end of the video 😀 I would like to see a similar dependence in the game, when AI can get influence from the player’s actions and get his degree of behavior in a wide range of skills.

 

Damn he is cute!!! :icon2:

 

Yeah really impressive how A.I. technology evolved during the last decade!

This really is insane! Almost looks like fake. :icon1:

 

Share this post


Link to post
Share on other sites
On 6/15/2019 at 1:16 PM, nkenny said:

Expanding Suppression

 

I have been testing the effects of suppression on the AI and found the results to be impressive. Suppressing AI adds depth to the simulation and greatly enhances the firefight. Player survivability is vastly increased by the proper application of firepower. My experiments have used the getSuppression and setSuppression commands. Conclusions and numbers are explored HERE. The shortest description is that successfully suppressing AI by even a small amount reduces killing power considerably. 

 

A reoccurring shortcoming is that Bohemia has done a poor job of providing feedback that the AI is in a suppressed or panicked state.  There are no indicators, animation, audio, or visualization to indicate a soldier is in peril. No wonder players are ignorant of the feature!  With this in mind, I have a few small suggestions to enhance and expand the suppression feature. 

 

1. Add a Suppression Eventhandler,  this will allow mission designers an easy way to attach special scripted behavior to the condition. 

 

2. Track Suppression for players. One limitation of suppression values is that it is not tracked for players. Given that it seems possible to do so for all AI, without any particular loss of performance, additionally tracking it for players would open an easy and performance friendly way for modders and mission designers to modify player suppression effects or other scripted behaviors. 

 

3. Add a background suppression level or support for radiating suppression values . Possibly the biggest suggestion I will be making. This suggestion also marks the turn to more speculative features. Active armoured vehicles are dangerous. Being in close proximity to such a vehicle should set a default suppression level of some figure (I would suggest 0.25; roughly a close burst of fire).   This allows for better modelling of the shock-and-awe factor of tracked vehicle assaults. 

 

4. Tweak suppression regeneration. Currently suppression values regenerate very quickly. This limits their utility as a means of modeling the effect of combat stress. Increasing this time slightly or enable tweaking it, would help fine-tune the suppression mechanic as a whole. Once I set up my Arma3 rig again I will provide some numbers in this regards. Loss of suppression state is currently very rapid. 

 

There are bigger more fundamental issues in regards to the lack of visualization-- player feedback-- which I wish that Bohemia would explore. However in Arma3's current old man state, it is unrealistic to propose any major overhauls or feature introductions.  For future projects:  introducing  animations, sounds, distinct behavior, or other indicators-- in short any feedback at all is essential. 

 

-- 

 

To give an example of how I have leveraged suppression and eventhandlers: By attaching a 'GetOut' eventhandler to vehicle crew and with a triggered condition on damaged or immobilized vehicles, and setting AI suppression to 1 (100%)-- I have created a simple, performance friendly fix, to the laser-accurate-dismounting-from-burning-wreck crew syndrome. 

 

 

-k 

 

 

Thanks for the information dude, I learned a lot about the effect of suppression on AI.

I also looked at your links but did not find the answer to my old questions. Maybe you know the answer to it?

 

I'm wondering if the presence of sighting modules on the primary weapon affects the AI-accuracy and range of attack?

So what is the accuracy of AI without sights (iron sight)? How much worse or no difference?

 

 If you know something about this, then please give us something similar to what you created to suppress.

Any graph or list with percentage influence. This would be very useful information. Thank you!

Share this post


Link to post
Share on other sites

@mickeymen 

Sure, I can do that. It is relatively easy to set up with lane system. As each weapon is individually configured, I suspect that optics will affect the performance characteristics of each weapon in a unique manner.

 

-k 

Share this post


Link to post
Share on other sites

@nkenny

You may have found it yourself already - you can tweak the behavior via
configfile >> "CfgBrains" >> "DefaultSoldierBrain" >> "Components" >> "AIBrainSuppressionComponent"

maxSuppression 			= 1.0;
worstDecreaseTime 		= 10.0; // in seconds for 0.0 skill
bestDecreaseTime 		= 1.0; // in seconds for 1.0 skill
SuppressionRange 		= 20.0;
CauseFireWeight 		= 0.5;
CauseHitWeight 			= 0.5;
CauseExplosionWeight 		= 0.5;
CauseBulletCloseWeight 		= 0.5;

 

and

configfile >> "CfgBrains" >> "DefaultSoldierBrain" >> "Components" >> "AIBrainAimingErrorComponent"

Spoiler

Dynamic Calculated Error (DCE) is

  • persistent aiming error, working in real time, all the time, for all AI soldiers
  • error is decreased or increased by different factors
  • error drops down in time, speed of decreasing is dependent on AI skill (Aiming speed and Aiming Accuracy)
  • error is increased by moving, rotating, loosing the target
  • error is changing the "final aiming position", therefore it's independent from other AI features like shaking hands, fatigue, aiming and leading etc
  • error can be increased or decreased by shooting, depending on audio/visual properties of the weapon, the more silent / easy to handle weapon is, the more shooting decreases the error
  • maximum aiming error is 15 degrees (in radians maxAngularError = 0.261799388f), considering whole cone
  • error direction is randomly regenerated every 0..1 second
  • new direction of error is created in upper half of circle around the target (to avoid extensive shooting into the ground)


Component is fed by:

  • entity damage
  • soldier fatigue
  • loosing target
  • shooting
  • rotating
  • being wounded
  • reloading
  • suppression
     

In the AIDynamicError Diag mode, you can see two lines for each AI soldier. Green one shows perfect aiming direction to hit his target. Red one shows current aiming position, changed by dynamic aiming error as above

maxAngularError			= 0.130899694		// half of the error cone in radians
maxAngularErrorTurrets		= 0.087266462		// half of the error cone in radians, used for turrets
worstDecreaseTime		= 2.0			// how long (in seconds) it should take 0.0 skilled soldier to stabilize the aim completely
bestDecreaseTime		= 0.2			// how long (in seconds) it should take 1.0 skilled soldier to stabilize the aim completely
lostTargetTimeMin		= 0.5			// how soon after loosing sight of target, error starts to raise
lostTargetTimeMax		= 3.0			// how long error is raising after loosing sight of target
shootingInfluence		= 0.4			// importance of shooting in algorithm, multiplier
movingInfluence			= 1.0			// importance of moving in algorithm, multiplier
turningInfluence		= 1.0			// importance of turning in algorithm, multiplier
damageCoef			= 10.0			// importance of damage of entity, multiplier
fatigueCoef			= 10.0			// importance of fatigue of entity, multiplier
suppressionCoef			= 0.5			// importance of suppression value, multiplier
lostTargetCoef			= 3.0			// importance of loosing target event, multiplier



Relevant properties in the cfgAmmo config are


All kudos go to @klamacz 😉

 

  • Like 5
  • Thanks 4

Share this post


Link to post
Share on other sites

As for the lack of feedback that the AI is suppressed - I fully agree. When the suppression was being made we already knew it wont be possible to communicate it well to the player due to our limitations back then when it comes to anim. manpower, the anim. system itself and code complexity of AI decision making. Wasn't the only time we went for "at least something" over "nothing". Whether that's generally a good bussiness idea I can't judge 😄

  • Like 7

Share this post


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

I'm wondering if the presence of sighting modules on the primary weapon affects the AI-accuracy and range of attack?

So what is the accuracy of AI without sights (iron sight)? How much worse or no difference?

It can affect the "old innacuracy system" which only increases weapon dispersion for the AI. (Unlike DCE which changes actual AI aiming)

To tune that you'd use aiDispersionCoefX/Y of the weapon and define different dispersion for fire modes depending on their requiredOpticType (If present, such firemode would be available to AI only if the weapon is equipped with an optic of a corresponding opticType. If not present, set to -1 as default, such firemode would be available to AI for all optics (even none)).

This approach has not really been utilized in vanilla. It may still happen, without promises.

  • Thanks 1

Share this post


Link to post
Share on other sites

I've explored the effect here. I speculate that the fire modes made available by optics extend the range which the AI can attack.  Within 400 meters the effect of optics is negligible. 

 

-k 

  • Thanks 1

Share this post


Link to post
Share on other sites
6 hours ago, oukej said:

configfile >> "CfgBrains" >> "DefaultSoldierBrain" >> "Components" >> "AIBrainSuppressionComponent"

My vanilla configFile entry for that path has no values or subkeys.  Should I expect values to be listed, or are the vanilla brains using the internal defaults of the engine?  And are the values you show the engine defaults?

Only the AIBrainCountermeasuresComponent entry has any values.  maxReactionTime, etc.

Share this post


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

 are the values you show the engine defaults?

They are for AIBrainSuppressionComponent. Can't check AIBrainAimingErrorComponent atm, the defaults might be different there.
If you define them in the config the engine will take those.

Share this post


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

As for the lack of feedback that the AI is suppressed - I fully agree. When the suppression was being made we already knew it wont be possible to communicate it well to the player due to our limitations back then when it comes to anim. manpower, the anim. system itself and code complexity of AI decision making. Wasn't the only time we went for "at least something" over "nothing". Whether that's generally a good bussiness idea I can't judge 😄

 

Obviously we here would like more ie. Accompanying animations etc but we also definitely  appreciate that some of you guys there continue and improve on these things even if buried under tons of undocumented  barely understood code - surely killzone kid will wiki it at some point o.O

 

 

 

Share this post


Link to post
Share on other sites
On 7/16/2019 at 4:18 PM, oukej said:

If you define them in the config the engine will take those.

I'm not permitted to use mods on this server, and I'm unaware of any way for a mission PBO to modify config entries.  If there's a way, I'd love to hear about it.

Share this post


Link to post
Share on other sites

@oukej

Thank you for the detailed description.  I have been experimenting with various values, but am left with a question.  Does suppression level affect more than AI accuracy? It seems to me like it also pushes the AI to move (or avoid) a position where suppression is received. If that is the case: is this behaviour accessible somewhere? 

--- 

For people interested in suppression values, I have made a small steam workshop mod which alters minimum suppression time from 1 to 5 seconds and maximum from 10 to 30 seconds.  There are some interesting effects, but the nature and complexity of fire fights in ARMA make it hard to quantify. The effect can be explored in any fire fight, but *shameless* here is a tiny mission with some debug information. 

 

If you are like me, and of the 'lets set up a firefight in the editor'-persuasion you can easily paste in the following code for some more (limited) feedback: 
 

Spoiler

// INIT
var_shotsW = 0; 
var_shotsE = 0; 

// EH 
{
  if (side group _x == EAST) then 
    {
      _x addEventHandler ["Fired",{var_shotsE = var_shotsE + 1;}]; 
    } else {
     _x addEventHandler ["Fired",{var_shotsW = var_shotsW + 1;}]; 
    }; 
  true 
} count allUnits; 

// ready 
sleep 2; 

// Check suppression 
while {true} do 
  {
  
  // check shots 
  _txt = format ["SHOTS FIRED:<br/>WEST %1<br/>EAST %2<br/>TOTAL %3",var_shotsW,var_shotsE,var_shotsW + var_shotsE]; 
  
  // define
  _txt2 = format ["<br/><br/>SUPPRESSION:<br/>(EAST - count %1)<br/>",count (allUnits select {side _x == EAST })];
  _txt = (_txt + _txt2);
  
  // check it!
  {
  _msg = format ["- %1 suppression %2<br/>",(getText (configFile >> "CfgVehicles" >> typeOf _x >> "displayName")),(getSuppression _x) toFixed 2];
  _txt = (_txt + _msg);
  true  
  } count (allUnits select {side _x == EAST && {getSuppression _x > 0}}); 
  
  // check blue
  _txt2 = format ["<br/><br/>SUPPRESSION:<br/>(WEST - count %1)<br/>",count (allUnits select {side _x == WEST })]; 
  _txt = (_txt + _txt2);
  
  // check it!
  {
  _msg = format ["- %1 suppression %2<br/>",(getText (configFile >> "CfgVehicles" >> typeOf _x >> "displayName")),(getSuppression _x) toFixed 2];
  _txt = (_txt + _msg);
  true  
  } count (allUnits select {side _x == WEST && {getSuppression _x > 0}}); 
   
  //  wait
  sleep 0.5; 
  
  // display!
  hintSilent parsetext _txt;
  
  }; 

 


Cheers, 
nkenny 

  • Like 1
  • Thanks 2

Share this post


Link to post
Share on other sites
On 7/19/2019 at 12:40 AM, nkenny said:

It seems to me like it also pushes the AI to move (or avoid) a position where suppression is received. If that is the case: is this behaviour accessible somewhere?

You're correct about the behavior and sadly it's not been exposed. It's an older mechanic (improved during A3 post release development) that makes the AI not pick a cover position in the enemy cone of fire (a kind of a beaten zone) or even just the enemy's possible fire sectors.

  • Like 1
  • Thanks 3

Share this post


Link to post
Share on other sites

Last year I did not play ArmA much, but now I have noticed few strange things about AI. 

1. Sometimes AI stops moving for a few tens of seconds (not in combat situation) - applies mainly to moments when there are multiple objects around, e.g. in some farm or factory. 
2.  Now it seems that AI is moving noticeably slower in combat situations. Is it normal behavior? It reminds me a bit times of ArmA 2.
3. And finally, AI gave up recognition moving speeds of the waypoints - https://feedback.bistudio.com/T141498 - I suppouse that this is not correct behavior.

  • Thanks 2

Share this post


Link to post
Share on other sites
On 7/24/2019 at 3:07 PM, Bobrus said:

And finally, AI gave up recognition moving speeds of the waypoints - https://feedback.bistudio.com/T141498 - I suppouse that this is not correct behavior.

 

Perhaps you `re right, I noticed it too!

 

Unfortunately, AI does not recognize other settings inside Waypoint either.

 

I have already reported this for two years, but it looks like it doesn’t bother anyone, I am very saddened by this fact :(

 

I will try say it again - The AI in Arma3 will ignore the settings completion radius inside the any waypoint and this is a huge problem!

The completion radius will always work only for the player, while the AI will ignore this setting! This not normal. There can be no reason why a player can have a waypoint completion, and the AI will ignore this waypoint setting! Before, I saw that it worked fine in Arma3, but in one of the updates it was broken - this is 100%! As a result, now the player cannot complete the necessary AI  waypoints quickly (without heavy scripting).This is a problem for many players who do not speak the programming language.

 

Other settings which have been noticed by me inside/outside the waypoint that the AI will ignore:

 

a) Careless behavior will not take speed/stance settings into account.  Any careless AI will anytime and anywhere  go only slowly! As a result, the player cannot create a cowardly (running under enemy fire AI)! This is also a huge omission.

 

b) DISMISS waypoint cannot be skipped by trigger to the other waypoint.

 

  • Like 4
  • Sad 1

Share this post


Link to post
Share on other sites
On 7/25/2019 at 7:14 AM, mickeymen said:

 

Perhaps you `re right, I noticed it too!

 

Unfortunately, AI does not recognize other settings inside Waypoint either.

 

I have already reported this for two years, but it looks like it doesn’t bother anyone, I am very saddened by this fact 😞

 

I will try say it again - The AI in Arma3 will ignore the settings completion radius inside the any waypoint and this is a huge problem!

The completion radius will always work only for the player, while the AI will ignore this setting! This not normal. There can be no reason why a player can have a waypoint completion, and the AI will ignore this waypoint setting! Before, I saw that it worked fine in Arma3, but in one of the updates it was broken - this is 100%! As a result, now the player cannot complete the necessary AI  waypoints quickly (without heavy scripting).This is a problem for many players who do not speak the programming language.

 

Other settings which have been noticed by me inside/outside the waypoint that the AI will ignore:

 

a) Careless behavior will not take speed/stance settings into account.  Any careless AI will anytime and anywhere  go only slowly! As a result, the player cannot create a cowardly (running under enemy fire AI)! This is also a huge omission.

 

b) DESMISS waypoint cannot be skipped by trigger to the other waypoint.

 

 

its reasonably easy to create "coward" AI running away.

 

just use the newer "disableAI" options, like "TARGET","AUTOTARGET","AUTOCOMBAT"

Share this post


Link to post
Share on other sites
On 7/28/2019 at 2:57 AM, fn_Quiksilver said:

 

its reasonably easy to create "coward" AI running away.

 

just use the newer "disableAI" options, like "TARGET","AUTOTARGET","AUTOCOMBAT" 

 

No it will not work, at least stable! I tried it, AI will not constantly run under fire. Even if player will disable FSM (via editor module), ai-run under fire will not be stable.

It would be great to have careless behavior at maximum movement speed, with any stance, for any vehicles, and so on.

 

 

 

 

  • Like 1

Share this post


Link to post
Share on other sites

@reyhard 

what is the difference between setBehaviour and setBehaviourStrong?

the latter keeps AI on the set mode no matter what?

  • Like 3

Share this post


Link to post
Share on other sites
On 7/31/2019 at 9:05 PM, mickeymen said:

 

No it will not work, at least stable! I tried it, AI will not constantly run under fire. Even if player will disable FSM (via editor module), ai-run under fire will not be stable.

It would be great to have careless behavior at maximum movement speed, with any stance, for any vehicles, and so on.

 

I  issue a domove between waypoints foreach unit and set speed to full (script) so they can run in careless, better if all the AI stuff is disabled as well however there is still a bug where every now and again the AI just stop for a second or two for  no obvious reason. They will continue after the freeze.

It would be interesting to know why they stop it's as if there is a timing issue.

 

Share this post


Link to post
Share on other sites
On 8/30/2019 at 12:04 AM, nkenny said:

Thanks Bohemia!

It was added by kju, not Bohemia. It's a community effort.

  • Like 3
  • Thanks 1
  • Haha 1

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

×