lex__1   422 Posted June 25, 2019 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.  2 3 Share this post Link to post Share on other sites
nkenny   1057 Posted June 25, 2019 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
froggyluv   2136 Posted June 25, 2019 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
snkman   351 Posted June 26, 2019 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!!!  Yeah really impressive how A.I. technology evolved during the last decade! This really is insane! Almost looks like fake.  Share this post Link to post Share on other sites
mickeymen   324 Posted July 16, 2019 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
nkenny   1057 Posted July 16, 2019 @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
oukej   2910 Posted July 16, 2019 @nkenny You may have found it yourself already - you can tweak the behavior viaconfigfile >> "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;  andconfigfile >> "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 https://community.bistudio.com/wiki/CfgAmmo_Config_Reference#suppressionRadiusBulletClose https://community.bistudio.com/wiki/CfgAmmo_Config_Reference#suppressionRadiusHit shootDistraction = 1.0; // below 0 means it decreases dynamic error (DCE) which each shot, above 0 increases DCE which each shot, if the parameter is -1, the value will be calculated as 0.01 * (audibleFire^2 + visibleFire^2) All kudos go to @klamacz 😉  5 4 Share this post Link to post Share on other sites
oukej   2910 Posted July 16, 2019 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 😄 7 Share this post Link to post Share on other sites
oukej   2910 Posted July 16, 2019 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. 1 Share this post Link to post Share on other sites
nkenny   1057 Posted July 16, 2019 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 1 Share this post Link to post Share on other sites
JB47394   30 Posted July 16, 2019 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
oukej   2910 Posted July 16, 2019 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
froggyluv   2136 Posted July 16, 2019 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
JB47394   30 Posted July 18, 2019 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
nkenny   1057 Posted July 18, 2019 @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 1 2 Share this post Link to post Share on other sites
oukej   2910 Posted July 23, 2019 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. 1 3 Share this post Link to post Share on other sites
Bobrus   29 Posted July 24, 2019 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. 2 Share this post Link to post Share on other sites
mickeymen   324 Posted July 24, 2019 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.  4 1 Share this post Link to post Share on other sites
fn_Quiksilver   1636 Posted July 27, 2019 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
mickeymen   324 Posted July 31, 2019 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.     1 Share this post Link to post Share on other sites
reyhard   2082 Posted July 31, 2019 https://community.bistudio.com/wiki/setBehaviourStrong I guess this could fix slow AI issue 1 Share this post Link to post Share on other sites
.kju   3244 Posted August 2, 2019 @reyhard what is the difference between setBehaviour and setBehaviourStrong? the latter keeps AI on the set mode no matter what? 3 Share this post Link to post Share on other sites
nkenny   1057 Posted August 29, 2019 Just noticed community wiki has been updated with this: https://community.bistudio.com/wiki/Arma_3_CfgBrains_Config_Reference  Thanks Bohemia!  -k 4 Share this post Link to post Share on other sites
f2k sel   164 Posted August 30, 2019 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
Dedmen   2710 Posted September 3, 2019 On 8/30/2019 at 12:04 AM, nkenny said: Thanks Bohemia! It was added by kju, not Bohemia. It's a community effort. 3 1 1 Share this post Link to post Share on other sites