Jump to content
nkenny

LAMBS Improved Danger.fsm

Recommended Posts

40 minutes ago, drdetroit said:

 

Yea, sorry, all I can see in your vid there are troop markers on the other side of the wall, where the rifleman is shooting.  That particular instance you have showed is a bit wonky to be honest, as he is shooting at a wall for no reason lol.   

 

Yes exactly! Isn't that enough for you?

You saw red markers. If your eyes are working properly, you should see that the soldiers are far away!

And also you must see that there is no point in suppressing these red soldiers through walls and large houses.

 

40 minutes ago, drdetroit said:

as he is shooting at a wall for no reason lol

Again Yes exactly! And again Isn't that enough for you?

You yourself described the problem -" he is shooting at a wall for no reason"

A soldier cannot shoot at an empty wall. To understand this, you don't need to be an expert in war and you don't need to be a combat veteran.

 

I just ask to pay attention to this and fix it.
And I do not order, as some say. I'm just trying to show the problem

 

Share this post


Link to post
Share on other sites

i have to agree of what mickeymen said these kind of suppression is not suitable for long combat journey as their ammo will be depleted with their first enemy contact maybe a system which let the Ai to decide whether they save or overkill, its the same reason why i hate Ai using AP shells against infantry too much ammo waste, however that kind of suppression is fixed in 2.5.1 i guess ... right ?!

  • Like 1

Share this post


Link to post
Share on other sites
13 minutes ago, AirShark said:

i have to agree of what mickeymen said these kind of suppression is not suitable for long combat journey as their ammo will be depleted with their first enemy contact maybe a system which let the Ai to decide whether they save or overkill, its the same reason why i hate Ai using AP shells against infantry too much ammo waste, however that kind of suppression is fixed in 2.5.1 i guess ... right ?!

 

Yes, the AI is wasting its ammo, I saw it because after 5 minutes of playing they all switch to pistols.

But I am not even talking about this issue! Waste of ammunition doesn't bother me.  I am worried why the hell a soldier shoots at an empty wall/empty house in front of him, at a distance of 10-15 meters!

 

Quote

however that kind of suppression is fixed in 2.5.1 i guess ... right ?!

 

Unfortunately I don't know how it was in 2.5.1

I just want to say that there was no such problem in 2.4.4 I had tests with this for quite a long time

Share this post


Link to post
Share on other sites
On 4/25/2021 at 7:00 AM, jarrad96 said:

How does the AI use of flares at night work? It would be really handy for AI to use flares during night missions, but it seems really inconsistent on who uses them, like for example some of the CFP factions use them while others don't, and I haven't seen any of the IFA3 WW2 or Hanson's CUP Vietnam factions using them- do they require the unit to have a grenade launcher or something for them to use them?

 

The relevant function is found in /main/unit/  and is called lambs_main_fnc_doUGL

Here is how it works. Every leader assessment state, which will occur around every 60-180 seconds, depending on contact and current tactic, will make the AI potentially shoot flares.  To shoot a flare it needs to be nighttime. The unit must not be wearing NVGs. One unit in the group must be equipped with a UGL launcher and have a flare in its inventory.  As the function name suggests, it has to be an underbarrel grenade launcher. At the moment we do not support grenade launchers in secondary or primary weapon slots ala. M79 or HK320.  Recently I have sometimes seen RHS units not shooting flares. This might be because they are configured differently than vanilla ones are. I might look into that in the future. 

The lambs_main_fnc_dotUGL is quite interesting, as it can also be used to make the AI shoot other things. Such as smoke. 
 

// assuming bob is the unit you want to shoot and angryBob is your target. 
// this will launch a smoke shell towards his location

[units bob, getPos angryBob, "shotSmokeX"] call lambs_main_fnc_doUGL;

@SHIFTY WOLF
Those are interesting options. 

  • Like 2

Share this post


Link to post
Share on other sites
On 5/2/2021 at 2:29 PM, cooked auto said:

