Jump to content
nkenny

LAMBS Improved Danger.fsm

Recommended Posts

@ribera1945e
Those features are added in 2.0.3.¬† One RC test away from release ūüôā

Turrets may seem to track at further distances than vanilla because every soldier is a sensor periodically sharing information between groups.  This does make for more dangers vehicles in a sense. Could that be it?

 

-k 

  • Like 2

Share this post


Link to post
Share on other sites

Just had a great experience clearing a town. Lot's of enemy garrisoned, with 6 friendly teams all with hunt waypoint's in the centre of the town. They all seemed to work together to clear through the town. Clearing one building all together, then moving on to the next one. 

 

Separate groups coming together as one and clearing the same series of buildings, is that by design? or just happy coincidence due to having their hunt waypoint's all in the same spot? 

 

Also, after half the town was cleared all teams stopped, is there a limit to how many times they move within one hunt waypoint?

 

[EDIT]

 

Just read the description and it says this only targets players, but it seemed to work well against enemy?

  • Thanks 1

Share this post


Link to post
Share on other sites

@sbua16
Glad you had a good run ūüôā¬†Did you by any chance run the Hunters on one of the CQB formations -- Delta or File?¬† That will generally cause the behaviour you experienced.¬† The AI will handle itself quite well without extensive waypoints. Though HUNT only targets players -- I'm guessing they communicated between themselves and just acted on the default mod behaviour.¬†

-k 

Share this post


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

@ribera1945e
Those features are added in 2.0.3.¬† One RC test away from release ūüôā

Turrets may seem to track at further distances than vanilla because every soldier is a sensor periodically sharing information between groups.  This does make for more dangers vehicles in a sense. Could that be it?

 

-k 

I think that this has been one of Arma's greatest failings for years, e.g. shoot dead a sentry and an APC on the other side of the airbase will suddenly drill your position with 20mm...

This Hive Mind mentality might be every commander's dream but in reality sharing tactical information is slower (stress), irregular (misunderstandings) and occasionally impossible (due to attenuation of radio signals).

So is there any way that this Hive Mind mentality could be slowed and/or range attenuated via a mod?

  • Like 1

Share this post


Link to post
Share on other sites

Teaser on release: shown is the effect of the new debugged vehicle suppression module. 

 

https://streamable.com/zi7ri

 

Other mods:

ACE/ACRE/JSRS/K_MNP

  • Like 3

Share this post


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

Teaser on release: shown is the effect of the new debugged vehicle suppression module. 

 

https://streamable.com/zi7ri

 

Other mods:

ACE/ACRE/JSRS/K_MNPÔĽŅ

K_MNP = Killochs Multi-National Pack? or Kenny's Multiplayer Next-gen Pack?

Share this post


Link to post
Share on other sites

The mighty Killoch's. In regards to information sharing. Some of it seems to be handled on a deeper level, but I have made alterations to information sharing, which will have some effect. 

 

It is also worth noting that while information _that_ there is an enemy is not accurate _where_ that enemy is. Good movement an concealment skills are key! 

 

That Said. Yes, the AI does spot you and communicate in a very robotic manner. 

 

  • Like 2

Share this post


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

That Said. Yes, the AI does spot you and communicate in a very robotic manner. 

 

That is exactly right!

 

1) If you kill an enemy Ai unit before it detects you then the other Ais shouldn¬īt be altered unless they had direct sight of the dead or heard the gun shot. They could radio the dead a few minutes later and suspect something is wrong when there is no answer but when that happens they should go a check the Ai‚Äôs last known position.

2) If they heard the gun shot they should act alerted but not 100% aware of the shooter¬īs position. In fact the first thing they should do is seek cover.

3) If an Ai do spots an enemy there should be some seconds of target confirmation before it can safely rely information over the radio. After that the receiving Ai should also begin processing the information and trying to determine the distance and bearings of the enemy without knowing its exact position but looking at the general direction. If after looking at the direction the Ai do manage to see the target only then they should move in and try to hunt the target, otherwise it could be an ambush or misinformation.

