Jump to content

Recommended Posts

when it decreased in older games, what was it based on? also only large distance or blocked line of sight too? i remember it always being not very reactive or dynamic. atleast not in a way that would represent anything human/realistic. that's why i'm curious about people's interpretation of its values.

It represents how sure they are about what they saw. If you actually are on the enemy side, and a tank, and a t-90 (if knowsabout is high enough). If you saw a tank and then it left your view you wouldn't slowly forget that it was a tank, you would remember that you saw a tank until it is no longer relevant at all, in which case you can forget all about it. At least thats how i interpreted the lack of 'slowly forgetting' when it comes to knowsabout.

EDIT: To be honest, i havent looked at the actual 'magic values' in a while, just used to to check if one knew something about another one, so i have no idea what value represents what at the moment. In older games i used the actual values in some sort of target priority script.

Share this post


Link to post
Share on other sites

knowsAbout isn't really the best command for any AI detection diagnostics.

Will add something little more precise.

edit: rev 131499

[target is known by group,

target is known known by unit,

last time target was seen by unit,

last time target endangered unit,

target side,

target position error coef,

target position] = player targetKnowledge target

Edited by Dr. Hladik

Share this post


Link to post
Share on other sites

I added the aiAmmoUsageFlag to the biki

Regarding AI targeting i have a question (related to modding): What determines the aiming direction of a weapon a turret (on a vehicle) for proper AI aiming ? Because using custom memory points appears to cause problems

Share this post


Link to post
Share on other sites

[target is known by group,

target is known known by unit,

last time target was seen by unit,

last time target endangered unit,

target side,

target position error coef,

target position] = player targetKnowledge target

Looking good!

Yet, I got a bunch of questions:

  • Are the first two values just BOOL, or are these SCALAR again (maybe on a normalized scale)? Or is the "uncertainity" or "degree of knowledge" solely encoded by the "target position error coef"?
  • Does the third parameter (last time target was seen) allow to reliably recognize the first time some unit has been detected (without need for manual bookkeeping; e.g. if this time is 0, then that's *for sure* the first sighting/contact of/with target)?
  • What exactly does "endangered" mean? Is knowledge+sideEnemy enough? Is there some distance check? Does the target need to have already fired at unit?

^^ No need to answer here, as long as the community wiki will answer these questions, once the command shows up over there. ;)

Btw. what do you think about detecting (enemy)/being detected(by enemy) *event handlers* that could be attached to single units or groups? The functionality exists somewhat, working with triggers. But thats not only cumbersome to use (for pure scripting anyways), but I guess it doesn't scale too well (triggers are checked each frame, for all triggers, right?). Guess some message passing behind the scenes firing those events could do much better - especially with many groups running around with such event handlers (or a bunch of triggers), no?

Share this post


Link to post
Share on other sites
knowsAbout isn't really the best command for any AI detection diagnostics.

Will add something little more precise.

edit: rev 131499

[target is known by group,

target is known known by unit,

last time target was seen by unit,

last time target endangered unit,

target side,

target position error coef,

target position] = player targetKnowledge target

Beer that man!

Share this post


Link to post
Share on other sites
Btw. what do you think about detecting (enemy)/being detected(by enemy) *event handlers* that could be attached to single units or groups?

Something like this would be nice to have, maybe we could get a "DangerCause" eventhandler so that we could muck around with the dangercause stuff outside of danger.fsm (or where ever they are passed into)?

Might also be useful to have some sort of event/command for detecting what the AI is aiming at (basically cursorTarget for AI), etc..

Share this post


Link to post
Share on other sites
knowsAbout isn't really the best command for any AI detection diagnostics.

Will add something little more precise.

edit: rev 131499

[target is known by group,

target is known known by unit,

last time target was seen by unit,

last time target endangered unit,

target side,

target position error coef,

target position] = player targetKnowledge target

:D

ENGINE

Added: Object transparency can be specified in surfaces for AI detection

Am I understanding correctly that data needs to be updated so no idea to test this ATM?

Great stuff!

/KC

Share this post


Link to post
Share on other sites
knowsAbout isn't really the best command for any AI detection diagnostics.

Will add something little more precise.

edit: rev 131499

[target is known by group,

target is known known by unit,

last time target was seen by unit,

last time target endangered unit,

target side,

target position error coef,

target position] = player targetKnowledge target

