Dwarf Fortress

Dwarf Fortress

Is it true strip-mining causes fps problems?
So I've been looking online and I can't get a straight answer so I'm hoping people here are more knowledgeable; is it true strip-mining levels can cause severe FPS problems? Older posts on the original game forums and stuff on the wiki says it can "Cause Pathing issues which can lead to FPS drops" but then there's other articles saying that removing several levels of rock can drop the FPS permanently because the game constantly "checks" those empty tiles.

Ultimately I really want to mine a few levels clear and use the resources but I'm not sure if it's a good idea if it permanently will drain like 50% of the FPS for the rest of the fort. A few articles say if you "block off those levels" by building walls around the stairs and preventing access that will fix the issue, does anyone know if that's true?
< >
Menampilkan 1-15 dari 18 komentar
Fletch 2 Mei 2023 @ 5:20am 
Walling off sections of the fort that are no longer useful will definitely help with pathfinding, because the walled off areas are no longer reachable so the pathfinder doesn't waste time exploring those areas anymore. However, pathfinding is not the leading cause of FPS death (per the new developer). I've heard that heavily forested maps have slower FPS as compared to a desert -- because cycles are spent calculating branch growth and such -- so strip-mining down forests may help. Unfortunately, there are just a lot of guesses and incorrect assumptions and all we can do is hope the devs figure out the problems and fix them.

You may want to explore the community created Wiki on the subject, though it may be full of inaccuracies too: https://dwarffortresswiki.org/index.php/Maximizing_framerate

You can do your own !Science! -- save the game and try something, and record the FPS. Then go back to the original save and try something else and record the FPS...
Fel 2 Mei 2023 @ 7:23am 
When walling off, putting doors in a few places can be helpful.
It provides a way for the dwarves that might have built the wall from the wrong side and it also allows you to open it up later on if you left rock boulder there.

In most cases you don't need to fully mine entire levels since stone is plentiful (even if you want to use one specific type for its color) and ores on the default setting are in large amounts as well.
Lycan 2 Mei 2023 @ 7:26am 
Diposting pertama kali oleh Fel:
When walling off, putting doors in a few places can be helpful.
It provides a way for the dwarves that might have built the wall from the wrong side and it also allows you to open it up later on if you left rock boulder there.

In most cases you don't need to fully mine entire levels since stone is plentiful (even if you want to use one specific type for its color) and ores on the default setting are in large amounts as well.
Ok thank you, also I swear I keep seeing you pop up on these forums so I just wanna add an extra thank you for taking out so much time to answer folk, its very kind of you :steamhappy:
Fel 2 Mei 2023 @ 7:28am 
This is one of the game where I subscribe on the forum itself to see new threads when they are made since I have a decent understanding of it to answer questions, happy that it helped you.
On a side note, Putnam has said that huge improvements of FPS/computation are coming in the "not-next-but-soon-after" patch.
Fel 2 Mei 2023 @ 8:17am 
It's the line of sight thing that supposedly makes a major difference (since line of sight becomes a big deal once you have enough dwarves) right?
Fletch 2 Mei 2023 @ 8:20am 
Diposting pertama kali oleh Fel:
It's the line of sight thing that supposedly makes a major difference (since line of sight becomes a big deal once you have enough dwarves) right?

LOS improvements were released in v50.05 (back in January) -- but the code must do O(n^2) iterations in a nested loop (where N is the number of entities on the map). Just because A can see B does not mean that B can see A (hence why n^2) and not O(nlog(n)). This is begging to be parallelized to distribute that effort over all the available CPU cores :)

for entity_1 in all_entities_on_map: for entity_2 in all_entities_on_map: if entity_1 == entity_2: # don't care if you see yourself continue # run line-of-sight checks and process if canSee(entity_1, entity_2): ... do whatever logic when entity_1 has line of sight of entity_2

parallelize the outer loop for a cheap win -- all the logic inside the double nested loop must be made threadsafe though.
Terakhir diedit oleh Fletch; 2 Mei 2023 @ 9:23am
Morkonan 2 Mei 2023 @ 1:22pm 
Diposting pertama kali oleh Lycan:
So I've been looking online and I can't get a straight answer so I'm hoping people here are more knowledgeable; is it true strip-mining levels can cause severe FPS problems? ...