Arma 3 fails to simulate this miss information, doubt and human error among the Ai units.

4) The vanilla behavior is even more unrealistic when the Ai is manning heavy assets such as vehicle turrets. In real life using such powerful weapons could easily result in friendly fire and/or civilian casualties so soldiers manning turrets take several additional measures (taking additional time before shooting) to ensure target acquisition and veracity of information, possible collateral damage etc. specially if the information was received over the radio and no real visual contact was established.

 

I did want to also suggest separating vehicle behavior improvements from LAMBS Improved Danger.fsm while leaving LAMBS Improved Danger.fsm for on foot infantry only.

  • Like 4

Share this post


Link to post
Share on other sites

I am very happy to announce: 

LAMBS Danger.fsm

New Release: Current version 2.1.0

 

Changelog

- Added ZEUS modules 'set radio', 'disable unit AI', 'configure group AI'
- Added CBA configurable settings for many features - hiding from tanks or aircraft, autonomous group maneuvers, disabling all information sharing
- Added ability to configure which formations count as CQC ones
- Added setting to automatically add all artillery
- Added ability for fleeing infantry to abandon vehicles
- Added new FSM state a variable, "lambs_Danger_forceMove" to have an FSM level force move option
- Added new FSM forceMove mode to contact and maneuver leadership states
- Added groups to exit CQC mode by changing formation
- Added fn_assaultSpeed to adjust movement speed based on ROE and distance to target.
- Added support for old variable (will be decrepitated)
- Added isolated squad leaders will try to regroup
- Added maximum knowsAbout while sharing information to prevent instant combat mode
- Added new 3d helpers for fn_assault to debug
- Added new debug markers for shareInformation
- Added configurable settings for Explosions EventHandler
- Fixed changes to suppression speed to prevent units from becoming stuck
- Fixed significant flaws in vehicle suppression. Vehicles would occasionally target nearby buildings to themselves rather than the enemy.
- Fixed Prevents busy AI from being ordered to man static weapons
- Fixed occasionally players being forced to do animations
- Fixed Units set to assault a position will now complete the assault even if the target is killed
- Fixed Speed levels to allow shooting while moving in close combat
- Fixed leaders in reaction state will now be slower and more static
- Fixed LAMBS mod naming scheme the same as CBA and ACE3
- Changed made suppression function more reliable
- Changed made infantry less susceptible to cowardly behavior for gameplay reasons
- Changed added more time for Suppression in FSM (prevents spam)
- Changed group assessment and reorganization phase
- Changed maneuver phase by balancing distance and suppression
- Changed Fleeing state. Units will now prefer running to standing
- Changed Leaders assigning buildings for CQC will now only pick buildings between them and the enemy.
- Changed various fn_assault and fn_building settings to make for better close combat fighter
- Changed aggression in the FSM movement. Increased mobility.
- Changed the wording on debugDraw expected destination to something smaller
- Removed "lambs_danger_dangerAI" group variable. Replaced with "lambs_danger_disableGroupAI", a boolean expression.

 

Patch 2.1

The overall theme of this patch has been Quality of Life and improving existing systems. Player led units should be easier to control and perform closer to expectations. Alongside this has been a major refinement of existing features:  The suppression module has seen improvements to target selection and distance checks.  Vehicle suppression has been improved in similar manners, and now actually perform as intended(!).  The AI's close quarter battle skills have seen similar improvements.  By adding smoother changes in speed, you will see more instances of moving and shooting. Target prioritization and core movement skills, flow through in clearing, has seen similar enhancements. 