Looks good, perhaps it could also return <target is known by side> as well seeing as that is a way you can check for knowsAbout. :)

Share this post


Link to post
Share on other sites
it could also return <target is known by side> as well seeing as that is a way you can check for knowsAbout. :)

Uhm, I'm not really sure this works exactly according to the rules of "knowledge sharing", or does it? If target is known by side, does then simply any unit (or group) know about that target? Or does this actually mean, that the virtual command-center/HQ of the side got informed about that target? :confused:

Okay, can anyone shed some (more) light on this?

Let's recap (please correct me where wrong):

  1. It all starts with a single unit getting aware of an enemy, the rest of the group doesn't know of anything yet.
  2. This knowledge can be communicated from the unit to the leader/rest of the group now: either with or without radio, right? I assume, with radio will be much faster, hu? Are there other conditions in case the unit does *not* have a radio? Or is the radio a must to share knowledge?
  3. What about group to side now? There exists a virtual command-center/HQ, right? So a group - if radio is equipped? - can inform the HQ, which then in return relays the knowledge to all other groupes of the side (again with radio? Does the leader of a group need one; or is it fine if at least one unit in a group has a radio?). Is this about correct? This is pretty much the juice behind the "support" waypoint, right?

When does "the side" know something? The moment the HQ is called by some group?

Yet this doesn't mean that now all groups know as well, right?

And what about the delays (or min. communication requirements in terms of time to react/inform the guys a level up). How does this work exactly, and should we - as mission designers - be able to maybe configure communication possibilities (as in knowledge sharing; rules/timeouts/delays) in one way or another? :rolleyes:

Further: what if we could attach an "enemy detected/reported" event handler even to the virtual command-center/HQ - wouldn't that be useful too? :confused:

P.S. The community wiki might need a dedicated page about the concept of "knowledge/information sharing"; or am I missing something?

Share this post


Link to post
Share on other sites

when you say HQ are you talking about the center thingies you can create using createCenter? just curious.

Share this post


Link to post
Share on other sites

Absolutely, yes.

Note that (see createCenter):

Creates a new AI HQ for the given side. An 'HQ ' is something each side needs to have to be able to communicate. By default, all centers for units which are present in the mission are created before the mission is started.

Share this post


Link to post
Share on other sites
knowsAbout isn't really the best command for any AI detection diagnostics.

Will add something little more precise.

edit: rev 131499

[target is known by group,

target is known known by unit,

last time target was seen by unit,

last time target endangered unit,

target side,

target position error coef,

target position] = player targetKnowledge target

That is very nice, looking forward to mess around with it. :)

Share this post


Link to post
Share on other sites
Absolutely, yes.

Note that (see createCenter):

the reason i asked is that i never knew it would be used for communication. hence mods like grouplink and similar that would establish that missing connection.

so i wonder if the description is just off or if it's just a fancy way of saying: "yes we're saving in here if anyone on this side knows about dude X", when the communication is never actually happening eventhoguh the data is there.

so it would be more of a data pool you can use to make scripts that actually allow communication between groups drawing the data using knowsabout etc blabla.

just trying to get the exact picture of it here so this is mostly still a question (for confirmation of my current view on it).

Share this post


Link to post
Share on other sites
the reason i asked is that i never knew it would be used for communication. hence mods like grouplink and similar that would establish that missing connection.

so i wonder if the description is just off or if it's just a fancy way of saying: "yes we're saving in here if anyone on this side knows about dude X", when the communication is never actually happening eventhoguh the data is there.

so it would be more of a data pool you can use to make scripts that actually allow communication between groups drawing the data using knowsabout etc blabla.

just trying to get the exact picture of it here so this is mostly still a question (for confirmation of my current view on it).

There is communication (or at least some form of information sharing) between groups when you use the guard waypoint of course, though it all seems to be pretty hardcoded stuff.

Share this post


Link to post
Share on other sites
Looking good!

