View Issue Details

IDProjectCategoryView StatusLast Update
0002924The Dark ModAIpublic21.03.2013 05:01
ReporterSpringheel Assigned Tograyman  
PrioritynormalSeveritynormalReproducibilityalways
Status resolvedResolutionfixed 
Product VersionTDM 1.07 
Target VersionTDM 2.00Fixed in VersionTDM 2.00 
Summary0002924: AI react too fast to missing objects
DescriptionThe way AI react to stolen objects is a bit unrealistic at the moment. The AI reacts the instant the marker enters his POV, so an AI opening a door to a robbed room will shout about being robbed before the door has even finished swinging open. In reality, a human being would take a few seconds to notice something missing, even if it were relatively large. Perhaps some kind of artificial delay could be added?
TagsNo tags attached.

Activities

grayman

grayman

19.11.2011 04:37

administrator   ~0004157

Yes, we can add a delay.

How about 3 seconds?

Prior to starting the delay, the stim will be turned off for this AI so it doesn't ping him again, especially during the delay. Don't want things piling up.
tels

tels

19.11.2011 21:36

reporter   ~0004166

I'd rather not add fixed delays (even if they are configurable via spawnarg on an idividual AI basis), but rather a generic "reaction delay". The reason is we need a similiar delay when you throw a box at an AI, when you peek around a corner etc etc. All these would need some sort of "human reaction delay".

And 3 seconds is a bit large, I'd say on the order of 0.8 .. 1.2 seconds (could that scale with the gameplay setting of how fast/though our AI is?) plus a random part (that is depending on the lighting, e.g. if it is dark, they take longer to notice?

The reason why our current "throw dice and calculate change if I saw it" system doesn't work is because if you are unlucky, you (or the missing object) get seen/detected instantantously. E.g. in 9 out of 10 cases you are not see on the first check, but 1 out of 10 times you are seen superhumanfast.

It would be better if there was a "dead time" in all these cases.
Springheel

Springheel

20.11.2011 21:45

administrator   ~0004170

2-3 seconds would be fine with me.
CodeMonkey

CodeMonkey

07.10.2012 13:28

reporter   ~0004871

Last edited: 07.10.2012 13:32

View 3 revisions

I think it would be better to have them actually notice missing items.

You could create a "stolen_item" stim.

Basically, when the thief adds the item to his inventory, it could start sending a short range alert that something is missing, so, when a guard comes into the area on patrol and comes into it's range, he would "notice" the missing item.

Ideally, you could remember the items starting point, and focus the stims alert radius from that location. (It would basically function like an event trigger, or waypoint, etc,.)

grayman

grayman

07.10.2012 14:03

administrator   ~0004872

When a mapper wants AI to notice a missing item, he marks it with the spawnarg "absence_noticeability/1". When the player frobs that item and it goes into his inventory (or he just picks it up and moves it elsewhere), an absence marker is dropped at that location, and it sends out a visual stim that's picked up by passing AI. If there's enough light and a direct LOS, the AI will react to the item being gone.

The subject of this issue is that AI can react too quickly to this stim.
Springheel

Springheel

07.10.2012 14:05

administrator   ~0004873

Last edited: 07.10.2012 14:06

View 2 revisions

That's pretty much exactly how it works. The tracker is referring to the speed at which AI reacts to the 'stim'.

"The AI reacts the instant the marker enters his POV, so an AI opening a door to a robbed room will shout about being robbed before the door has even finished swinging open."

edit: ninja'd :)

CodeMonkey

CodeMonkey

07.10.2012 14:15

reporter   ~0004876

I misread that part, I thought you meant their alert stim(ie, suspicion) was just going off immediately, or something.

Well, if you've already gotten LOS, etc, then I suppose a timer is about the only option left.

Hmm, sorry I couldn't be anymore help. :(
grayman

grayman

07.10.2012 14:27

administrator   ~0004877

Np. We appreciate your interest, as we are always looking for help.
grayman

grayman

21.03.2013 05:01

administrator   ~0005226

Added a 1.5s->3s delay between an AI being stimmed by certain visual stims and when the AI processes the stim. The stims include:

AIUSE_WEAPON
AIUSE_DOOR
AIUSE_SUSPICIOUS
AIUSE_BLOOD_EVIDENCE
AIUSE_MISSING_ITEM_MARKER
AIUSE_BROKEN_ITEM

Other visual stims (doused lights, actors, etc.) have already been fine-tuned for timing, and don’t need extra processing delays.

Stopped AI from processing and possibly responding to messages meant for other AIs. This was causing a room full of AI that had witnessed a theft to chatter on endlessly after going back on patrol, as one AI after another warned another AI and everyone else responded.

rev. 5720:

CombatState.cpp
CombatState.h
State.cpp
State.h
AI.h
AI_events.cpp

Issue History

Date Modified Username Field Change
13.11.2011 23:57 Springheel New Issue
19.11.2011 04:37 grayman Note Added: 0004157
19.11.2011 04:37 grayman Status new => feedback
19.11.2011 21:36 tels Note Added: 0004166
20.11.2011 21:45 Springheel Note Added: 0004170
20.11.2011 21:45 Springheel Status feedback => new
12.03.2012 20:18 tels Relationship added related to 0003063
07.10.2012 13:28 CodeMonkey Note Added: 0004871
07.10.2012 13:29 CodeMonkey Note Edited: 0004871 View Revisions
07.10.2012 13:32 CodeMonkey Note Edited: 0004871 View Revisions
07.10.2012 14:03 grayman Note Added: 0004872
07.10.2012 14:05 Springheel Note Added: 0004873
07.10.2012 14:06 Springheel Note Edited: 0004873 View Revisions
07.10.2012 14:15 CodeMonkey Note Added: 0004876
07.10.2012 14:27 grayman Note Added: 0004877
20.03.2013 20:54 grayman Assigned To => grayman
20.03.2013 20:54 grayman Status new => assigned
20.03.2013 20:55 grayman Relationship deleted related to 0003063
21.03.2013 05:01 grayman Note Added: 0005226
21.03.2013 05:01 grayman Status assigned => resolved
21.03.2013 05:01 grayman Resolution open => fixed
21.03.2013 05:01 grayman Fixed in Version => TDM 2.00
21.03.2013 05:01 grayman Target Version => TDM 2.00