Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  
Pages: 1 [2] 3

Author Topic: Would this fix the blood FPS problem?  (Read 15280 times)

jei

  • Bay Watcher
    • View Profile
Re: Would this fix the blood FPS problem?
« Reply #15 on: September 19, 2010, 01:30:11 pm »

This is actually pretty stylish as you get boiling blood clouds from severe wounds, Makes it easier to follow battles. And makes them somewhat cooler looking.
Before cleaning everything up I was getting solid 20-21fps.  After cleaning everything up I was getting ... dun duh dunnn... solid 20-21fps.  No noticeable difference.

So it is as I was starting to fear already. No change for me either, though the maps are still bloody as I have no cleanup tools to use. -- This FPS loss is due to some bad programming elsewhere, though imo, related to contaminants. Or the cleanup didn't really effect the things the game keeps track of. Anyway, I am more and more of the mind that this is just a serious case of bad programming and design.

Maybe we have a ton of invisible vermins that eat the FPS? I know my fortress is littered with flies and rats picking at the corpses now...
Logged
Engraved on the monitor is an exceptionally designed image of FPS in Dwarf Fortress and it's multicore support by Toady. Toady is raising the multicore. The artwork relates to the masterful multicore support by Toady for the Dwarf Fortress in midwinter of 2010. Toady is surrounded by dwarves. The dwarves are rejoicing.

Leonidas

  • Bay Watcher
    • View Profile
Re: Would this fix the blood FPS problem?
« Reply #16 on: September 19, 2010, 02:08:59 pm »

If you spend the time time messing around with the BOILING_POINT and SPEC_HEAT tokens you can get it to where the blood will remain for a short period of time before evaporating.  I messed with this in arena mode with my cat mod and eventually managed to make it work, but it's really titchy in terms of the values you want to use and probably not worth it.

That's what I was going for, but I never saw any effect from changing Spec_Heat.  If you can remember how you made that work, I would be interested.

So it is as I was starting to fear already. No change for me either, though the maps are still bloody as I have no cleanup tools to use. -- This FPS loss is due to some bad programming elsewhere, though imo, related to contaminants. Or the cleanup didn't really effect the things the game keeps track of. Anyway, I am more and more of the mind that this is just a serious case of bad programming and design.

Maybe we have a ton of invisible vermins that eat the FPS? I know my fortress is littered with flies and rats picking at the corpses now...

I suspect the coatings.  Each contaminant applied to each item and body part creates its own object.  Washing a dwarf converts blood coatings to water coatings, which presumably eventually evaporate.  But until that evaporation your FPS would stay unchanged.

My best idea right now is lots of wells.  Dwarves will use them to wash off, and I think they come away with no coatings.
Logged

jei

  • Bay Watcher
    • View Profile
Re: Would this fix the blood FPS problem?
« Reply #17 on: September 19, 2010, 04:34:54 pm »

If you spend the time time messing around with the BOILING_POINT and SPEC_HEAT tokens you can get it to where the blood will remain for a short period of time before evaporating.  I messed with this in arena mode with my cat mod and eventually managed to make it work, but it's really titchy in terms of the values you want to use and probably not worth it.

That's what I was going for, but I never saw any effect from changing Spec_Heat.  If you can remember how you made that work, I would be interested.

So it is as I was starting to fear already. No change for me either, though the maps are still bloody as I have no cleanup tools to use. -- This FPS loss is due to some bad programming elsewhere, though imo, related to contaminants. Or the cleanup didn't really effect the things the game keeps track of. Anyway, I am more and more of the mind that this is just a serious case of bad programming and design.

Maybe we have a ton of invisible vermins that eat the FPS? I know my fortress is littered with flies and rats picking at the corpses now...

I suspect the coatings.  Each contaminant applied to each item and body part creates its own object.  Washing a dwarf converts blood coatings to water coatings, which presumably eventually evaporate.  But until that evaporation your FPS would stay unchanged.

My best idea right now is lots of wells.  Dwarves will use them to wash off, and I think they come away with no coatings.

That still leaves all the coatings on stuff that is lying around left by dead merchants, goblins and whatnot. Is there a way to "boil away" all loose armor that lies outside? Making blood stains corrosive or hot as magma perhaps...

Even all the stuff like roach remains and seeds remain in the game after dwarves have dumped it. Is nothing really *ever* destroyed from the game's inventory? Doesn't seem like it. Or maybe the bits that merchants manage to get away with alive.

I guess I should try to get that dfbloodcleaner to work, though I'd need to revert to a savegame prior to .13 unless .13 saves work in .12.
« Last Edit: September 19, 2010, 04:41:37 pm by jei »
Logged
Engraved on the monitor is an exceptionally designed image of FPS in Dwarf Fortress and it's multicore support by Toady. Toady is raising the multicore. The artwork relates to the masterful multicore support by Toady for the Dwarf Fortress in midwinter of 2010. Toady is surrounded by dwarves. The dwarves are rejoicing.