Yet, I got a bunch of questions:

  • Are the first two values just BOOL, or are these SCALAR again (maybe on a normalized scale)? Or is the "uncertainity" or "degree of knowledge" solely encoded by the "target position error coef"?
  • Does the third parameter (last time target was seen) allow to reliably recognize the first time some unit has been detected (without need for manual bookkeeping; e.g. if this time is 0, then that's *for sure* the first sighting/contact of/with target)?
  • What exactly does "endangered" mean? Is knowledge+sideEnemy enough? Is there some distance check? Does the target need to have already fired at unit?

After a short test:

1. both are bool

2. Nope, appears to be the same as time (so it's not 0 when first spotted, so you need the time - timespotted == 0 stuff etc.)

3. unit feels endangered when it recognises the target as enemy (I guess), if it gets shot by the target (bullet hits it/hits/whizzes by close enough)..

Nice addition, immediately renders some of my own workarounds obsolete :)

Edited by h -

Share this post


Link to post
Share on other sites

Wow, it's really heating up in here lately.

[target is known by group,

target is known known by unit,

last time target was seen by unit,

last time target endangered unit,

target side,

target position error coef,

target position] = player targetKnowledge target

Amazingly handy and straightforward, compared to parsing nearTargets, many thanks for that! :cool:

countEnemy, countUnknown, etc, will still come in handy I think. Also curious, does anyone know off hand if nearTargets result comes sorted (by distance or otherwise)?

Ruebe, great specific questions regarding knowledge sharing and createCenter. Always wondered about these very things. :)

Share this post


Link to post
Share on other sites

AI i think still detect player too easily and know the position to quickly.

i.e. in the dark with a recon sharpshooter 400m away triggers off my "detected by opfor" trigger...

how do they know it was NATO first of all.... plus there is no muzzle flash

Share this post


Link to post
Share on other sites

Probably same bug that let the AI instantly know about you once you touch off a satchel charge even though you are completely out of sight. This was described earlier in this thread.

Share this post


Link to post
Share on other sites
Probably same bug that let the AI instantly know about you once you touch off a satchel charge even though you are completely out of sight. This was described earlier in this thread.

whether anything will be done about it i dunno its been a problem since alpha to be honest

Share this post


Link to post
Share on other sites
AI i think still detect player too easily and know the position to quickly.

i.e. in the dark with a recon sharpshooter 400m away triggers off my "detected by opfor" trigger...

how do they know it was NATO first of all.... plus there is no muzzle flash

I just ran some tests and they don't show what you're seeing at all.

Here's a repro mission: https://dl.dropboxusercontent.com/u/101800212/KA.Stratis.7z

I had similar setup to you and the guy I was shooting around only ever had a vague idea where (or even who) I was.

The only time he got awareness (magic 1.5 value) was when I actually landed a bullet on him.

From the log:

23:24:59 "dist to man 472.509
man Knowsabout player [b]0[/b]
time: 0
nshots fired: 0"

23:25:24 "dist to man 442.955
man Knowsabout player [b]0.1[/b]
time: 25.128
shots fired: 1"

23:25:44 "dist to man 442.893
man Knowsabout player [b]0.155472[/b]
time: 45.114
shots fired: 2"

[b]blah blah up to 18 shots around him....[/b]

23:27:42 "dist to man 442.914
man Knowsabout player [b]0.155474[/b]
time: 165.587
shots fired: 18"

[b]then I hit him here[/b]

23:27:42 "dist to man 442.914
man Knowsabout player [b]1.5[/b]
time: 165.791
shots fired: 19"

So if you are getting spotted after firing 1 shot from 400m in the dark with a silencer, then either you hit him in which case he's perfectly entitled to be aware he's been shot and somewhat aware of you, or you're running mods or there's something wrong with your install.

As I say, try the repro if you want to dispute/confirm.

Share this post


Link to post
Share on other sites
then either you hit him in which case he's perfectly entitled to be aware he's been shot and somewhat aware of you[...]

That "somewhat aware of you" is a bit probelmatic, still. If you're being shot - out of the blue - you're most likely not able to pinpoint the attacker that quickly - if at all...

Wouldn't it be a good idea to take the current combat mode into account? I mean... before they switch to combatMode/danger dance, of course. Something along these lines, maybe:

  • CARELESS -> virtually no chance to pinpoint attacker and return fire (unless super obvious/too near or what not)
  • AWARE -> still problematic to immediately react properly to anything, since an attack still comes as a surprise.
  • COMBAT/STEALH -> pretty good chance to know where an attacker would come from, with reaction-times and spotting capabilities as they are currently.

Nobody is "combat ready" all the time, 24h a day.

Thus what I propose is a reaction/spotting-nerf depending on combat mode. The beauty of it being that the combat mode escalates from careless et al. to more aware states. Of course there should be a proper delay here, such that enemies (teams/groups even) can be taken out by surprise efficiently.