To deal with an earlier issue with cars bypassing the roadblock I added 


	_stoplambs = _grp setVariable ["lambs_danger_disableGroupAI",true];

to the main spawn loop, but that doesn't seem to have done anything.

 

Ahh, what we're dealing with here is a misunderstanding of the variables. The variable you are changing will only prevent the group from performing GROUP TACTICAL ACTIONS. As civilians never do those. It will have no effect on them. What you'll want to do is to toggle the FSM variable on each individual civilian. Thusly: 
 

// LAMBS VARIABLE 
{
  _x setVariable ["lambs_danger_disableAI", true, true];
} foreach (units _grp);

// UNIT FSM ~ conceivably this should also have a very similar effect. 
{
  _x disableAI "FSM";
} foreach (units _grp);

 

Share this post


Link to post
Share on other sites

Regarding suppression

This is an interesting issue with a lot of features to untangle. The first thing to understand is that the AI lacks the contextual intelligence of a human. The AI does not read the briefing. It has no conception of historical or social contextual clues . It is also a product of computational compromises. In other words. The evaluations which humans find ridiculously obvious are fully invisible to the AI.  Evaluations which for humans would be second nature, are extremely CPU intensive if done by the AI. All of this his fairly obvious  for anyone who has thought about AI. But I think it bears repeating. 

 

Regarding LAMBS Danger. Our approach is to emulate human behaviour while presenting a seemingly intelligent and actually dangerous opponent. The flip side of this is that sometimes our algorithms fail to capture the context-rich environment in which the AI acts. An environment which is related to, but different from what humans experience. So why the lengthy essay? To contextualise how we've approached building the AI and some of the choices we are forced to make. 

 

Settings and 2.5.1

The next full release will bring considerable improvements to how and when the AI chooses suppression targets as a group. You can try it yourself on the Steam Workshop.  You can already greatly customise some of the suppression level features. Here are three ways in which you can directly tweak suppression behaviours to your liking: 

- Increasing the minimum suppression range (it is by default 28 meters) to 50+ meters will greatly reduce both individual and group suppression in towns. We've chosen 28 meters as a default as a compromise.  As of 2.5.1 50m is default.

- Checking 'Disable autonomous Group manoeuvres' will remove all group level tactics. Which will basically remove all high level suppression events from AI opponents

- Disabling group AI variable on relevant units:   <group> setVariable ["lambs_danger_disableGroupAI", true];

 

Ammunition conservation

As mentioned suppression selection is vastly improved in 2.5.1, but the question of ammunition conservation is an interesting one. As I wrote above. The AI has no contextual understanding about the presumed length of an engagement or even the length of a mission. No knowledge of when, how, or if there will be resupplies. It is hard to make these things actionable.  Our core philosophy is that it is better to spend a bullet, than have the AI spend its life. That doesn't always mesh with the goal of a longer lasting AI. 

 

Note that the AI will shoot less if the target is distant. It will chose not to suppress if its speedmode is set to FULL. Or if ordered to hold fire. Or line of sight is limited. So it isn't as if there is no contextual information being passed, but expecting the AI to understand the nuanced briefing text. Well. We're not there yet 🙂

 

-k

  • Like 9

Share this post


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

This is an interesting issue with a lot of features to untangle. The first thing to understand is that the AI lacks the contextual intelligence of a human. The AI does not read the briefing. It has no conception of historical or social contextual clues . It is also a product of computational compromises. In other words. The evaluations which humans find ridiculously obvious are fully invisible to the AI. 

 

@nkennyI appreciate what you said, but I think all this is superfluous.

I also appreciate LAMBS danger mod, but I think , what you said all has nothing to do with my info. 

I am not encouraging you to write a completely new AI for Arma3 (which will read the briefing), seems to me, you just need to use a vanilla base for this. 

My beliefs are based on vanilla artificial intelligence, because I have been playing Arma for over 8 years and I know, that in a vanilla game when the AI shoots, it understands whether there is an obstacle between it and the his target or not.