Unit communication has also received an overhaul. In previous versions units would be instantly and fully knowledgable (presence of) about any known unit targeted with CQC range.  This effect has been removed, so the AI will be more exploratory when securing buildings.  The information sharing feature itself has been tweaked.  The maximum knowsAbout value which is communicated is now 1. (1.5 is typical range of which a target is fully known. 4 is max).  This has the effect of unis sharing information, but with less certainty. It also prevents unis far removed from the action to behave as if they are under immediate threat. Indeed, units with greater than 1.5 knowsAbout can be confused by contrary messages coming from other sources. All in all adding to the simulation. Units which are currently communicating are shown doing a "radio animation".  It is also possible to switch off all unit communications. 

Unit fleeing and cowardice has seen improvements. It is now possible to fully switch off the feature and units are in general less likely to self-decide to hide from tanks and aircraft. Fleeing units will now abandon cover if spooked more frequently and will also sometimes abandon vehicles if directly threatened. 

 

Finally a slew of customisation options has been added to the CBA menu. It is now possible to toggle or tweak many more features. Including configuring which formations are considered 'CQC'. It is possible to automatically add all artillery to the relevant side. And the naming and wording and description for some of these settings have been clarified. Also, three new Zeus modules have been added to toggle various setting. Consider this a test platform for the changes ahead. 


Variable change
Based on input, thanks @Ryko, and the sheer sensibility of the suggestion, one of the variables has been changed. The old variable remains functional, but will eventually be decrepitated. To disable group-level assessments and maneuvers, either toggle the relevant CBA option, or set the new variable for that particular group:


<group> setVariable ["lambs_danger_disableGroupAI", true];


It remains possible to disable all FSM enhancements made by LAMBS danger AI with two options:

<unit> setVariable ["lambs_danger_disableAI", true];
<unit> disableAI "FSM";

Next step

This version has focused on quality of life and refinements of existing features.  The next area of focus will be richer in features relating to mission making. We are adding new Zeus modules and rewriting (and in some case revamping) many of the existing way points.  Currently these features exist in a not fully supported manner-- i.e., lack of headless client support and certain matters of scripting. Feature wise for the team is exploring added shouted callouts and * as always, hunting for some appropriate animations. 

Thank you for playing

- nkenny and the team

 

--- 
STEAM Workshop

---
GitHub

---

  • Like 10
  • Thanks 7

Share this post


Link to post
Share on other sites
10 minutes ago, nkenny said:

decrepitated

New favourite word!

  • Like 2
  • Haha 3

Share this post


Link to post
Share on other sites

We are having so much fun with your mod and it's such a game-changer!  Many thanks for all your hard work and please keep going.

 

@nkenny

I'm trying to get my dynamic mission playing well with your mod.  Handful of questions for ya:

  1. I like your "Hide" mode (and thanks for the recent option of disabling it completely), but I'd like a bit more control over how long groups are hiding out.  I figured out (more-or-less) how to reassert control of groups by temporarily placing them into forced "AWARE" behavior.  The only thing left for now is to detect when groups are in your "Hide" mode via script, so I can get them moving again periodically.  Do you guys store current mode in a group or unit variable?  (or similar?)  Hope that makes sense.
  2. Is it possible to disable hiding on a group by group basis (via script)?  (<- If not, I humbly request this.)
  3. Any way for mission creators to place a combat group into a LAMBS mode (like "Assault" or "Hide") via script?
  4. Do you guys ever move or delete group waypoints?  (Specifically, do you ever move or delete WPs that mission makers place in editor or that we add via script?)  In short if we add WPs, are they subject to LAMBS manipulation?

Btw- I read and watched most (but not all) of the thread & videos, so sorry if some if this got answered previously.

Share this post


Link to post
Share on other sites

Thanks @madrussian, glad you are enjoying it! That looks like a cool mission. 

To answer your question: 

1. The individual call for hiding is accomplished by the fn_hideInside function.  You can read the current task of individual units by the  "lambs_danger_currentTask", which in the case of hiding will read "Hide".  Now the hiding call can come from multiple sources: 
- Immediate reaction to contact
- Panic
- Leaders calling for it
- Being shot at and not knowing the source. 

