Whether they're idle or not they're still pathing around and interacting, wearing clothes, having feelings, etc. Also having taverns and stuff can make the idlers number slightly deceiving since IIRC dwarves doing tavern relaxation activities don't count as idle.
|
|
# ? Jul 21, 2019 02:50 |
|
|
# ? May 31, 2024 17:24 |
|
Okay, I see a lot of poetry, socializing, and meditating (temple), so these dwarves better be happy.
|
# ? Jul 21, 2019 04:45 |
|
Before the temple/library/etc dwarves would need some idle time to get their needs fulfilled yeah. However now anything they do in those buildings counts as being active so even if they're just dancing in the tavern that's not 'idle' for the purposes of the counter. Ditto poetry, meditating, praying, etc.
|
# ? Jul 21, 2019 07:11 |
|
Is there such a thing as too many "Meeting Hall" locations? One fort I had had a regular meeting hall next to a kitchen, but then I made a large generic temple area and all the dwarves flocked to it. I then made a Library and all the dwarves ran to hang out there (before being torn apart by werellamas). They seemed to want to go to the latest meeting place I created and didn't care much about previous ones.
|
# ? Jul 21, 2019 22:26 |
Dieting Hippo posted:Is there such a thing as too many "Meeting Hall" locations? One fort I had had a regular meeting hall next to a kitchen, but then I made a large generic temple area and all the dwarves flocked to it. I then made a Library and all the dwarves ran to hang out there (before being torn apart by werellamas). They seemed to want to go to the latest meeting place I created and didn't care much about previous ones. I imagine when you make a new zone it also provides a way to fulfill a bunch of leftover and previously unfulfilled desires.
|
|
# ? Jul 21, 2019 22:35 |
|
Rocko Bonaparte posted:Okay, I see a lot of poetry, socializing, and meditating (temple), so these dwarves better be happy. Nope, they're sad. I'm running Dwarf Therapist and figured out how to look at their needs. There are three categories that seem to trouble them: 1. Crafting something 2. Be with friends 3. Be with family For crafting something, is there some way to have them set up to all make something, feel good again, and then shut off the role? As for friends and family, I'm not sure what to do there. I have a meeting hall, a tavern, a library, and a temple. Am I screwing up with having too many places to go that they don't run into each other?
|
# ? Jul 22, 2019 01:52 |
|
Some dwarves have obnoxious personalities and can't seem to ever make friends, so their friends need never gets filled. Their obnoxious personalities mean they'll never find a spouse, so unless they have siblings or something in the fort the family need will be unfulfilled forever too and they'll become sour incels for the rest of their lives.
|
# ? Jul 22, 2019 01:56 |
Sometimes this game is TOO realistic. For the not crafting something sad thoughts, you can turn some labors on on your unskilled dwarves who are sad about not crafting anything and then occasionally run crafting jobs for garbage you don't care about that are restricted to poorly skilled dwarves. To do this you will probably want separate workshops pulling from their own materials stockpiles set up such that the low skilled dwarves only get cheap, abundant materials and anything expensive or rare is available only to the workshops for high skilled dwarves. hailthefish fucked around with this message at 02:55 on Jul 22, 2019 |
|
# ? Jul 22, 2019 02:51 |
|
I might be slightly behind on version changes, but typically family needs will very, very, VERY often go unmet in the normal playtime of a fort. Most migrants have and will always have sad thoughts about relatives they've left behind. This is understandable, though it can be a bit obnoxious since there isn't much you can do to affect that directly.
|
# ? Jul 22, 2019 03:32 |
Shady Amish Terror posted:I might be slightly behind on version changes, but typically family needs will very, very, VERY often go unmet in the normal playtime of a fort. Most migrants have and will always have sad thoughts about relatives they've left behind. This is understandable, though it can be a bit obnoxious since there isn't much you can do to affect that directly.
|
|
# ? Jul 22, 2019 03:56 |
I can see it now... assigning your dwarves to rotations working in the library to grind up their reading and writing skills...
|
|
# ? Jul 22, 2019 04:04 |
|
Zereth posted:They should be able to write letters home/receive letters from home to alleviate this. "Dear Slim, I wrote you but you ain't responding..." Dwarf Stan cancels Write Letter, overcome by fell mood.
|
# ? Jul 22, 2019 04:12 |
|
Zereth posted:They should be able to write letters home/receive letters from home to alleviate this. This leads to minecarts full of unsorted letters being dumped into an arcane postal hub fortress, and I am here for it.
|
# ? Jul 22, 2019 04:14 |
hailthefish posted:I can see it now... assigning your dwarves to rotations working in the library to grind up their reading and writing skills...
|
|
# ? Jul 22, 2019 04:24 |
|
Is there anything I can do to profile slowdowns in the game? It now takes a few hours for a season to change, and I think movement now happens slower than real time would take. I do have, well, 300 people now. Might be a problem. Other things I worry about are some glitch with all the poo poo I have produced and possible lack of piles or storage. Is there a way I could check that? My other fear is all the animals I have running around inside my fort across three pastures. It is getting a little cluttered. I may have killed this fort from abundance.
|
# ? Jul 22, 2019 08:58 |
|
hailthefish posted:I can see it now... assigning your dwarves to rotations working in the library to grind up their reading and writing skills... Procedurally generated letters home. lets you get a real idea of what your dwarves are thinking. "Dearest mother. Blood! So much blood. Father is dead, my brothers are dead. the stench of their rotting corpses fills my nose. I saw a ***masterwork**** table the other day, and I am still thinking about it. I am happy. Hope goblins have not stolen to many children. Yours. Urist. "
|
# ? Jul 22, 2019 09:06 |
|
Be careful what you wish for. What if your dwarves could also receive letters, and what if those letters were capable of provoking depression and tantrums? We’d be developing and sharing ways of murdering the postman the second they arrived on the map.
|
# ? Jul 22, 2019 10:11 |
Rocko Bonaparte posted:Is there anything I can do to profile slowdowns in the game? It now takes a few hours for a season to change, and I think movement now happens slower than real time would take. There's not really any way to profile performance that I know of, no. That said, 300 dwarves is known to be deep into slowdown territory, and with that population it's always going to run like rear end, BUT there are some things you can do. If you have dfhack, you can use it to clean up things like liquid coverings and leaves, as well as things like all the owned tattered clothing your dwarves have scattered all over creation. Replacing large stockpiles with 'quantum stockpiles' where all the stuff is packed on a single tile through various means (either dump zones or minecarts) can help a little too. Make sure all your busy hallways are at least two tiles wide, preferably 3 or 4. Disabling weather and temperature can help, though this can come with some downsides. If you're relying on rainfall-fed surface ponds to draw your drinking water from, or if you rely on a river but live in a cold climate, then obviously you can screw yourself if you turn off 'rain' or 'thawing'. Push comes to absolute shove, you can always enable fastdwarf in dfhack, which is literally cheating in a way a lot of other suggestions are not, but it will at least make it slightly less obnoxious to play when your framerate is in the toilet because your dwarves will all be literally The Flash. https://dwarffortresswiki.org/index.php/DF2014:Maximizing_framerate goes into exhaustive detail about various sources of slowdown and ways to mitigate them.
|
|
# ? Jul 22, 2019 12:01 |
|
Prop Wash posted:Be careful what you wish for. What if your dwarves could also receive letters, and what if those letters were capable of provoking depression and tantrums? We’d be developing and sharing ways of murdering the postman the second they arrived on the map. Sending letters always improves mood but receiving letters is dicey, so the cunning expedition leader has a mail service that dumps everything into an active volcano.
|
# ? Jul 22, 2019 14:19 |
|
throwing poo poo posts into a volcano? talk about hot takes!!
|
# ? Jul 22, 2019 14:23 |
|
Rocko Bonaparte posted:Is there anything I can do to profile slowdowns in the game? It now takes a few hours for a season to change, and I think movement now happens slower than real time would take. The two biggest drains on FPS are pathfinding and heat calculations. Heat calculations can be turned off if you don't mind occasional weirdness surrounding lava, dragons, and water staying in the same phase state as when you first turned the setting off regardless of how hot/cold it is. Apart from those examples, it doesn't have a huge effect on gameplay. If you want to keep them on but want to minimize their impact, use a smaller map and make less stuff. For pathfinding you mostly just need to have fewer entities. You can improve matters a little bit by walling off caverns and unused areas (especially complex ones with a lot of obstacles and paths), avoiding 1-tile-wide passages in your fort (since they cause blockages and blockages cause pathfinding to constantly be re-calculated) and by marking high- and low-traffic designations if you're able to do so in a way that's "smarter" than the modified A* pathfinding algorithm that Toady uses (not impossible, but complicated; good luck). But really, you just need fewer dwarves and animals.
|
# ? Jul 22, 2019 15:09 |
|
If I recall correctly, putting a bunch of doors in every wall is a bit easier on the path finding too, though I think usually the big killer on path finding is z level movement, so putting stairs everywhere would be helpful as well, if not much more so. Ideally, you want a dwarf to be able to reach his destination by walking there in a straight line. This line is in 3 dimensional space, so ideally he gets to just phase through the ceiling and floor as well.
|
# ? Jul 22, 2019 15:24 |
|
ninjewtsu posted:If I recall correctly, putting a bunch of doors in every wall is a bit easier on the path finding too, though I think usually the big killer on path finding is z level movement, so putting stairs everywhere would be helpful as well, if not much more so. Can one put stockpiles on up/down stairs? I'm having this hilarious vision of doing all dig designations as up/down stairs and removing the stairs where I need workshops etc.
|
# ? Jul 22, 2019 17:47 |
|
ninjewtsu posted:If I recall correctly, putting a bunch of doors in every wall is a bit easier on the path finding too, though I think usually the big killer on path finding is z level movement, so putting stairs everywhere would be helpful as well, if not much more so. I think it might be the other way around. The more stairs, doors, open spaces, etc. you have the more the pathfinding algorithm has to evaluate when calculating each route. I remember some big effort post on the official forum that basically concluded doors and open spaces were the two biggest bottlenecks to the game's performance
|
# ? Jul 22, 2019 18:06 |
|
WarpDogs posted:I think it might be the other way around. The more stairs, doors, open spaces, etc. you have the more the pathfinding algorithm has to evaluate when calculating each route. I remember some big effort post on the official forum that basically concluded doors and open spaces were the two biggest bottlenecks to the game's performance I think I read it was using A*, and if a linear direction in 3d is the best then the heuristic is a basic linear calculation. That would mean any candidate path in-progress with some cost will be compared against the best one using that heuristic. If it cannot at all get there any better in that straight, perfect line, it can just throw it out right then and there instead of following it to its end. So both things can be right at the same time: straight 3d paths and narrowish spaces. Having some open space would reduce disruptions from bumping into other things that are pathing, but too much would imply it would try a lot more possibilities along the way before hitting a hard stop at a wall. I'm suspecting one of my problems is this pasture system I set up. I have three pasture zones, all of the largest size the GUI allowed. I'm assuming the animals are trying to go all over the place within those larger spaces while constantly bumping into my crazy zoo of other animals. So I'm wondering if I would do better penning the livestock. Sure, they'd bump into each other, but I'd have them in a tiny zone that isn't making too many calculations. There are also a ton of trees. Do they calculate often? I actually had blocked a caravan from visiting half a year before since the trees had swallowed up all the routes to the depot. I had to knock out a route and build a road to make sure it stayed.
|
# ? Jul 22, 2019 18:32 |
|
WarpDogs posted:I think it might be the other way around. The more stairs, doors, open spaces, etc. you have the more the pathfinding algorithm has to evaluate when calculating each route. I remember some big effort post on the official forum that basically concluded doors and open spaces were the two biggest bottlenecks to the game's performance at the time a neat little program was being passed around that let you design mazes and then run a pathfinding algorithm to see how expensive getting through the maze was. i built a number of common dwarf fortress arrangements and put the start and end points in various places inside that, and how expensive the pathfinding was went way, way, waaaay down as soon as i started adding little holes everywhere the basic thing with these pathfinding algorithms is they draw a straight line to the goal, then try to follow it until something is in the way. then, they try to find the closest gap in that thing, and then try to follow a new line to the objective. with A* in particular, that "try to find a way around this obstacle" phase got expensive pretty quick, but very dramatically so if it ever had to move in the direction opposite from the objective (like if you were, say, in a square room with one entrance, and the objective was on the other side of the wall opposite that door. the algorithm would essentially grind up against the wall, testing every possible space along the wall, before finally considering a move that takes it "further away" from its goal) at the same time, narrow entrances (like doors) tend to get clogged up really easily, at which point the entire algorithm is run a second time, so yeah if all your dwarves are getting funneled through one door, that one door becomes a massive bottleneck a theoretical fortress that consists entirely of up/down stairs, and also with all workshops and stockpiles and any other point of interest spaced well apart to avoid collisions, would be ridiculously easy on the pathfinding algorithm.
|
# ? Jul 22, 2019 19:01 |
|
i found the program, it's here to mess around with: https://qiao.github.io/PathFinding.js/visual/ to demonstrate my point real quick, here's the basic example i gave in my last post you can see how many operations the algorithm had to perform in the bottom left (time isn't terribly important for these purposes, there's many other factors that can affect that, such that if you keep hitting restart on the same configuration you'll get wildly varying times. length is just how long the final path is) and if we put a hole in the wall between them: that number of operations goes way, waaaay down. in this program, the blue spaces are spaces that were considered for movement. you can see that in the first image, literally the entire room was checked, while in the second image it just bee-lined right to the objective here's maybe a less ideal case, and one that slightly better resembles an actual fort situation:: here you can see that not only does the algorithm consider every square in the starting room, but also every square in every room on that half of the structure. and if we put a door in every wall: this more-direct path has way fewer operations so, the short of it is the algorithm is very much biased at considering any step that takes it "closer" to the objective, in the short term. it's like a blind person playing colder/warmer, any time it hears "warmer" it's going to aggressively check that direction, even if there's a solid wall further along in that direction ninjewtsu fucked around with this message at 19:25 on Jul 22, 2019 |
# ? Jul 22, 2019 19:18 |
|
for funsies, here's a ridiculously extreme example: if your dwarf needs to get somewhere, and your main dining hall is between your dwarf and that somewhere, and your dwarf can't just run straight through the dining hall, the dwarf will check every tile of your entire dining hall before trying another route
|
# ? Jul 22, 2019 19:32 |
When dwarves pick an item to workshop with do the consider z levels when seeing what's closest? Like if there's a iron ingot 1 z level above them will they ignore the stockpile of iron 5 spaces away and walk 40 spaces just to go up one z level?
|
|
# ? Jul 22, 2019 19:33 |
|
yes that is exactly what they will do don't leave poo poo laying around above your workshops unless you're also putting stairs next to your workshops
|
# ? Jul 22, 2019 19:43 |
|
Basically the easiest space to pathfind around in is a huge empty sphere, where you can get wherever you're going by just walking straight at it. So the more your fort resembles that, the less futzing around the pathfinder has to do.
|
# ? Jul 22, 2019 20:24 |
|
share your fort designs. maybe i have an old one somewhere here...
|
# ? Jul 22, 2019 23:05 |
|
I've been using variations on this design for years -- it (partly by design, partly by happy accident) mostly follows the best practices laid out in ninjewtsu's post, except for the apartment blocks in the corners (but hopefully dwarves aren't pathing to or from those as often as they are between job and stockpile locations anyways) and at the entrance to the fortress, located at the top (where pathfinding efficiency had to take second place to security concerns).
|
# ? Jul 22, 2019 23:28 |
|
Tuxedo Catfish posted:I've been using variations on this design for years -- it (partly by design, partly by happy accident) mostly follows the best practices laid out in ninjewtsu's post, except for the apartment blocks in the corners (but hopefully dwarves aren't pathing to or from those as often as they are between job and stockpile locations anyways) and at the entrance to the fortress, located at the top (where pathfinding efficiency had to take second place to security concerns). There's alot I like in this, but I think with some z-level layering things could be even more efficient. At the circled locations, carve an up/down stair way and create stock piles right above relevant workshops. Also consider a small dining and drinking hall near the workshops for quicker breaks. For industries where every tick of output matters, build bedrooms offset by a z-level from the workshops in a similar manner to the stockpiles.
|
# ? Jul 23, 2019 00:23 |
|
It's been a while since I played DF a lot but it was definitely best practice to put a stockpile next to any workshops and assign it to that workshop. It does help prevent some needless pathfinding, and makes it easy to control exactly what materials are used by filtering what goes into the stockpile. Mainly it stops experienced dwarves from wasting all their time hauling, especially since they won't use wheelbarrows when gathering materials for crafting iirc. A classic example is having a mason spend 6 months dragging a boulder from your labyrinthine mines 20 z levels below instead of the stone on the original z level 21 tiles away.
|
# ? Jul 23, 2019 00:24 |
|
My stockpiles are in fact directly underneath their respective workshops. As for some of the other suggestions, well, I've got a pretty beefy CPU and tend to run 20-40 dwarf microforts anyways; at some point aesthetics trump further optimization and having holes in the walls that are only accessible via the diagonal is my breaking point.
|
# ? Jul 23, 2019 00:43 |
|
one of mine from a year ago. z+1, z, and z-1. red box's show the same location at different z's.
|
# ? Jul 23, 2019 03:16 |
|
My 321 pets/livestock might be a problem, right? Edit: and only five cats!
|
# ? Jul 23, 2019 06:58 |
|
Animals aren't going to be going on across the fortress adventures or finding new places to be as often as dwarves are, but they do generate pathfinding calls as well so yeah. Depending on where they are they can also cause blockages, which will result in many pathfinding calls being made. My off the cuff guess is that cats are probably the most computer resource intensive animals to have around, since they wander so much. Conversely, pastured animals are probably relatively small resource sinks compared to dwarves.
|
# ? Jul 23, 2019 07:20 |
|
|
# ? May 31, 2024 17:24 |
|
i always wonder if it'd be possible to patch in more efficient pathfinding with dfhack. then i consider what that project would actually be like and decide not to pursue it
|
# ? Jul 23, 2019 08:20 |