In vanilla game,  I've never seen an AI shoot at an empty wall or at an empty house! Other than that, I didn't notice such a problem in LAMBS 2.4.4! So normal ai combat behavior (choosing fire line) is possible, isn't it?  There is no alien technology here ...

Seems to me, somewhere LAMBS broke or ignore the vanilla AI logic, in which the AI identifies an obstacle in front of it.

 

I hope you get my point right, there was also no understanding of my two videos, it is very strange for me, because everything is perfectly clear there.

I made a diagram to better understand this problem:

 

34317111_m.jpg

 

The problem is that in LAMBS danger, the AI does not take into account many obstacles (buildings and fences)  in its line of fire when suppressing. 

 

1 hour ago, nkenny said:

The next full release will bring considerable improvements to how and when the AI chooses suppression targets as a group.

 

Thank you very much for your work!

I hope you cure the problem that I told you about, Thanks to such mods, Arma continues to live!

Share this post


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

 

@nkennyI appreciate what you said, but I think all this is superfluous.

I also appreciate LAMBS danger mod, but I think , what you said all has nothing to do with my info. 

I am not encouraging you to write a completely new AI for Arma3 (which will read the briefing), seems to me, you just need to use a vanilla base for this. 

 

 

This is based on current master branch, so version 2.5.1

 

Some wording explanation

 

"Last known position of target"

This is the position the AI THINKS the enemy currently is. This means if they lose sight of the enemy that position can be wildly in accurate. AI also is predicting enemy movement, this is a vanilla feature btw, so that position can wander on for some hundred meters. Again, this position is NOT accurate unless AI have direct line of sight, a squad member told them where the enemy is OR another friendly squad shared their information to them with way more accurate position information.

 

DANGER_ENEMYDETECTED

Internal value when danger is detected and AIs latest danger type pool contains that they just detected a new enemy

 

DANGER_CANFIRE

Type in the danger type pool which indicates that the AI can fires its weapon. AI will SELF identify this (Base vanilla behaviour)

 

When does lambs danger use suppression when no direct line of sight?

Here is a list of functions that invoke any kind of suppressive behavior and condition when suppression is called

 

lambs_danger_fnc_brainEngage -> less than 500 meters distance of last known position of target, not suppressed and danger type is DANGER_CANFIRE or DANGER_ENEMYDETECTED

lambs_main_fnc_doGroupFlank -> none flanking unit will suppress area of last known position of target

lambs_main_fnc_assaultMemory -> within 65 distance of last known position of target or 10% chance used to get ai closer under "shelter" of suppressive fire

lambs_wp_fnc_taskHunt -> when in combat and target is within 25 meters of any building

lambs_danger_fnc_tacticsSuppress -> calls lambs_main_fnc_doGroupSuppress when last known position of target is not obstructed by terrain LOD and if another line-of-sight check (3 bounce check) does not hit an object inheriting from class "BUILDING". All from LEADER UNIT POSITION

lambs_main_fnc_doGroupSuppress -> has no checks as it is called by lambs_danger_fnc_tacticsSuppress. Is ONLY called by lambs_danger_fnc_tacticsSuppress. All squad members will fire at position even if one squad member is standing right infront of a barn

 

When does lambs danger use suppression when direct line-of-sight?

lambs_wp_fnc_taskCQB -> when no building or object is obstructing the enemy

 

lambs_danger_fnc_tacticsSuppress explanation

We only check from leader position if the path to the last known position is obstructed by terrain LOD or by a 3 bounce check. Why? Performance. Simple as that. Cannot check on every unit, that would slow things down considerably if it was some soviet mega squad constellation. We assume if the leader can see the position then it is good enough.

 

BCIZn4f.png

 

3 bounce check explanation and why it is not that easy

That name is btw made up by me, could have named it "eye beam laser of inspection" as well. In reality we make a lineIntersectsSurfaces check starting at the AI's position going towards the last known position of the enemy. That check is allowed to pierce 3 objects total before stopping. why only 3? Performance. Cannot reasonably allow 100 objects to be probed without causing some performance issue along the way.

