View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0003755 | The Dark Mod | AI | public | 18.06.2014 01:44 | 17.07.2014 18:58 |
Reporter | Springheel | Assigned To | grayman | ||
Priority | normal | Severity | normal | Reproducibility | have not tried |
Status | resolved | Resolution | fixed | ||
Product Version | TDM 2.02 | ||||
Target Version | TDM 2.03 | Fixed in Version | TDM 2.03 | ||
Summary | 0003755: Running AI getting caught up on doors | ||||
Description | pursuing AI seem to be getting caught up on closed doors. If I'm running and I close a door behind me, AI frequently wind up running circles behind it (I can see their weapon poking through the door as they circle). Sometimes they just circle once or twice, but other times they do it for a good fifteen or twenty seconds. In the incident above, when the guard spotted me I ran into the bathroom and closed the door with the guard right behind me. It was then a good thirty seconds before the door opened. I wonder if it might be a good idea to eliminate the door_open animation at all when the AI is running? Could the door just open automatically when the AI gets within range? | ||||
Tags | No tags attached. | ||||
When an AI is finished with a door, the door is marked with a delay after which it can be used again. This prevents pathfinding from sending an AI back through a door they just came through. Two changes were made to this: 1) Don’t use the delay if you finish handling a door before you go through it. This can happen when an AI loses his door-handling task and immediately goes back to using the door. If you run from an AI and close a door behind you, the AI has lost sight of you, and momentarily kills his door-handling task and starts a task to spot you again. That causes him to reuse the door immediately. Since he didn’t go through the door, there shouldn’t be a delay before he can use it again. 2) Reduce the delay from 3s to 100ms. While very short delays didn’t used to work, they appear to work now. The result of these two changes is that an AI will spend less time opening a door to continue chasing you. Another change was to increase the rate on the animations used to open the door. A corresponding change to the code to still pick the correct time to start opening the door was needed. This is used as the default now, whether an AI is in a hurry or not. If an AI is running through a closing door, and he can get enough of himself into the doorway to block the door’s movement, the door bangs back at double speed. This simulates the AI putting his shoulder into the door to knock it open. AI use the door-handling mid positions for determining which side of a door they’re on. The two mid positions aren’t the same distance from the closed position of a rotating door, which was causing problems when trying to determine “door-side” when close to a door. Added equidistant side markers to make the “door-side” calculation more accurate. This shouldn’t be a problem in 2.02; it became a problem here because of a few things that needed to be decided when very close to the door. A running AI opening a door now causes the door to open at double the normal speed. A door that has controllers won’t open at double speed for a running AI, because the controller “controls” the door speed, not the overly-anxious AI. Rev. 6060: State.cpp HandleDoorTask.cpp HandleDoorTask.h PathCornerTask.cpp AI.cpp AI_pathing.cpp DoorInfo.cpp DoorInfo.h Push.cpp BinaryFrobMover.cpp BinaryFrobMover.h FrobDoor.cpp FrobDoor.h Mover.cpp Mover.h UserManager.cpp Rev. 13915: tdm_ai_base.script tdm_ai_female_animations.def tdm_ai_guard_proguard_devel.def tdm_ai_humanoid_newskel.def |
|
Date Modified | Username | Field | Change |
---|---|---|---|
18.06.2014 01:44 | Springheel | New Issue | |
18.06.2014 19:35 | Springheel | Relationship added | parent of 0003572 |
08.07.2014 14:19 | grayman | Assigned To | => grayman |
08.07.2014 14:19 | grayman | Status | new => assigned |
17.07.2014 18:58 | grayman | Note Added: 0006726 | |
17.07.2014 18:58 | grayman | Status | assigned => resolved |
17.07.2014 18:58 | grayman | Resolution | open => fixed |
17.07.2014 18:58 | grayman | Fixed in Version | => TDM 2.03 |