Mantis Bug Tracker

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0000797Dwarf FortressPathfindingpublic2010-04-08 08:352011-11-13 05:17
Reporterking doom 
Assigned To 
PrioritynormalSeveritymajorReproducibilityalways
StatusnewResolutionopen 
PlatformOSOS Version
Product Version0.31.01 
Target VersionFixed in Version 
Summary0000797: Animals/pets repeatedly try to find path through pet-locked/"tightly closed" doors, causing lag
DescriptionDoors can be set to stop pets and animals moving through them, but they do not stop pathfinding calculations from planning routes through them, leading to swarms of animals headbutting doors, choking your PC to death as they try again and again to move down the same route over and over, despite the fact there is a door in the way.
Steps To ReproduceBuild a corridor with an exit where an animal might want to go. A cat and the surface works well, as the cat will try and wipe out every vermin in existence on the surface. Make a door, place the door in the corridor, mark it tightly closed, watch the game slowly choke to death and die.
Tagsdoor, leftover from 40d, pathfinding, pet
Attached Files

- Relationships
related to 0001340new Walling off HFS kills FPS 
related to 0002945new Animal trainer selects animal behind pet-impassable door, waits forever for animal to arrive at kennel 

-  Notes
(0002104)
Squirrelloid (reporter)
2010-04-08 11:29

This was true in .40d as well. Animals pathfind as dwarves and get surprised when they can't go through tightly closed doors, and just sit there and try to repath repeatedly. Since pathing thinks they can go through the tightly closed door, they keep trying. Processor issue: the animal is continuously calling the pathfinding code.

Quick test: get an animal trapped in a room with 2 doors. Lock one and tightly close the other. Watch the animal move to the tightly closed door and sit there with a '?' flashing. Switch which door is locked and which is tightly closed. Animal moves to the new tightly closed door.
(0010830)
MaDeR Levap (reporter)
2010-07-22 10:31

I suppose this would require separate map of pathable tiles in memory, at least two versions (for animals and for everything else). Funny thought: how would be memory req for having separate path tile map for each living entity? This could allow things like forgetting about part of fortress for this dorf that got hit in head recently. But I do not see this being implemented any time soon.
(0010837)
OzoneGrif (reporter)
2010-07-22 10:41

For gameplay purposes,
tightly closed doors should prevent animals from passing through...

It's pretty much useless right now because your animal will pass along with a dwarf, then get stuck in the room and can't go out until another dwarf comes.
(0010839)
smjjames (reporter)
2010-07-22 10:45

Its a very old issue, I don't know how far back it goes, but certainly before 40D.
(0010856)
eatatree (reporter)
2010-07-22 21:11

This happens to me as of 31.10, and also happened in 40d.
(0016657)
Lav (reporter)
2011-03-27 01:52

Not sure about Dwarf Fortress, but at home my cat is *constantly* trying to path through closed doors, meowing in dismay when he cannot. :-)

Besides, this animal behavior is actually pretty useful in many situations.
(0018977)
TBeholder (reporter)
2011-11-13 05:17

The main performance problem IMHO is that everything tries to path into everywhere. If critters at least occasionally preferred random wandering (a job with a set probabilty to pop up at each new job "?") within their sight, they would still fail, but won't have to recalculate the way around half of the map when they fail.
This doesn't mean they won't occasionaly try to pass closed doors even in wandering mode.

Having dragons beeline to your doors may have some sense (they have heard about you and are overconfident), but for mindless critters like scorpions there aren't great reasons for map-wide clairvoyance.

As to learning critters, a simple compromise is to mark food/danger/potential consorts met during wandering in a set (per critter) number of (decaying/renewable at a set rate) waypoints would need much less memory than a full mental map (even ONE, let alone per critter).

- Issue History
Date Modified Username Field Change
2010-04-08 08:35 king doom New Issue
2010-04-08 10:57 king doom Tag Attached: pathfinding
2010-04-08 10:57 king doom Tag Attached: door
2010-04-08 10:57 king doom Tag Attached: pet
2010-04-08 11:29 Squirrelloid Note Added: 0002104
2010-07-22 10:31 MaDeR Levap Note Added: 0010830
2010-07-22 10:41 OzoneGrif Note Added: 0010837
2010-07-22 10:45 smjjames Note Added: 0010839
2010-07-22 11:10 Footkerchief Summary Doorways marked tightly closed do not count as barriers with regard to animal pathfinding. => Animals/pets repeatedly try to path through "tightly closed" doors, causing lag
2010-07-22 11:10 Footkerchief Sticky Issue No => Yes
2010-07-22 21:11 eatatree Note Added: 0010856
2010-07-22 21:11 eatatree Issue Monitored: eatatree
2010-07-26 08:27 Kanddak Tag Attached: leftover from 40d
2010-07-26 11:49 Kanddak Issue Monitored: Kanddak
2010-11-03 14:06 jwest23 Issue Monitored: jwest23
2010-11-18 18:20 Footkerchief Relationship added related to 0001340
2010-11-18 18:20 Footkerchief Relationship added related to 0002945
2010-12-14 08:30 Footkerchief Summary Animals/pets repeatedly try to path through "tightly closed" doors, causing lag => Animals/pets repeatedly try to find path through pet-locked/"tightly closed" doors, causing lag
2010-12-14 14:24 hyperactiveChipmunk Issue Monitored: hyperactiveChipmunk
2010-12-14 20:16 Rhenaya Issue Monitored: Rhenaya
2011-03-27 01:52 Lav Note Added: 0016657
2011-11-13 05:17 TBeholder Note Added: 0018977


Copyright © 2000 - 2010 MantisBT Group
Powered by Mantis Bugtracker