After the objects are returned from the lineIntersectsSurfaces command we check them if they are a (simple) object. Then we can query if that object is inheriting from the base class "building".

We also may get a "super simple object". That object is as the name implies so simple it does not even have a class, it is just a model, nothing more.

Why check for inheritance of building only? Any building in Arma is inheriting from it, at least in the base game. No tree or bush is inheriting from it, again, at least in the base game. We still want suppression in forests as many many playtests has shown it is pretty damn fun.

 

With all that info we then check the returned objects if one of them is an object inheriting from "building".

 

Scenario 1:

One object is inheriting from class building. We do not call suppression.

 

Scenario 2:

No objects returned. We suppress.

 

Scenario 3:

Only super simple objects returned. We suppress

 

Scenario 4:

All object do not inherit from building. We suppress

 

Scenario 3 is the MAIN issue. We cannot reasonably know what kind of object this is. We only know its file path. As you probably noticed in the illustration, I used some funny looking file paths. The reason is simple, mods and... Czech. It is nigh impossible to figure out what an object actually is without curating a databank of models and what those are for all of base Arma AND ALL MODIFICATION! This is the part that seemed superfluous to you.

Nkenny is the philosopher in the team, so he described it to you on a very high level that AI cannot understand what they are looking at most of the times, same with ammo etc etc etc. Since that failed, here i am, one of the tech guys going on with technical terms.  I tell you the ai can look at an object, not understand what that is and still do something. It will not make sense from a human perspective as for us we look at thing, neurons fire in a black box (the brain) and we understand that thing is actually a building. It is really hard for simulated AND ""true"" ai to figure out what anything is, that is why there is so much approximation and tricks to keep things quick. After all, an object for AI is some GEOM mesh, a bounding box and maybe some other thing. For them a colorful house is nothing but some gray box that maybe blocks their sight.

 

I could go deeper into thing, but the I would probably need to get some talk session at the GDC, which frankly won't happen, ever.

 

That said, we still try to improve things along the way. It is just hard to make the AI do things any player would do in that situation. We had people really liking the frankly too suppressive AI, praising them as what they saw during combat or during drills. Then we have others that say it is unrealistic. So we got 2, probably more, extremes that we need to tip toe between. That is why we follow some design philosophies which may make no sense in certain combat situation. One of them being: Rather spend the bullet than just stand around and get shot.

  • Like 11
  • Thanks 2

Share this post


Link to post
Share on other sites

Fantastic breakdown of the tribulations of AI coding especially in ARMA - bravo

 

my two cents the added immersion of AI suppression as opposed to robot terminators who just one shot kill each other with way too little bullets flying - is worth it even if it plays out wonky occasionally 

 

I might even cheat add a few mags of ammo to any AI in suppressive fire mode as the results outweighs the need for stickler realism knowing that AI simply cant reliably rearm themselves 

  • Like 2

Share this post


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

Fantastic breakdown of the tribulations of AI coding especially in ARMA - bravo

 

my two cents the added immersion of AI suppression as opposed to robot terminators who just one shot kill each other with way too little bullets flying - is worth it even if it plays out wonky occasionally 

 

I might even cheat add a few mags of ammo to any AI in suppressive fire mode as the results outweighs the need for stickler realism knowing that AI simply cant reliably rearm themselves 

I wholeheartedly agree.  Thank you @diwako and @nkenny for the explanations and all the hard work for this great mod.  I agree with Froggy that it would be perfectly ok to "cheat" and give AI more magazines when they run out due to suppression.  To appease hardcore objectors, this could be a config startup parameter that toggles whether AI are given extra mags for suppression or not.

Share this post


Link to post
Share on other sites

I do think there needs to be something done about the AI ammo, perhaps while they're suppressing they have an EH that adds a magazine every time they reload? Or maybe a quick check of ammo and if they have less than say 3 magazines then they don't use suppression unless they're an MG or something like that?