ledgekindred

  • Bay Watcher
  • Oh Boy, Microcline
    • View Profile
Re: Would this fix the blood FPS problem?
« Reply #18 on: September 19, 2010, 06:11:43 pm »

That still leaves all the coatings on stuff that is lying around left by dead merchants, goblins and whatnot. Is there a way to "boil away" all loose armor that lies outside? Making blood stains corrosive or hot as magma perhaps...

That's exactly the stuff that boils away when you set the blood boiling point lower.  It's the stuff stuck to surfaces that you need dfhack to clean up.  With Pause on Load, I loaded up the fort after changing the blood values.  With it paused before calculating a single frame, I examined some of my dorfs, especially the military ones.  They had crap all over them and their weapons.  Unpaused, watched the lovely clouds, reexamined. Spotless. 

Contaminants just don't seem to affect FPS.  Aside from the fact that many times people have profiled df and found that pathfinding by far takes up most of the processing time.  More dwarves, more rooms, more space, more walkable area, more time spent figuring out how they each get from point a to point b.

That's what I was going for, but I never saw any effect from changing Spec_Heat.  If you can remember how you made that work, I would be interested.

I don't have any kind of methodical answer.  I messed with BOILING_POINT, SPEC_HEAT and MAT_FIXED_TEMP more or less at random.  boiling point and fixed temp are obvious, spec heat determines how quickly a material warms up or cools down.  If you set the fixed temp really low, and the boiling point at something less than room temperature and the spec heat really really small (I was using like 10) then at least sometimes it seems that you'll get little puddles temporarily until it warms up just enough and boils away.  But it was never that predictable and I was only using arena mode so in hotter or colder climes I doubt it would turn out the same.
Logged
I don't understand, though that is about right with anything DF related.
I just hope he dies the same death that all dwarfs deserve: liver disease.
The legend of Reg: http://www.bay12forums.com/smf/index.php?topic=65866.0
Atir Stigildegel, Legless Hero of Diamondrelic: http://www.bay12forums.com/smf/index.php?topic=83136.0

jei

  • Bay Watcher
    • View Profile
Re: Would this fix the blood FPS problem?
« Reply #19 on: September 19, 2010, 06:32:12 pm »

Contaminants just don't seem to affect FPS.  Aside from the fact that many times people have profiled df and found that pathfinding by far takes up most of the processing time.  More dwarves, more rooms, more space, more walkable area, more time spent figuring out how they each get from point a to point b.

That's a bit of a hard pill to take as that just leaves very little that can be done by players, other than vainly hoping for a
better and more efficient pathing system. And waiting for it with unplayable forts. Also killing and caging of pets doesn't
seem to influence it that much in my case, even with a small area, but admittedly with 178 dorfs...

If all my forts end up at FPS 1-3 because I've dug too much, there's really nothing that I can do to fix things, besides not play.
The game is not "finishable" (i.e. Hell colonization) at that pace anymore.

The change from decent FPS to low numbers is still rather rapid and noticeable, often happening
in the course of one to two game years or so. -- Maybe it is the CPU running out of cache to run
some parts of the search system and is thus dependent on CPU model and cache as well...

It would be nice to know exactly how to avoid these FPS deaths, as they are really killing the game for me.
« Last Edit: September 19, 2010, 07:02:20 pm by jei »
Logged
Engraved on the monitor is an exceptionally designed image of FPS in Dwarf Fortress and it's multicore support by Toady. Toady is raising the multicore. The artwork relates to the masterful multicore support by Toady for the Dwarf Fortress in midwinter of 2010. Toady is surrounded by dwarves. The dwarves are rejoicing.

ledgekindred

  • Bay Watcher
  • Oh Boy, Microcline
    • View Profile
Re: Would this fix the blood FPS problem?
« Reply #20 on: September 19, 2010, 10:40:28 pm »

I'm a professional programmer and I have to honestly stand behind Toady in that I'm amazed what is in his game while leaving it playable on consumer hardware at all.  He stands very, very high on my list of developer respect for what he's accomplished.

There are still substantial optimizations he has yet to get around to, but he has promised many times, and for what it's worth, I believe he will indeed get to them.  In .13 he announced some optimizations that from some threads look like people are seeing as much as 20% fps improvement on existing forts.  (Too bad a lot of the other .13 weirdness doesn't appeal to many.) 

Not to sound like a jerk or a fanboi but, just gotta trust that Toady knows it's an issue and will get to it as soon as it's at the top of his worklist.
Logged
I don't understand, though that is about right with anything DF related.
I just hope he dies the same death that all dwarfs deserve: liver disease.
The legend of Reg: http://www.bay12forums.com/smf/index.php?topic=65866.0
Atir Stigildegel, Legless Hero of Diamondrelic: http://www.bay12forums.com/smf/index.php?topic=83136.0

