View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0003647 | The Dark Mod | AI | public | 11.01.2014 05:24 | 04.04.2014 19:32 |
Reporter | grayman | Assigned To | grayman | ||
Priority | normal | Severity | normal | Reproducibility | sometimes |
Status | resolved | Resolution | fixed | ||
Product Version | TDM 2.01 | ||||
Target Version | TDM 2.02 | Fixed in Version | TDM 2.02 | ||
Summary | 0003647: AI will sometimes circle beneath a goal path_corner on the floor above | ||||
Description | Noticed this in two places of Home Again, where the same guard can circle in two spots in the lower storage room, when his goal path_corner is up on the upper storage room. It looks like pathfinding isn't sending him along the correct route to his goal, and he is getting stuck beneath the goal. Since he can never get to the path_corner, he circles, trying. For Home Again, I'm redesigning the patrol. But this problem should be fixed. The version exhibiting the problem is ws2_homeagain145.map. | ||||
Tags | No tags attached. | ||||
The guard having the problem is Stevens. There's an elevator nearby. Maybe it's causing the problem. |
|
I saw this again while testing the picked pocket code. An elevator was present on the other side of an open door. After re-dmapping, the problem stopped. Might have something to do with a bad AAS outcome of a damp. Or it might have something to do with an elevator being somewhere on the path. Edit: Leaving the door between the AI and the elevator closed allowed the AI to path properly. Opening the door caused the AI to start circling. So opening the door exposes the AI to the elevator. Something's wrong with the goal that the pathing routine gives back to the AI under these conditions. |
|
Don't know if this is actually relevant to this issue, but while testing my map I had a guard who was alerted by an alarm in the basement while he was on the main floor, and I found him running in circles in the room he started in. There were no elevators in the map, just stairs and two doors between him and the location of the alarm. If I see it again I'll save a copy of the map. |
|
Okay, thanks. I've only seen permanent circling these days in two maps: Home Again (until I changed the path corners so it stopped happening) and the pickpocket test map I'm working with atm. Both incidents happened near elevators. Closing in on the bug. Is there a path_corner for the circling guard somewhere directly above or below him? |
|
No. He was a sitting character who had an alert_only pathnode outside the building. But at the time of circling he was fully alert trying to respond to an alarm that had sounded in the basement. | |
Perhaps he was just stuck in a tight area? | |
Found the problem. Having both an elevator and an open door on a long path exposed a problem where the AI wasn't being given a goal near the door in order to go through it. He was continually being given the final goal, which messed up getting through the door. | |
Aaaand found another problem. A small window between pushing a task and actually starting it allows other tasks to sneak in. This was disturbing the relationship between handling a door and handling an elevator. | |
Two spots in the door handling task needed to give the AI somewhere to go. Needed better coordination between the door handling and elevator handling tasks. In the 4 frames between killing an elevator task and starting a door task, another elevator task was allowed onto the task queue. This extra task was causing problems when the door task finished. Added a PopMove() variant that doesn’t restore the popped move. This prevents unnecessary pathfinding. Fixed a problem that happens when you hit an AI on an elevator with a moveable. He reacts to the hit, flushes the elevator task, and has pathing problems when he goes back to pathing and he’s on the moving elevator between floors, where there are no AAS areas. Needed to add a pause to the pathing task in that situation, to give the elevator time to reach the next floor and get the AI back on an AAS area. Rev. 5945: State.cpp HandleDoorTask.cpp HandleElevatorTask.cpp PathCornerTask.cpp PathCornerTask.h ResolveMovementBlockTask.cpp AI.cpp AI.h MovementSubsystem.cpp MovementSubsystem.h |
|
Date Modified | Username | Field | Change |
---|---|---|---|
11.01.2014 05:24 | grayman | New Issue | |
11.01.2014 05:24 | grayman | Status | new => assigned |
11.01.2014 05:24 | grayman | Assigned To | => grayman |
11.01.2014 05:38 | grayman | Note Added: 0006345 | |
11.01.2014 05:40 | grayman | Note Edited: 0006345 | |
26.03.2014 14:44 | grayman | Note Added: 0006466 | |
26.03.2014 15:27 | grayman | Note Edited: 0006466 | |
26.03.2014 20:23 | Springheel | Note Added: 0006467 | |
26.03.2014 20:23 | Springheel | Note Edited: 0006467 | |
26.03.2014 20:23 | Springheel | Note Edited: 0006467 | |
26.03.2014 21:31 | grayman | Note Added: 0006470 | |
26.03.2014 23:46 | Springheel | Note Added: 0006471 | |
27.03.2014 00:35 | grayman | Note Added: 0006472 | |
27.03.2014 04:33 | grayman | Note Added: 0006473 | |
28.03.2014 00:27 | grayman | Note Added: 0006476 | |
04.04.2014 19:32 | grayman | Note Added: 0006490 | |
04.04.2014 19:32 | grayman | Status | assigned => resolved |
04.04.2014 19:32 | grayman | Resolution | open => fixed |
04.04.2014 19:32 | grayman | Fixed in Version | => TDM 2.02 |
04.04.2014 19:32 | grayman | Note Edited: 0006490 |