I have noticed after a long range engagement with the AI, when they finally get to our location some of them have their pistols out because their rifle is dry.

As people have said the AI don't have the context, so they know to suppress, but they don't know it's a bad idea and they'll run out of ammo if they do it with only 2 mags left. 

So the 2 options are, an elaborate set of rules, or "smoke and mirrors" in the form of say adding ammo on reload while they have the suppression command 
 

  • Like 1
  • Thanks 1

Share this post


Link to post
Share on other sites
37 minutes ago, JD Wang said:

So the 2 options are, an elaborate set of rules, or "smoke and mirrors" in the form of say adding ammo on reload while they have the suppression command 
 

That gets my vote (like my vote counts haha!!!).  It could be a configurable parameter, so hardcore realism players would not have the addMagazine cheat  for AI, and the rest of us that want AI to suppress AND have ammo for longer missions will have the cheat enabled.

  • Thanks 1

Share this post


Link to post
Share on other sites

We have some code snippet pinned in our discord to add new mags to AI. Just need to put that into init.sqf
 

["CAManBase", "Reloaded", {
    params ["_unit", "", "", "", "_oldMagazine"];
    if (isPlayer _unit) exitWith {};
    _oldMagazine params ["_type", "_roundsLeft"];
    if (isNil "_type" || {_roundsLeft > 0}) exitWith {};
    (_type call BIS_fnc_ItemType) params ["_magType", "_magLoadedWith"];
    if (_magType != "Magazine" || {!(_magLoadedWith in ["Bullet", "ShotgunShell"])}) exitWith {};
    _unit addMagazine _type;
}, true, [], true] call CBA_fnc_addClassEventHandler;

 

Share this post


Link to post
Share on other sites

@diwako Thanks for the detailed story my friend! 

I appreciate your work, You let me know the details!

 

Quote

 In reality we make a lineIntersectsSurfaces check starting at the AI's position going towards the last known position of the enemy. That check is allowed to pierce 3 objects total before stopping. why only 3? Performance. Cannot reasonably allow 100 objects to be probed without causing some performance issue along the way.

 

Let me please suggest some solution, which seems to me the way out in this situation.

I think I see a solution here. Let's figure it out. In my video, the AI shoots at an empty fence that is 10-15 meters away. In fact, he suppresses the enemy who is located 200-300 meters behind this fence. May I suggest my solution?

 

You told me that LAMBS still does have an AI obstacle checker. And you said that there can be only 3. This number is not so bad, but you did not say anything about the distance to these obstacles.

And they did not say anything about the priority (from near to far). I would like to understand - is the AI able to understand the priority of an obstacle or not?

 

In my opinion, for AI supression actions, the nearest obstracle should have the highest priority.

As I understand it, LAMBS already has a minimum number of meters to the target (this is the number 28) for suppression, isn't it?

This means that the AI has the ability to calculate the distance to the target or other objects. There should be no doubt in anyone's mind that this is exactly the case. 

 

Here's my suggestion:


Can you disable AI-suppression, if the object from "lineIntersectsSurfaces" is less than a certain number of meters away from AI (can be calculated by squad leader or the shooter himself)? This can be done?

 

If you create a threshold for the suppression distance for "lineIntersectsSurfaces", then I think this can significantly mitigate the problem.

Just try to disable suppression actions for all AI squad, if in the fire line there are priority obstacles  of the commander (as you said only the commander checks obstacles). 

You can create a list of unpierces obstacles. All houses and fences, stones and other impenetrable obstacles can be located there.

Even if this will only work for one commander, then it will not be ideal, but already good, since the squad members is very often located next to each other. But if you can customize each shooter separately, then this will be the perfect solution!

The threshold for checking obstacles and prohibiting suppression can be within 30-50 or even more meters (all of you choose this number yourself) and it can be calculated according to the priority of obstacles.