...of course, there (finally) needs to be a new reaction pattern to act without knowing where attacks come from: a better "run for cover, maybe pick up your shot mates first - if *courage* allows for it, crawl/hobble to the bushes on yer own, hide and regroup" kind of thing. Maybe some new animations too. Evasive maneuvers and stuff (animations that have only been used for cinematic purposes and similar highly scripted things so far, e.g. in the A2 campaign).

:yay:

Edited by ruebe

Share this post


Link to post
Share on other sites
So if you are getting spotted after firing 1 shot from 400m in the dark with a silencer, then either you hit him in which case he's perfectly entitled to be aware he's been shot and somewhat aware of you, or you're running mods or there's something wrong with your install.

As I say, try the repro if you want to dispute/confirm.

It might be worth trying again when the player has been detected (enemy knowsAbout >0), and then not seen for long enough for knowsAbout value to return to 0 (about 6 minutes). The satchel detection bug I posted only occurs in this situation (which is actually quite common in stealth missions).

see repro misison and steps: http://feedback.arma3.com/view.php?id=24590

Share this post


Link to post
Share on other sites
That "somewhat aware of you" is a bit probelmatic, still. If you're being shot - out of the blue - you're most likely not able to pinpoint the attacker that quickly - if at all...

Wouldn't it be a good idea to take the current combat mode into account? I mean... before they switch to combatMode/danger dance, of course. Something along these lines, maybe:

  • CARELESS -> virtually no chance to pinpoint attacker and return fire (unless super obvious/too near or what not)
  • AWARE -> still problematic to immediately react properly to anything, since an attack still comes as a surprise.
  • COMBAT/STEALH -> pretty good chance to know where an attacker would come from, with reaction-times and spotting capabilities as they are currently.

Nobody is "combat ready" all the time, 24h a day.

Thus what I propose is a reaction/spotting-nerf depending on combat mode. The beauty of it being that the combat mode escalates from careless et al. to more aware states. Of course there should be a proper delay here, such that enemies (teams/groups even) can be taken out by surprise efficiently.

...of course, there (finally) needs to be a new reaction pattern to act without knowing where attacks come from: a better "run for cover, maybe pick up your shot mates first - if *courage* allows for it, crawl/hobble to the bushes on yer own, hide and regroup" kind of thing. Maybe some new animations too. Evasive maneuvers and stuff (animations that have only been used for cinematic purposes and similar highly scripted things so far, e.g. in the A2 campaign).

:yay:

Yeah the current system is weird. I can see why it's the way it is but it's still a bit shit sometimes.

Why 0 to 4??? Why not 0 to 1 or some other scale? Anyway, that's beside the point. It would be totally forgivable in my book if we could either lower the knowsabout level manually or if troops would actually MOVE while in combat-mode. Either would be useful at this point.

I'd like a more in-depth detection system as well, but I'm okay with scripting in that sort of stuff for missions. A lot of the time you need the AI to do different stuff from mission to mission; so I think if they did have some sort of AI "brain" logic controlling groups and comms etc, then it would have to be a really flexible module to deal with all the different things that the playerbase could want from it.

As I say though, I'll be happy if they can:

1 - Get units in combat moving to where they're actually supposed to

2 - Sort out the driving (apparently done and they're waiting on some terrain thing (wrp)? to publish it)...

---------- Post added at 12:43 AM ---------- Previous post was at 12:28 AM ----------

It might be worth trying again when the player has been detected (enemy knowsAbout >0), and then not seen for long enough for knowsAbout value to return to 0 (about 6 minutes). The satchel detection bug I posted only occurs in this situation (which is actually quite common in stealth missions).

see repro misison and steps: http://feedback.arma3.com/view.php?id=24590

Hi,

I just tried your suggestion, so after waiting for him to reset to 0, when you next fire NEAR him, it jumps to 1.5 instantly

0:36:39 "dist to man 458.161
man Knowsabout player 1.5
time: 435.427
shots fired: 7"

But then reduces to 0 within a minute.

 0:37:34 "dist to man 458.187
man Knowsabout player 0
time: 545.457
shots fired: 7"

So it looks like it never truly deletes the information.

I think I'll do this again and see what his nearTargets is up to as well. Maybe I'm still in there somewhere.

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

×