View Issue Details

IDProjectCategoryView StatusLast Update
0000512The Dark ModAIpublic29.06.2009 08:05
Reportercrispy Assigned Toangua  
PrioritynormalSeveritynormalReproducibilityalways
Status closedResolutionfixed 
Product VersionSVN 
Fixed in VersionSVN 
Summary0000512: AI run in circles when pathing to airborne locations
DescriptionOne of the myriad weaknesses of the D3 pathing code is that sometimes a point hanging in the air will be treated as "reachable" by AAS, but will never be counted as "reached" by the AI code. This results in AI uninterruptably running around in a circle underneath that point. Currently they also "skate" a bit when they do this.

Cause: AAS is marking certain airborne points as "reachable" when they're actually not.

How to reproduce: This can be easily reproduced by attracting the attention of an AI and noclipping to somewhere above it. I've also encountered it in a non-artificial setting when jumping around between crates in test/pickpocket.map; if an AI sees the player while the player is airborne, and the player subsequently moves out of view, then the AI will try to path to the player's airborne location indefinitely.

Forum discussion thread: http://modetwo.net/darkmod/index.php?showtopic=7155
Additional Information(This was not an issue in vanilla D3, probably because their AI was scripted to path to the player entity, not a previous location of the player entity. We can't do that because our AI is not supposed to know the player's position unless they can see him; pathing to the player entity would effectively give them "forbidden knowledge", and make them nigh-impossible to shake off.)

I have a tentative patch to idAI::PointReachableAreaNum, which fixes this by doing a sanity check on the returned AAS area. If the goal position is too far above the floor of the AAS area, then it treats the point as unreachable.

I won't apply this just yet. See forums.
TagsNo tags attached.

Activities

crispy

crispy

26.06.2008 11:31

reporter   ~0001372

Reopening as per http://modetwo.net/darkmod/index.php?showtopic=7155
angua

angua

26.06.2008 18:32

manager   ~0001376

Moved the height check to PathToGoal.
Reachability checks in ChaseEnemyTask and CanHitEnemy didn't fit.

Issue History

Date Modified Username Field Change
13.01.2008 07:55 crispy New Issue
13.01.2008 07:55 crispy Status new => assigned
13.01.2008 07:55 crispy Assigned To => crispy
13.01.2008 07:56 crispy Description Updated
13.01.2008 07:57 crispy View Status private => public
20.01.2008 08:37 crispy Status assigned => resolved
20.01.2008 08:37 crispy Fixed in Version => SVN
20.01.2008 08:37 crispy Resolution open => fixed
01.05.2008 07:17 greebo Status resolved => closed
26.06.2008 11:31 crispy Status closed => feedback
26.06.2008 11:31 crispy Resolution fixed => reopened
26.06.2008 11:31 crispy Note Added: 0001372
26.06.2008 11:31 crispy Status feedback => assigned
26.06.2008 18:29 angua Assigned To crispy => angua
26.06.2008 18:32 angua Status assigned => resolved
26.06.2008 18:32 angua Resolution reopened => fixed
26.06.2008 18:32 angua Note Added: 0001376
29.06.2009 08:05 greebo Status resolved => closed