The closest obstacles are the highest priority.
Thus, the situations shown in my videos will never occur in the game, if the closest object (obstacle) is in the AI's line of fire, within the threshold for prohibiting AI-suppression.

 

Do not judge strictly, this is only a proposal for you, not an order...

 

 

12 hours ago, diwako said:

We had people really liking the frankly too suppressive AI, praising them as what they saw during combat or during drills. Then we have others that say it is unrealistic. So we got 2, probably more, extremes that we need to tip toe between

 

In fact, a very simple solution can satisfy everyone at once.

Just give the player settings and suppression suppression multiplier in the range of 0-2.0 

It could also satisfy a picky nerd, like me :)

Because I could decrease the suppression multiplier and thus face much less shooting at an empty buildings.

 

Share this post


Link to post
Share on other sites

Dear Mickeymen,

 

I understand the thought behind your suggestion, there are however two problems that come with it if I understand the above explanations.

1. With the barring of suppression for objects within a given range to the suppressing combatant, the presence of something as simple as a street sign would stop suppression from happening altogether. 2. You propose a list of impenetrable objects to avoid this issue, but the problem is that such a lookup list would come with extreme FPS penalties, which is something LAMBS avoids as much as possible.

 

Regards,

Nicolai

Share this post


Link to post
Share on other sites
18 hours ago, nkenny said:

 

Ahh, what we're dealing with here is a misunderstanding of the variables. The variable you are changing will only prevent the group from performing GROUP TACTICAL ACTIONS. As civilians never do those. It will have no effect on them. What you'll want to do is to toggle the FSM variable on each individual civilian. Thusly: 
 


// LAMBS VARIABLE 
{
  _x setVariable ["lambs_danger_disableAI", true, true];
} foreach (units _grp);

// UNIT FSM ~ conceivably this should also have a very similar effect. 
{
  _x disableAI "FSM";
} foreach (units _grp);

 

Hm, interesting. I'll give that a shot and see what happens.
Much appreciated. 

Share this post


Link to post
Share on other sites

@mickeymen

Lineintersect surfaces already returns a sorted array of objects it hits, that is first hit object is at place 1 in the array and last hit object is at space 3. So that is already taken into account. Aborting any suppression because there is a bush 10 meters away is not an option, as we still want suppression in forested areas and such.

As mentioned earlier we already check what the objects in the array are. It is just as also mentioned not very easy to figure out once we hit a super simple object. If you think you have an easy solution to figure out what such an object is feel free to tell. I got a few ideas on my own, but they involve some heavy handed work which i would prefer to avoid.

 

A slider for suppression is a bit rough to implement, it would result in some random dice roll if they should or not. Suppression in lambs is tied to tactics that the AI executes. It would lessen the issue but not fix it.

Share this post


Link to post
Share on other sites

just as a slight improvement idea maybe limited check can be done from the enemy side as well to increase the chance to find solid objects which makes supression unnecessary? As usually the person who might be shot at is the one who is trying to cover himself/herself out.

  • Like 2

Share this post


Link to post
Share on other sites

A small suggestion regarding suppression:

 

I would propose to simply check line of sight to a position say 10 metres in front of the target. If that position can be seen from the supressing unit, firing makes sense.

If there is either cover or concealment on the last 10 metres that would exactly meet the purpose of supressing fire. And obstacles closer to the firing unit are then accounted for.

I believe the overall effect would feel quite realistic. No human could/would supress a target, when los is blocked close to the firing position, but on the receiving end that does not matter.

  • Like 1

Share this post


Link to post
Share on other sites
9 minutes ago, oldy41 said:

A small suggestion regarding suppression:

 

I would propose to simply check line of sight to a position say 10 metres in front of the target. If that position can be seen from the supressing unit, firing makes sense.

If there is either cover or concealment on the last 10 metres that would exactly meet the purpose of supressing fire. And obstacles closer to the firing unit are then accounted for.