Ganthan

  • Bay Watcher
    • View Profile
Re: Would this fix the blood FPS problem?
« Reply #21 on: September 19, 2010, 10:59:02 pm »

So what you all are basically saying here is that FPS death is possibly NOT being caused by rampant contaminants?  Well then, back to the drawing board for us.  It must be pathfinding of many creatures.  I can't think of what else it could be.
Logged

LuckyLuigi

  • Bay Watcher
  • Never Ever Savescum
    • View Profile
Re: Would this fix the blood FPS problem?
« Reply #22 on: September 20, 2010, 08:40:08 am »

Yeah pathfinding is very likely to be a CPU killer.
Close of unused space with locked doors and make sure that there are no bottlenecks in your transport routes to optimize performance.
Minimize route length with multiple stockpiles feeding each other might also be benificial.
I'm not sure how many fps I'm getting (how to tell ?) but it dropped a lot already.
I read somewhere you could constrain your animals in pits so they can't move anymore. Sounds helpful.
Logged
Check out Time Denee's brilliant DF comics of Bronzemurder and Oilfurnace.

Batdwarf Forever !

Psieye

  • Bay Watcher
    • View Profile
Re: Would this fix the blood FPS problem?
« Reply #23 on: September 20, 2010, 09:49:32 am »

In init settings, there's an option to turn on the FPS counter. Animals being locked up in one way or another will help a bit, but I still claim it's dwarves that dish out most of the pathfinding FPS damage. You can argue there's no conclusive evidence, but plenty of stories tell of how forts can greatly delay FPS damage by limiting population. There are also stories of mature forts with low FPS which suddenly get really low FPS when invaders appear - some people used the FPS counter as an advanced radar for when ambushers spawned on the map as it turned from 20-ish to 6-ish.
Logged
Military Training EXP Analysis
Congrats, Psieye. This is the first time I've seen a derailed thread get put back on the rails.

MaDeR Levap

  • Bay Watcher
    • View Profile
Re: Would this fix the blood FPS problem?
« Reply #24 on: September 20, 2010, 11:00:08 am »

Well, first I want to be really sure that boiling off contaminants are really deleted forever from memory without any dangling references (wonder if Toady use any smart pointers... managing memory manually is pure masochism) and purged from any lists and whatever.

Why? While I can readily agree that contaiments could be less affecting FPS than I believed, I cannot believe this would make no difference at all. It looks like anything that was created in fortress taints FPS forever. Regardless of reason, it cannot be pathfinding alone - if this would be case, then murdered off fortress with 7 dorfs like on beginning would also have FPS like on beginning of game. Obviously, this is not the case.

Something - probably unholy combination of all possible reasons voiced here and elsewhere (from pathfinding to contaminations) - rapes CPU more and more with time.
Logged

jei

  • Bay Watcher
    • View Profile
Re: Would this fix the blood FPS problem?
« Reply #25 on: September 20, 2010, 11:35:01 am »

Well, first I want to be really sure that boiling off contaminants are really deleted forever from memory without any dangling references (wonder if Toady use any smart pointers... managing memory manually is pure masochism) and purged from any lists and whatever.

Why? While I can readily agree that contaiments could be less affecting FPS than I believed, I cannot believe this would make no difference at all. It looks like anything that was created in fortress taints FPS forever. Regardless of reason, it cannot be pathfinding alone - if this would be case, then murdered off fortress with 7 dorfs like on beginning would also have FPS like on beginning of game. Obviously, this is not the case.

Something - probably unholy combination of all possible reasons voiced here and elsewhere (from pathfinding to contaminations) - rapes CPU more and more with time.

Exactly! The FPS does not really return to it's former glory, no matter what happens or what you do, depite some people's logic telling us how it should. This implies something is seriously wrong somewhere.

One idea that comes to mind is grouping the path finding to group "leaders" in ambushes and sieges, where path finding is done only to one individual that the rest also "follow" and use to find their way. This is because sieges and ambushes appear now to have a big hit on FPS and if path finding is the problem, being cpu heavy such as it is and not much improvable, then the smart option is to not do so much path finding in the first place, or at least for such long and heavy paths.

Also critters, vermin, etc. should be probably disallowed real path finding altogether and just make them "random walker" types that only consider whether next step is safe or not and randomly pick steps to take. The same with FBs and HFS that are caged in levels with no access. Disallow real path finding to them (degrading them to random walkers) until something changes over, on, or below said levels where they are to make it sensible and allow them access. And even then "grouped" path finding might be better to save the computational costs. Also, maybe some levels should be "disallowed" to be considered in path finding for HFS and surface critters altogether, e.g. Hell and it's pits. Also do dogs, pets and cats need to wander around so much, they could be limited for the sake of performance to be random walkers on one level or only concerned to stay within some range of their owners, who follow his paths.