Some situations will also trigger CBA styled eventhandlers.  Which is implemented for some but not all events. These are unfortunately no fully documented and will likely see expansion in the coming versions. 

2. Not as of yet.  It isn't a bad suggestion at all. Considering your next question, and taking into account the amount of extra scripting you evidently do-- it may be a better solution to disable the group AI completely. Then call for those functions, LAMBS or your own, to fit your specific mission needs. At least for mission essential units. 
 
3. Absolutely. Simply call the relevant functions.  The WP styled scripts are documented earlier in the thread. Others are listed under the "fn_leader*" in the gitHub. 

4. Never. It is a design goal of the core component that LAMBS Danger merge seamlessly. This means never altering existing waypoints nor toggling enableAI/disableAI features.  The waypoints are stood somewhat beyond this design goal and are allowed to push the envelope. The logic being simply this:  When LAMBS WPs or custom scripts are used, they are meant to be used by the mission maker. 

-k 


 

  • Like 1
  • Thanks 3

Share this post


Link to post
Share on other sites

@Devastator_cm
In seconds. Good catch. I will update the description for the next version.  The AI will drop prone when explosions trigger near it. It will only repeat after X seconds has passed (to prevent it from happening too often).  The new switch also allows for it to be turned off.

 

-k 

  • Like 3
  • Thanks 1

Share this post


Link to post
Share on other sites

+ 1 to the list of people loving this MOD. Awesome work. 11/10!

One of the things with AI 'finding cover' is that the squad breaks-up (and never reforms).  This works well for guerrilla tactics, less so for trained troops.

VCOM; ASR same. TCL squads were a bit more coherent, MCC4's Gaia just set waypoints [it was more of a Macro AI Mod] -- but you go the sensation you were facing a squad (#fully support you not touching WP!!!)

 

I would be intrigued to hear your perspective on above?

You write, "Added isolated squad leaders will try to regroup" in the release notes.

I think squad integrity is an aspect of tactical group movement that is worthwhile.
Those of us that play with AI squads would (I imagine) be definitely up for something that stops squads 'evaporating in four directions' when you back is turned (whilst getting all of the 'good stuff' -- i.e. not simple stripping them of the MOD).
Food for thought perhaps.
 

  • Like 1

Share this post


Link to post
Share on other sites

@Machiya
Glad you enjoy the mod :)

I agree that squad cohesion is something of an issue. The best way to approach it would be to rewrite parts of the squad cohesion FSM  (which is distinct from the combat fsm!). However, much of the functions run in it are inaccessible to easily edit. So If I were to rewrite it,  like I have done in the Orkz mod, it would come at the cost of much of the dynamic seeking cover routines  (leaning around corners, and dropping behind fences).  Routines which are handled in engine (for speed) and I am unsure if I have scripted access. Other features, like the unspoken buddy-pair bounding  (in fact, it is litterally spoken. Seems to be keyed into vocalisation and callouts) are tied to this as well.

Unless mine or other experiments show it to be possible to effect core movement in gainful manner. Its going to be tough. My plan is to make the leader rally phase be just that.  Perhaps adding more shared assault routines will also help-- sharing not only target information, but actually assigning more shared targets-- which presumably will generate more cohesive results as the squad attempts to get at the same target. Hmm.. your comment definitely spark potential!

-k

  • Like 1
  • Thanks 1

Share this post


Link to post
Share on other sites

loved this update really nice and fluid AI reaction to different situations

 

there are 2 things so far i wish you fix them

 

1- the AI hiding in buildings will never tries to return fire from windows or even lean out the door fires and hide back

2- when AI overcomes an attack they will keep chasing fleeing enemies which can lead to leaving their positions unprotected or worse goes in an ambush 

you can try placing 5+ fire teams in a city and place 2 fire teams to attack once they defend against the attackers and the fleeing triggers the defending teams will start chasing after fleeing units and leave their positions!