I believe the overall effect would feel quite realistic. No human could/would supress a target, when los is blocked close to the firing position, but on the receiving end that does not matter.

 

He literally states two posts up that that would prevent suppressing through bushy type forested areas and that is important to them

  • Like 1

Share this post


Link to post
Share on other sites

LAMBS Danger.fsm

Current version 2.5.1


Requires
CBA_A3

 

-- Changelog --

Spoiler

 

Added new lambs_formations config tweaks/enhancements to formations and pathfinding

Added ZEN Context Actions for Reinforcement

Added custom share information handlers (by mjc4wilton)

Added artillery crew will disembark when threatened by near enemies

Added debug marker for artillery spotter

Added more robust stance changes and forceMove to tacticsFlank to induce more movement

Added findNearbyVehicles (standardised function to find ready vehicles)

Added stricter handling of flanking units (forcing them to not board transports)

Added exit condition on 'lambs_danger_forceMove' in brainForced

Added 'forceMove' variable to hiding to increase reliability

Added unified callout and share information

Added units will act more intelligently to "hold fire" commands (by setting combatMode to "BLUE" or "GREEN". I.e., ordering units to hold fire)

Added checkbox to disable Dynamic reinforcement system for Task Waypoints

 

Fixed artillery check round barrages (these were always one round)

Fixed artillery debug markers were occasionally not removed when the spotter died

Fixed flanking units chose more intelligent spots

Fixed allowed suppressing units to suppress outdoor spots (performance)

Fixed doGroupFlank set wrong forceMove variable

Fixed doVehicleAssault visibility check

Fixes doGroupFlanks tendency to not do anything!

Fixes doGroupAssault tendency to cause AI to rotate uselessly

Fixes doAssault building sorting distance to more reliably assault salient buildings

Fixed doSuppress ignoring the positions of friendlies

Fixed units standing up at inopportune times in assault/assaultMemory

Fixed groups rarely utilising 'aggressive' contact state

Fixed groups failing to use hand signals and callouts

Fixed units spamming 'Negative' (due to inability of providing suppressive fire)

Fixed armoured vehicles suppressing useless positions

Fixed issue with taskAssault calling taskArtillery

Fixed reduced use of suppression when an enemy is detected but not easy to see.

Fixed height over sea effect in getShareInformationParams

Fixed units playing walking animations  when retreat option is enabled in taskAssault

Fixed missing taskAssault Retreat mode waypoint text

Fixed player-led groups would occasionally fail to return to formation

 

Changed Renamed DisableGroupAI Module to Configure Group AI

Changed taskPatrol and taskHunt groups are no longer set to reinforce by default

Changed player-led groups no longer receive shared information

Changed artillery debug markers now uses a colour not used by a faction

Changed static weapon crew will disembark when threatened (instead of only the effective commander)

Changed timing for isLeader checks. Non-leaders will now only check 5% rather than 10% of the time

Changed minimum suppression range from 25 to 50 meters


 

Improved isNight performance by use of getEnvSound Controllers (by RCA3)

Improved taskGarrison to only seek cover positions when necessary

Improved doShareInformation performance

Improved getShareInformationParams performance

Improved performance of findNearbyFriendlies

Improved performance of isAlive checks

Improved performance doGroupSuppress

Improved performance of doSuppress

Improved performance of doVehicleSuppress

Improved Converted remoteExec/remoteExecCall to CBA Target Events

Improved performance of brainEngage by having zero-time exit variables

Improved FSM performance by removing unnecessary checks

Improved brainReact handling of doCover state

Improved doDodge performance

Improved doHide performance

Improved findReadyUnits handling of ‘attacking’ units.

Improved sorting of ready artillery

Improved skipCheckRounds option will also skip main strike delay

Improved Render Positions of DebugDraw

Improved brainEngage handling of speed change when engaging

Improved FSM performance by using simper params array

Improved prevent script errors with TaskArtillery when no artillery is defined

Improved reduced use of AI smoke

Improved debug draw (performance and settings)

Improved entries in taskModule configs