Right now the game interface also holds dead things eternally and that in it self should speak a lot about how things are done inside. And such things do not speak of smart design or quality, but negligence and laziness, going with minimum work and putting things off until they become a problem.

Anyway, I'm rather sad to be staying off the game just for performance reasons.
Logged
Engraved on the monitor is an exceptionally designed image of FPS in Dwarf Fortress and it's multicore support by Toady. Toady is raising the multicore. The artwork relates to the masterful multicore support by Toady for the Dwarf Fortress in midwinter of 2010. Toady is surrounded by dwarves. The dwarves are rejoicing.

gtmattz

  • Bay Watcher
  • [PREFSTRING:BEARD]
    • View Profile
Re: Would this fix the blood FPS problem?
« Reply #26 on: September 20, 2010, 02:07:17 pm »

And such things do not speak of smart design or quality, but negligence and laziness, going with minimum work and putting things off until they become a problem.

why waste time fine tuning something that is working (albeit poorly) when you are planning on completely rebuilding it before the product is finished.  You have to remember that we are testing the game right now, not playing anything near a finished product, so there will be portions that are allowed to flounder when other things (such as introducing complete new components to the game) are taken care of.  I am confident that, once the optimization stage has commenced, we will see serious performance increases, even if the game is kept to a single core.
Logged
Quote from: Hyndis
Just try it! Its not like you die IRL if Urist McMiner falls into magma.

Akura

  • Bay Watcher
    • View Profile
Re: Would this fix the blood FPS problem?
« Reply #27 on: September 20, 2010, 02:31:07 pm »

Instead of just boiling blood, why not make it flammable when exposed to air, as well?

Urist McBrewer cancels Brew Drink, got a splinter from the barrel.
*BOOM*
Logged
Quote
They asked me how well I understood theoretical physics. I told them I had a theoretical degree in physics. They said welcome aboard.
... Yes, the hugs are for everyone.  No stabbing, though.  Just hugs.

Wastedlabor

  • Bay Watcher
    • View Profile
Re: Would this fix the blood FPS problem?
« Reply #28 on: September 20, 2010, 06:02:24 pm »

[BLOOD:LOCAL_CREATURE_MAT:BLOOD:SOLID]

[BLOOD:LOCAL_CREATURE_MAT:BLOOD:GAS]

I think this makes dwarves ignore normal food and eat vermin only.
Logged
He stole an onion. Off with his head.
I wonder, what would they do if someone killed their king.
Inevitable, who cares. Now an onion...

jei

  • Bay Watcher
    • View Profile
Re: Would this fix the blood FPS problem?
« Reply #29 on: September 20, 2010, 10:56:01 pm »

[BLOOD:LOCAL_CREATURE_MAT:BLOOD:SOLID]

[BLOOD:LOCAL_CREATURE_MAT:BLOOD:GAS]

I think this makes dwarves ignore normal food and eat vermin only.

Why would it do that?

I was testing a small fort and had steady 160 FPS with 7 dorfs until dropping down to 140 FPS with 20 new migrants and further to 80 FPS when I dug long straight tunnels that I like for ore vein location. It seems to me that at least long tunnels cause FPS degradation and are not well dealt with by path finding. Of course more path finders causes problems too.  This same computer has my normal low animal 60 dorf fort of 5 game years running at steady 2 FPS. (generated world at .12) Test world was generated at .13.

.13 seems to have some kind of large structures a lot that won't allow embark, like .12 structures did. This makes me very sad.

Also made a wooden room with walls and floor where I pumped aquifer water (with a pump on sand floor followed immediately by wood all around) to make drinking water, but said water was not purified nor potable thereafter.

Test ended when last of 27 dorfs died of dehydration. Caves were breached but test area of 4x4 caves that I did breach did not contain any water it seems. All merchants were robbed of all their load, but second spring ended up badly before any new ones came.

Anyway as the fort slowly died of thirs, the FPS did not return to 160, or above 100, it remained at 60-80ish. Admittedly some animals were breeding a bit, but I doubt it was that significant. The test ended at the late second spring or so, I believe. No elves or other civs were seen.

Anyway, FPS degradation seemed to be permanent even with a small fort. I suspect that the long mine shafts caused more of the permanence of the FPS loss.



« Last Edit: September 20, 2010, 10:58:57 pm by jei »
Logged
Engraved on the monitor is an exceptionally designed image of FPS in Dwarf Fortress and it's multicore support by Toady. Toady is raising the multicore. The artwork relates to the masterful multicore support by Toady for the Dwarf Fortress in midwinter of 2010. Toady is surrounded by dwarves. The dwarves are rejoicing.
Pages: 1 [2] 3