Share this post


Link to post
Share on other sites

@cpt.ghost
Those are some interesting thoughts.
1. Currently the hiding script performs the dual tasks of actually hiding units inside buildings, but also placing them there. The fn_assault function will also keep units within buildings static most of the time (therefore not abandoning positions willy-nilly). I had at one point thought to include some more intelligence movement internal to the building.  Perhaps if I can scrounge or make some light-weigth solution which makes it easier to find positions from which the AI can engage in the direction of the enemy from inside the building.

2. The problem you describe is difficult. It is of course present in the vanilla AI as well.  The problem is one of context.  As a mission maker and human, you understand rules, briefings, and positions of power. Sometimes ROE allows chasing down enemies, sometimes it does not. Sometimes ROE should be broken, sometimes not. Any soldier will have received a briefing about the expected direction of attack by the enemy, abstract or not. This in turns informs which positions should be abandoned, and which cannot. If this analysis sounds philosophical, it is because it is precisely a question of epistemology. It is a question of what the AI knows.

It is admittedly a weakness of LAMBS Danger.fsm that it does not leverage the vanilla Combat Modes to any sensible degree.  Which means that one easy avenue of controlling what the AI expects is closed. Perhaps certain combat modes should have different executions within the FSM, though the vanilla AI does a poor job of demonstrating any such sensibility itself.

Another option may be to read 'HOLD' waypoints and possibly 'Guarded by' positions in a more strict manner.  These locations are expected to be held. Essentially,  those which are marked as 'Guarded by', hence assigned by the Mission Maker as areas of interest.  Adding an intelligence with these elements may give the AI intelligence the type of information it requries to make sensible decisions in tune with the Mission Makers overall goals.

I'll have to think about it. If anyone else wants to chime in, I would be very happy.

-k

Share this post


Link to post
Share on other sites

@nkenny

 

1- how about making the AI hide behind windows always or give the window position higher priority?

 

2- i actually tests using zeus all the time the only solution i found from my experience is playing against defending AI and killing them all this way your friendly AI will not chase after someone else

or you can write a script that triggers safe/normal/hold mode for the winning side when fleeing script is active , i wish to help you write such script but sadly im noop at scripting ...

one more thing i noticed that the AI tanks will never use their HE rounds against AI/light vehicles would be a sight seeing tanks engage infantries with HE shells ( RHS and other mod's BMP-1s uses their HE rounds this is fact )

btw the artillery feature is just awesome it works even with ZEUS placed units

Share this post


Link to post
Share on other sites

From a mission makers perspective, some way you force the AI to hold an area or only advance a little would be great. I haven't used the latest version yet but I do know that in earlier versions the "intelligence" of the AI was great, but they did seem a little too aggressive assaulting the players positions at times rather than hunkering down and waiting for the player to come to them if they had cover.

Also is there some way we could have an option to differentiate between factions?
Eg you can have a more "professional" force that reacts differently to a more "ragtag" militia for instance?  

 

  • Like 1

Share this post


Link to post
Share on other sites

@JD Wang
At the moment, no.  It is what I would like to cover with the profiles concept. Basic idea being that instead of solely tuning skill settings-- which are opaque at best of times-- you simply trigger a profile selection.  I guess in hindsight defensive could be one of them.

-k

  • Thanks 1

Share this post


Link to post
Share on other sites

 

On 2/19/2020 at 2:01 PM, nkenny said:

4. Never. It is a design goal of the core component that LAMBS Danger merge seamlessly. This means never altering existing waypoints nor toggling enableAI/disableAI features.  The waypoints are stood somewhat beyond this design goal and are allowed to push the envelope. The logic being simply this:  When LAMBS WPs or custom scripts are used, they are meant to be used by the mission maker. 

 

Thanks, that's definitely the way to go with WPs etc and helps so much!

 

8 hours ago, nkenny said:

Another option may be to read 'HOLD' waypoints and possibly 'Guarded by' positions in a more strict mannerÔĽŅ.¬† These locations are expected to be held. Essentially,¬† those which are marked as 'Guarded by', hence assigned by theÔĽŅ Mission Maker as areas of interest.¬† Adding an intelligence with these elements may give the AI intelligence the type of information it requries to make sensible decisions in tune with the Mission Makers overall goals.ÔĽŅ

 

This gets my vote.  Seems Lambs AI don't particularly adhere to tenant of "AI leader moves to his WP, then stay there".  (Perhaps vanilla AI don't 100% either, but seems Lambs much less so.)  Certainly some way to force them to at least try and stay would be extremely useful.  Seems leveraging 'HOLD' WP would be just the thing.

 

