1
DF Community Games & Stories / Re: The 10,000 Dwarf Challenge.
« on: March 23, 2023, 06:36:58 am »
It might be very possible with the use of cages, but eh feels cheaty.
March 6, 2024: Dwarf Fortress 50.12 has been released.
News: February 3, 2024: The February '24 Report is up.
News: February 4, 2021: Dwarf Fortress Talk #28 has been posted.
News: November 21, 2018: A new Threetoe story has been posted.
Forum Guidelines
This is really interesting. For me the question is if some of the costly calculations could just be delayed to happen only every X frames and maybe even staggered by number of Dwarfs and dynamically less regular as FPS worsens or if the game breaks down completely if that happens.
Like putnam specified LOS checks and family interactions took most of the CPU time in one of his tests. How often do those currently happen and it is crucial that they happen all the time or would the game break down if they happen half as much and could there be some failsafe to account for any frozen state that could occur because of it?
local utils = require('utils')
function blindify()
local unit = {}
for i, unit in pairs( df.global.world.units.all ) do
if dfhack.units.isCitizen(unit) then
unit.flags2.vision_missing = true
unit.flags2.vision_good = false
end
end
end
blindify()
You can edit population cap in the files pretty easily.
Spoiler: NOT A PROMISED FEATURE JUST A PIPE DREAM DO NOT HOLD ME TO THIS (click to show/hide)
Putnam clarified in this thread that: The bounding box for skipping the calculation is a cube, and that the early-out is for greater-than 26. So dwarfs on level N can consider dwarfs on level N+26 for further evaluation, but not on level N+27.
Is there a typo? Reading these two statements:Quote2. The most performance efficient embark for my testing conditions is 16x1 (and probably 1x16, but I haven't tested that one). It exploits the 26 tile skipping mechanism the most while still having relatively small amount of land to calculate/path around. With 1000 dwarves and their migrated animals on 16x1 embark i get around ~50 fpsQuote3. 26 tile skipping doesn't work on z-dimension. On my recent test day I made 4 areas as in point I.5. separated by 26 z-levels, and spread 1000 dorfs on those areas resulting in roughly 250 dorfs on each of them, then removed stairs connecting them. FPS results are absolutely the same as with single 16x1 z-level.
If 16x1 checkerboarded was the best-performing configuration, and separating 4x occupied levels by 26 floors performed the same as just one level of a 16x1 embark then why do you say that the distance check doesn't work? Doesn't that imply that the distance check is also sensitive to the vertical dimension?
In at least one other context (work scheduling) Putnam reported that the distance used for scheduling weight was max(dx, dy) + dz. That's a little weird, but it would account for the vertical.