Improved group assessments of close combat situations

Improved groups set to WHITE combat mode are less likely to enter group suppression mode

Improved Polish translations (by MiszczuZPolski and SzwedzikPL)

Improved various tooltips

Improved consistency of suppression function with shorter ranged weapons

 

-- Changelog end --

 

This is going to knock your socks off. The big focus of this release has been refining existing features under three general headers: frames, flow and friction.

 

Frames. For this version, we have improved and streamlined many of the most common AI- functions. The net result is an overall performance increase of some 5-10 FPS depending on your system.  

 

Flow. With the introduction of the new lambs_formations.pbo you will see increased combat ability from the enemy AI. Infantry will be faster to move into and through buildings. You will also see more compact infantry formations that will in turn be quicker to react.

 

Friction. Through an active process of feedback and development, we’ve also removed many issues related to group-level tactics. Infantry performing group actions will act with increased authority and aggression. Group use of suppression will select targets more intelligently. Vehicles will use their weapons more sensibly, as it pertains to suppressing and facing enemies. Overall, you will meet a much more dangerous enemy. 

 

The team would like to extend special thanks to the people that provided commands and questions on the development version on steam and discord and in particular the developers that contributed content to the project: mjc4wilton, RCA3, MiszczuZPolski, and SzwedzikPL. 

 

 
STEAM Workshop

---
GitHub

---

Discord

 

From the team

diwako / joko / nkenny

  • Like 8
  • Thanks 6

Share this post


Link to post
Share on other sites
On 5/4/2021 at 1:25 PM, Nicolai said:

1. With the barring of suppression for objects within a given range to the suppressing combatant, the presence of something as simple as a street sign would stop suppression from happening altogether

 

On 5/5/2021 at 11:10 AM, diwako said:

Aborting any suppression because there is a bush 10 meters away is not an option

 

Quote

He literally states two posts up that that would prevent suppressing through bushy type forested areas and that is important to them

 

Guys. Why are you not talking about what, I'm talking about? Have I mentioned bushes or road signs anywhere?

I mentioned buildings (Houses and high stone fences) These are completely different things. I suggested putting only buildings on the list of reasons that exclude AI-suppression. It is unlikely that this will affect performance, since we do not have several dozen buildings on one map!  As a rule, in Arma3 (within a one map location ) there are no more than 3-5 types of buildings and only a few stone fences, depending on their length. 

Quote

 

LAMBS Danger.fsm

Current version 2.5.1 - Turing

 

@nkenny  Thanks for the release, but it is incomprehensible why this version is called the same (2.5.1 - Turing)  as the previous Dev version, which we can tried already week ago. The question arises, what is the difference between them.

 

Quote

The net result is an overall performance increase of some 5-10 FPS depending on your system

I noticed this right after the first test. Now my gameplay is smoother, thanks!

 

Share this post


Link to post
Share on other sites

And what if enemy infantry are literally prone or ducking behind that wall ? Suppression is warranted there. Maybe your asking for a distance check from all enemies to said walls at all times - that gets expensive 

 

since you seem to know so much about what lists are cpu intensive  and what aren’t - why not throw up some sample code as an example? Far more helpful than “  I have an idea listen to me!”

Share this post


Link to post
Share on other sites
8 minutes ago, froggyluv said:

And what if enemy infantry are literally prone or ducking behind that wall ? Suppression is warranted there. Maybe your asking for a distance check from all enemies to said walls at all times - that gets expensive 

 

If this is possible, then the solution would be to take into account the distance to the obstacle and the target distance, which is suppressed by AI.

  • Like 1

Share this post


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

 

He literally states two posts up that that would prevent suppressing through bushy type forested areas and that is important to them

Peace, but I am not sure, whether that is really their intention?

Ignoring only those obstacles (whether solid or not) near the target should help remedy those immersion killing situations several users complain about: AI emptying their ammo into walls a few meters in front of them, while still providing for some agressive supression?

  • Like 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

×