View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0003267 | Dwarf Fortress | General | public | 2010-09-17 14:33 | 2011-03-27 23:47 |
Reporter | jei | Assigned To | |||
Priority | normal | Severity | major | Reproducibility | always |
Status | resolved | Resolution | duplicate | ||
Platform | all | OS | linux & windows | OS Version | Ubuntu & XP |
Product Version | 0.31.13 | ||||
Summary | 0003267: Blood spatter = steady FPS loss | ||||
Description | I second this, I have experienced the same with 5 forts now within 5 years of game with FPS going from 90 to 2 in that time. I'm also putting this in as a new bug because I think it deserves "high severity" instead of "minor" as the old bugreport has. Problems usually show up only after a few years of majro bloodshed and contaminants spreading in the game.: ----------------------- I am starting to suspect blood spatter as my major cause of FPS loss as well. In my current fort I've dropped from 100 to 35 FPS in one year; in that time... - Dwarven population was reduced from 78 to 69 - Free roaming animal population was reduced from 0000039:0000030 to 0000010:0000005 (not counting wild animals) - Amount of flowing liquids reduced from one large water reactor (8 water wheels) to one small water reactor (3 water wheels). Additionally had some small flow going on in a semi depleted magma pipe the year before which is now gone. - The first usage of the garbage atom smasher occurred, smashing approximately two thousand raw stone to no effect on FPS. - Much blood was shed, and now large quantities of the fortress are covered in blood and nearly all animals and dwarves have blood coverings on them. I honestly can't stand to play this game any more with how FPS suddenly drops like this and absolutely nothing I do helps. None of the FPS increasing tips do anything at all. Flowing water doesn't affect my FPS. Caging hundreds of loose animals doesn't affect my FPS. Destroying massive quantities of stone doesn't affect my FPS. But something does, and does fiercely, and I'm honestly suspecting it is this blood bug. That bug, and the fact that I did mine some more during the year, are the absolutely only factors I can even think of which occurred and could decrease FPS. I'm getting sick of it, extremely sick of it. ------------- http://www.bay12forums.com/smf/index.php?topic=66184.0 The problem with dfclean is it only removed contaminants from tiles, which is usually only a very small portion of the contaminants in a fort. Start looking through at your dwarves and items that they are wearing, were wearing, or were hauling around at some point. You will find many of these dwarves and/or items can have many pages of contaminants listed. Multiply this by potentially hundreds or thousands of such items, and it quickly outweighs the contaminants on the floor. That being said, dfcleanmap does help some, but it would be nice if we either had a laundry mechanic to clean things us legitimately in game, or a utility to scrub everything down. ---------- Pathfinding as source of FPS loss is way overrated. Did you read him at all? He reduced significantly amount of entites on map that can perform pathfinding, to no avail. He is right, current biggest suspect is insane amount of contaminants everywhere. ---------- Endlessly multiplying splatters is not "labor allocation" or "engineering" issue. It is crappy programming issue. DF does very little to prevent endless bloat and growth of anything in game. From taking VERY big amount of memory in worldgen (with 0.31.13 it started to be common, hooray sprawl and entities!), through preserving dead things for eternity in list of units* to zilion of stones, it is all around FPS rape. I seen only token effort (like stopping animal births when number of animals is high for given specie), if any at all. Unsuccesful: dreaded catplosions are feared by many. ---------- I think these need to be adressed. | ||||
Steps To Reproduce | Play the fort, get wounds on a bunch of animals and dwarves that bleed everywhere. Wait a couple of years and watch steady FPS loss get worse and worse and worse as everything is getting spattered by blood and vomit and whatnot until your entire fort is unplayably slow no matter how you build it, how big an area you started with or if you kill and cage all your pets and wildlife. | ||||
Additional Information | Game is unplayable with long-time successful forts due to excessive FPS degradation. | ||||
Tags | No tags attached. | ||||
|
For getting rid of contaminants on objects, I find that going into material_template_default.txt in the raws, and setting blood's boiling point to 10015 (that's the normal temp on underground tiles) solves the problem quite nicely. Does this help? edit: forgot to say, don't leave this on for too long, or your dwarfs will die. |
|
I'm guessing this is at least expected, but definitely not a 'good thing', since with seasonal auto-cleanup currently not working/disabled, the tracking for blood/splatters can get a little crazy. I'm tempted to mark this as a dupe of 0000296. I'll wait for your input, though, Jei. |
|
I really hope this gets addressed soon. I've been wondering what it was that was slowing down my game with a max population of 30. Given the time when I start noticing a slow down I'm convinced this must be the issue. I think the whole blood thing sticking around forever is crossing the line between fun realism and not so fun realism. I'm sure once all of the fluid mechanics are worked out it will be fine but for now we really need the seasonal blood removal back. |
|
Why can't the blood have decay like items do and when it hits 0 it disappears |
|
Interesting. I just looked, and blood does infact have the [ROTS] tag just like meat (aka muscle) and other animal products. I wonder why it doesn't work for blood? edit: Actually, this might be slightly off topic. See 0003270. |
|
Do blood smears and dried blood inherit the [rots] tag? |
|
From 0003532: "my fort, 6 embark tiles, 3 caverns, 130 dwarfes, 330 pets, used to run on only 8 FPS on a 3.5 ghz core i7, when i tried to get rid of blood carried around by dwarfes and pets by using the dfliquids and dfcleanmap tools. after placing some water around important routes and running the cleanmap utility in a loop, performance went up to _33 FPS_. thats more than 4 times as fast... this truely shows that the algorithms for the blood and dirt splattering are very inefficient, to say the least. the switch in the config file ("do not move splatters around") seems to be completely failing, it was enabled all the time, but did not prevent up to 100 different blood splatters on the single beings." |
|
If this is true, it's scandalous. I don't get the meaning of blood spatters on people and items (as opposed to splatters on the environment) in the first place. What are they good for? You can't see them, and most people don't bother to click through the menus to display splatters, since there's always 100 different items in the list and it's too cluttered to be useful. The very notion that the game tracks each person's blood separately is weird in the extreme - noone, not the player nor the dwarves, could be expected to distinguish between Urist McDwarf's blood, Goblin Axeman's blood, cat blood, etc. The idea of splatters themselves is also very "unsimulationistic" - true, units would get blood on themselves after each fight, but everyone could be expected to wash shortly thereafter, usually in a matter of minutes or hours, days in the extreme. Both Adventurer mode and Fortress mode have such larger timescales that to have a separate mechanic for something that should vanish in couple of hours seems strange. As it stands, units wear the splatters for weeks or even months, which is quite strange. Sure, it IS cool to click on a dwarf and see he's covered in mudstone dust and donkey blood. But it this causes such a massive slowdown, I say get rid of it. I'd rather have tripled or quadrupled FPS. |
|
"As it stands, units wear the splatters for weeks or even months" Try forever, if you're avoiding the soap/well bug. |
|
Adding back the seasonal cleanup, like that existed in previous versions such as 40D, would resolve the problem entirely. Dwarves would attempt to wash themselves if at all possible, but even an unwashed dwarf or a pool of blood would eventually clean up itself after enough time has passed. Just for an experiment, dump an organic liquid onto the ground outside. Say, milk, as a substitute for blood. How long will it last assuming no one cleans it up? It will degrade on its own in a very short time. After a week there would probably be no trace of it at all. Even indoors substances will degrade on their own. It'll dry up and be broken down by bacteria, eventually turning into dust. The seasonal cleanup would also make above ground settlements viable again, as there is no way to clean up a wall splattered with blood above ground aside from deconstructing and rebuilding the wall. Natural weathering should remove the blood spatter after a few months. |
|
I bet the FPS loss is because of temperature calculations. The spatters interact with each other and with environment, and their tempeture is frequently updated. Try disabling temperature in init.txt and check if it makes any big difference. |
|
I ran a dfcleanup on a copy of my EXTREMELY messy map (0.31.19) and saw no discernible change in my FPS. Are you sure contaminants are the cause of the FPS drop? Mind you, I do agree that there should be seasonal cleanup for outdoor areas. I also agree that the cleaning labor should be improved so dwarves actually clean things. |
|
This report hasn't had much activity in the last couple months, the whole spatter situation is in question now, and this isn't that different from 0000296 anyway. |
Date Modified | Username | Field | Change |
---|---|---|---|
2010-09-17 14:33 | jei | New Issue | |
2010-09-17 15:40 | Olith McHuman | Note Added: 0012774 | |
2010-09-17 15:43 | Olith McHuman | Note Edited: 0012774 | |
2010-09-17 15:43 | Logical2u | Note Added: 0012776 | |
2010-09-17 15:44 | Logical2u | Relationship added | child of 0000296 |
2010-09-17 19:44 | Lemunde | Note Added: 0012781 | |
2010-09-17 19:52 | tripphippy | Note Added: 0012782 | |
2010-09-18 01:06 | Olith McHuman | Note Added: 0012783 | |
2010-09-18 01:13 | Olith McHuman | Note Edited: 0012783 | |
2010-09-18 02:14 | Olith McHuman | Note Edited: 0012783 | |
2010-10-06 06:09 | kwieland | Note Added: 0013221 | |
2010-11-09 13:15 |
|
Relationship added | has duplicate 0003532 |
2010-11-09 13:16 |
|
Note Added: 0013680 | |
2010-11-10 11:07 | Jiri Petru | Note Added: 0013688 | |
2010-11-10 11:12 | Jiri Petru | Note Edited: 0013688 | |
2010-11-10 11:12 | Jiri Petru | Note Edited: 0013688 | |
2010-11-10 12:58 | kwieland | Note Added: 0013690 | |
2010-12-21 10:59 | hyndis | Note Added: 0014669 | |
2010-12-30 04:07 | Rafal99 | Note Added: 0014753 | |
2011-03-05 15:30 | DoctorZuber | Note Added: 0015776 | |
2011-03-05 15:31 | DoctorZuber | Note Edited: 0015776 | |
2011-03-05 16:08 |
|
Note Added: 0015778 | |
2011-03-05 16:08 |
|
Relationship replaced | duplicate of 0000296 |
2011-03-05 16:08 |
|
Status | new => resolved |
2011-03-05 16:08 |
|
Resolution | open => duplicate |
2011-03-05 16:08 |
|
Assigned To | => user6 |