I've got some good insight one area of (Lambs) "lack of squad cohesion" issue:

 

Seems often the group leader is going at full speed, while all his (potentially many) subordinates are at walking speed.  In this case leader gets WAY out front of his men.  When I run up and call "_unit forceSpeed -1" on various subordinates, each of those guys returns to full speed and catches up to group leader.  This is all with the group on speedMode "NORMAL", so leader should be slowing down for his subordinates.  Anyhow this explains (at least partially) why previously when playing with Lambs, seems like I was very often coming up against one enemy at a time (in this case the group leader which left his men behind).  Pretty sure subordinate slowness is happening with "_group enableAttack false" as well.  In any event, doesn't seem to have to do with them going after targets or anything (although they may know about targets, as they did automatically enter Combat mode).

 

More details on this:

Spoiler

The funny thing is, I noticed this (group leader at full speed while subordinates walking) mostly on groups where I disabled Lambs at the group level.  I'm randomly disabling Lambs at group level 50% of the time.  And on those 50% (with Lambs disabled at group level), randomly 50% of the time I'm also disabling Lambs at the unit level on all of that group's units.  Unfortunately not sure which combination (Lambs disabled at group only -vs- Lambs disabled at group + disabled at units) causes this exactly, but when I figure it out I'll report back.

 

Also, I've noticed many units stuck going slow once they are joined to other groups (which can be resolved to full speed again with "_unit forceSpeed -1").  For instance, I'm letting Lambs always run on my enlistable fighters groups.  When player enlists them, they join player's group.  But then sometimes they are stuck going slow, which is very noticeable when you order them in as truck driver and try to send them somewhere.  Truck barely crawls along (unless you know to "_unit forceSpeed -1" driver to get them going).

 

^ Observed all this during many hours of troubleshooting Lambs on my mission, watching all the men as icons on map.  Anyhow, hope this helps some at least.

 

I suspect this is also causing enemy AI vehicle drivers to get stuck going slow around the map, because in many Lambs play-throughs, something is causing fewer vehicles to get where they are suppose to be going (in this case to capture flags).  I know 100% from past experience creating my mission, that using forceSpeed to limit the speed of vehicle drivers can (and will) cause them to get their vehicle completely stuck (often when going off-road or climbing a hill).  Again, I only suspect Lambs in this case (not proven or anything).

 

Anyhow, the "low forced speed" problem is so bad right now, I've got "_unit forceSpeed -1" running on pretty much all units randomly on a Loop (calling it on all units within group at once).  Seems to be helping quite a bit!

 

 

Thanks again for your efforts!¬† Please keep going.¬†ūüôā

 

  • Like 1
  • Thanks 1

Share this post


Link to post
Share on other sites

Some of my squad will run back 100m stop and then say ready. This is in a open field situation. Are they meant to be doing this? I feel like i'm having to tell them to regroup a lot. Maybe it's because i play liberation more than editor based missions using waypoints

Share this post


Link to post
Share on other sites

Is it possible that the latest version includes some code or config to remove dead bodies after a short while?

(If that is actually a feature I would love to be able to switch it off ūüėČ)

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

√ó