|Anonymous | Login | Signup for a new account||2017-11-24 02:09 PST|
|Main | My View | View Issues | Change Log | Roadmap|
|View Issue Details|
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0000797||Dwarf Fortress||Pathfinding||public||2010-04-08 08:35||2017-10-06 13:30|
|Target Version||Fixed in Version|
|Summary||0000797: Animals/pets repeatedly try to find path through pet-locked/"tightly closed" doors, causing lag|
|Description||Doors 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 Reproduce||Build 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.|
|Tags||door, hatch, leftover from 40d, pathfinding, pet|
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.
MaDeR Levap (reporter)
|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.|
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.
|Its a very old issue, I don't know how far back it goes, but certainly before 40D.|
|This happens to me as of 31.10, and also happened in 40d.|
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.
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).
|Also applies to hatches. I had a hostile giant olm trapped under one that was forbidden and tightly closed. The olm came rushing at it when it was made non-forbidden, but just sat under it and alternated between prone and standing until I set it to allow pets. A cool emergent behavior IMO (nasty creature lurking under a hatch, waiting for a dwarf to come along and open it), but ultimately a bug.|
This one might get some attention now since it's a contributor to lag in worldgen forts and mountainhomes.
The pastures help by keeping them from pathing elsewhere, but the bug is still there.
|This can also be reproduced in any worldgen fort as the loads of cats rush to one place and get stopped by a door, causing noticeable lag.|
|I can confirm this for .40.24. Some crundle was trying to path through a door set to be tightly closed - and my usual 100 FPS dropped down to 15. The FPS made a complete recovery once I disabled the setting on that door, and the crundles flooded my fort.|
Still happening in 42.04 , saved game :
On save load, you should be on the 1st cavern level
There's a barrack with a squad of soldiers training there, and a double door leading directly to the cavern.
Both doors have disabled pet passage, so only non-pets can move through.
In front of those doors there is a group of "naked mole dogs".
Unpause the game you will quickly notice that game performance is so bad it's unplayable.
Press q , move the cursor over the double doors and enable pet passage.
Suddenly performance is back at relatively playable, while the naked mole dogs enter the barracks
Knight Otu (manager)
|lightman posted a 0.42.06 save in 0009689.|
A single cave crocodile lowered my FPS from about 40 to only 9 because she was trying to get through a tightly closed door. Even killing all other creatures and deleting all items with DFHack didn't make a significant difference to FPS as long as she was still alive.
|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|
|2014-02-01 10:29||Footkerchief||Relationship added||related to 0005555|
|2014-02-23 13:08||Footkerchief||Relationship added||related to 0006446|
|2014-02-25 15:57||eidako||Note Added: 0024566|
|2014-02-25 15:57||eidako||Tag Attached: hatch|
|2014-02-27 11:14||Footkerchief||Assigned To||=> Footkerchief|
|2014-02-27 11:14||Footkerchief||Status||new => acknowledged|
|2014-08-04 20:30||Dwarfu||Relationship added||has duplicate 0007846|
|2014-08-08 14:12||Footkerchief||Status||acknowledged => confirmed|
|2014-08-08 14:12||Footkerchief||Relationship added||has duplicate 0007915|
|2014-08-08 14:49||Mopsy||Issue Monitored: Mopsy|
|2014-08-08 14:58||smjjames||Note Added: 0028618|
|2014-08-08 21:30||4maskwolf||Issue Monitored: 4maskwolf|
|2014-08-09 05:37||Footkerchief||Relationship added||has duplicate 0007921|
|2014-08-14 04:09||Steb||Issue Monitored: Steb|
|2014-09-01 14:12||Footkerchief||Relationship added||related to 0008213|
|2014-09-13 16:44||Dame de la Licorne||Issue Monitored: Dame de la Licorne|
|2014-12-04 11:08||smjjames||Note Added: 0031257|
|2015-04-01 00:07||Dwarfu||Relationship added||has duplicate 0008890|
|2015-05-24 06:44||Witty||Note Added: 0032715|
|2015-12-20 20:27||lethosor||Relationship added||has duplicate 0009390|
|2016-01-04 16:36||Robsoie||Note Added: 0034316|
|2016-04-13 13:08||Knight Otu||Relationship added||has duplicate 0009689|
|2016-04-13 13:08||Knight Otu||Note Added: 0035009|
|2016-11-03 16:33||FantasticDorf||Note Added: 0036029|
|2016-11-07 07:26||FantasticDorf||Note Edited: 0036029||View Revisions|
|2017-01-27 07:25||FantasticDorf||Note Deleted: 0036029|
|2017-01-27 07:51||FantasticDorf||Note Added: 0036226|
|2017-01-27 10:40||FantasticDorf||Note Edited: 0036226||View Revisions|
|2017-01-27 10:41||FantasticDorf||Note Edited: 0036226||View Revisions|
|2017-06-08 19:19||Huntthetroll||Issue Monitored: Huntthetroll|
|2017-10-06 13:30||a52||Note Added: 0036766|
|2017-10-19 05:01||FantasticDorf||Note Deleted: 0036226|
|Copyright © 2000 - 2010 MantisBT Group|