voodoo47 on 26/9/2018 at 09:03
(
http://thief.wikia.com/wiki/DromEd/Properties/AI/Responses/Signal_Response) - trying to figure out what the priority does (mostly when sending an AI from one spot to another), found some out by trial and error;
Default/None -
Very Low - stops after spotting the player, or if finds slain AIs along the path
Low - stops after spotting the player, but ignores slain AIs along the path
Normal -
High -
Very High - ignore everything, but death will stop them
Absolute - nothing stops the AI, not even death
any idea about the rest?
vfig on 27/9/2018 at 02:56
This is very rough based on a few minutes looking into the code, but here goes: AIs pick their next goal when their current goal is completed, or when something happens (like an alertness change) that signals them to choose a new goal immediately.
When picking a goal, the highest priority goal among the current options is chosen.
If that's a tie, then the type of the goals are compared: the more important one wins.
If it's still a tie, then the goals are compared to see if one of them relates to a player; if so, it wins.
And the final tie breaker is to pick whichever goal is closest to the AI.
This isn't quite the whole story, because in addition to goals, AIs have different modes: combat mode and non-combat mode at least. And things like spotting the player or bodies or suspicious objects is tied into the awareness system, which feeds alertness, which then gives the AI new goals like investigating or attacking—and it's complicated for me to follow how all that links together.
But here's the priorities for the standard AI goals, and the ranking of the different types of goals at least:
Standard priorities:
Idle: very low
Investigate: low
Patrol: low
Start conversation: low
Follow: normal
Inform other AIs: normal
Non-combat damage response: normal
Pseudoscript actions (default): normal
Watch actions (default): normal
Combat: high
Flee: high
Die: very high
Freeze: very high
Stun: very high
Goal types (in increasing importance):
Idle
Goto location
Follow
Investigate
Converse
Custom
Defend
Attack
Flee (note: both the stun and freeze goals use the Flee type, so they rank here)
Die
voodoo47 on 27/9/2018 at 11:30
hmm.. so that would translate into if signal priority is set to "normal", the AI will not stop to investigate slain AIs, as that is action is ranked as "low" etc, correct?
vfig on 27/9/2018 at 21:37
That looks correct.
I threw together a test map to be sure. Set up an AI with a Normal priority signal response to go to a marker, then sent the signal to set them off. As they were walking, I dropped a body in front of them. They noticed it and yelled "murder!", but just kept on walking. Once they reached the marker about 10 seconds later, they then started investigating (since they were still alerted and aware of the body).
voodoo47 on 28/9/2018 at 08:18
thanks - was hoping things would be slightly less complicated, but ah well.
vfig on 28/9/2018 at 08:32
What is it you're trying to achieve? If you want them to ignore bodies, then the "Notices bodies" property is probably better. If you want them to stop and investigate when they see the body, then use low priority for your response, because the low priority investigate action should win out over the low priority goto.
voodoo47 on 28/9/2018 at 10:45
nothing in particular (anymore), I was just thinking that a short, simple description of each signal priority level could be handy in the future, but it looks like things are way more complex than expected.
vfig on 28/9/2018 at 23:20
Does rearranging it this way make it a little easier to figure out?
Standard AI goals at each priority level, ranked high to low:
Absolute: (no standard AI goals use absolute priority)
Very high: Die, Freeze/Stun
High: Flee, Attack/Defend
Normal: Damage response, Inform (Investigate), Follow
Low: Patrol (Goto), Investigate
Very low: Idle
Your pseudoscript actions run at a default priority (Normal for watch and response pseudoscripts, Low for conversations), or at a different priority if you choose it. Pseudoscript actions will only beat the standard AI goals of the same priority if they are higher in this ranking (high to low):
Ranking at equal priority: Die, Flee/Freeze/Stun, Attack/Defend, Investigate, Follow, Goto location, Idle