I do remember reading something about that specific for DF, but I can't speak to the current incarnation.

In general, though, providing more viable paths for something to pathfind through can cause unnecessary checks that would have otherwise not occurred had the large open space not been a large open space... It really depends on the type of pathfinding being used, how many actors there are and how often they're exposed to it.

I don't know how z-level changes work in that. Empty tiles that are not walkable by an actor should be culled, IMO.

There wouldn't be anything keeping your from clearing out a level then walling in the most efficient paths that you wanted dorfs to use, yourself. (I don't know what practical reason you'd want an entirely clear level for. World's Biggest Dance-floor? :))
Fel 2 Mei 2023 @ 1:25pm 
Above-ground forts need a large amount of building materials, even if you cut rocks into blocks you will still need to dig quite a bit.

It can be fun to build above ground every now and then, it's full of challenges that are much different from usual.
Diposting pertama kali oleh Fel:
It's the line of sight thing that supposedly makes a major difference (since line of sight becomes a big deal once you have enough dwarves) right?

I don't remember the specifics but it's a combination of multi-threadings, updating the libraries, and general algorithm improvements. There is more details in the interview of Putnam by BlindIrl
Fletch 2 Mei 2023 @ 4:02pm 
Diposting pertama kali oleh natsukashiinoneko:
I don't get this log idea. I'd say it's quadratic no matter what, with either n² (asymmetrical) or (n-1) + (n-2) + ... + 2 + 1 = n(n-1)/2 ≈ n²/2 (symmetrical) i.e. the symmetrical case saves about half the computations.
Or did I miss something?
....

You are right, it is (n^2+n)/2 -- when every unit must check every other unit.

The LOS code already has a distance limit, at least according to this post [www.bay12forums.com] . They say 17-25 tiles based on the observer skill -- but who knows? Without access to the source its hard to know for sure and whether that filter is done early enough in the computations.
Fel 2 Mei 2023 @ 4:10pm 
Well if the line of sight has a distance based on a skill's level then there would be many cases of one seeing without being seen.
There is also a sneaking skill that might factor in this as well.
Fletch 2 Mei 2023 @ 4:11pm 
Diposting pertama kali oleh natsukashiinoneko:
But what about this asymmetry?
Except for facing (I.e. some cone or pyramid of vision), what could break the LoS symmetry?
Doubling the computation time sounds like a luxury, don't you think?

Think of the real world: An eagle can see a mouse, but that doesn't mean the mouse can see the eagle -- I would suspect there is no symmetry due to things like that (or other reasons).

EDIT: @Fel and I said the same thing at the same time :)
Terakhir diedit oleh Fletch; 2 Mei 2023 @ 4:20pm
Katy 2 Mei 2023 @ 4:18pm 
i played the original dwarf fortress and the leading cause for fps death was items and breeding of animals and how many dwarfs ya have and so back in the day the only help to total fps death and the game forcing you to start a new fortress is to burn all the unwanted items ya get from mass goblin attacks and so on by throwing them into lava ,the share amount of items ya get and the never ending dwarfs who join the fortress was the main issue , we use to have to throw 100s if not 1000s of useless item in the lava to even have a chance of not getting total fps death
Terakhir diedit oleh Katy; 2 Mei 2023 @ 4:19pm
Lucidess 2 Mei 2023 @ 5:47pm 
I don't know about anything going on under the hood, but if there's tons of stone laying around, my fps tanks. If the room is stripped out and all the stone is cleared out though, it's fine. And of course, the fps tanks hard when the strip mining is in progress, but you probably experienced that already. Probably the reason why I use quantum stockpiles, and a lot less stockpiles in general to keep items inside workshops.
Terakhir diedit oleh Lucidess; 2 Mei 2023 @ 5:51pm
< >
Menampilkan 1-15 dari 18 komentar
Per halaman: 1530 50

Tanggal Diposting: 2 Mei 2023 @ 5:05am
Postingan: 18