Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  

Author Topic: Add a burrow-like UI to authorize doors  (Read 452 times)

risitop

  • Escaped Lunatic
    • View Profile
Add a burrow-like UI to authorize doors
« on: March 14, 2023, 05:07:56 am »

Hi, I want to thank you first for working on this excellent game for so long.

I want to request the possibility of authorizing/forbidding door passage to citizens with a UI like the one used in burrows. I've seen previous connected requests being discussed, asking for things like keys, but I think it may be too bloated. With the Steam version release that reworks many UI aspects, I think it is the right moment to address this request.

  • Default door behavior would coincide with the current one, i.e., everyone is allowed to pass
  • One could toggle the door either per-individual or only citizens/military, like burrows. Maybe also allow a button to toggle visitors or pets, like in the meeting areas?
  • This would not change the actual state of the door (i.e., locked vs. non-locked) but would instead act as a "law" that is taken into account by dwarves when picking a job or seeking a path similar to traffic zones

We could allow only some citizens to access caverns or restrict certain meeting areas to certain dwarves, or place a door that would separate the noble's quarter from the rest of the fortress that would only allow nobles and a few servants to pass. This request aligns with features currently in the game, like selecting who can visit meeting areas, using burrows or traffic zones to create authorized areas, or physically locking doors for everyone. Door authorization would iterate on these concepts and provide more QoL to control our flow of dwarves better with a new option.

Thanks!
Logged

Putnam

  • Bay Watcher
  • DAT WIZARD
    • View Profile
Re: Add a burrow-like UI to authorize doors
« Reply #1 on: March 15, 2023, 12:02:00 am »

This is not terribly feasible for the same reason tightly closed doors were removed: pathfinding does not (and cannot) account for selective doors. This includes one-way doors, tightly closed doors or doors disallowed by certain individuals. The only reason pathfinding is not slow is due to various shortcuts, and the biggest of those is that checking "is the destination accessible from my location?" is very fast. If there were selective pathfinding like this, either that shortcut would have to be done away with (and thus checking for accessibility would involve floodfilling the entire map) or each individual creature would have to store its own accessibility map and, even worse, calculate that accessibility map when the map changes, thus making lag due to e.g. water or fire increase something like 200-fold.

risitop

  • Escaped Lunatic
    • View Profile
Re: Add a burrow-like UI to authorize doors
« Reply #2 on: March 15, 2023, 03:13:34 am »

I understand, thanks for the heads up.
Logged

Dibbler

  • Bay Watcher
    • View Profile
Re: Add a burrow-like UI to authorize doors
« Reply #3 on: March 15, 2023, 04:47:11 pm »

This is not terribly feasible for the same reason tightly closed doors were removed: pathfinding does not (and cannot) account for selective doors. This includes one-way doors, tightly closed doors or doors disallowed by certain individuals. The only reason pathfinding is not slow is due to various shortcuts, and the biggest of those is that checking "is the destination accessible from my location?" is very fast. If there were selective pathfinding like this, either that shortcut would have to be done away with (and thus checking for accessibility would involve floodfilling the entire map) or each individual creature would have to store its own accessibility map and, even worse, calculate that accessibility map when the map changes, thus making lag due to e.g. water or fire increase something like 200-fold.

Sad that this goes for one-way doors as well. I would love a "door is locked, but starving dorfs can move through it in order to get food" setting.
Logged