Bay 12 Games Forum

Please login or register.

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

Author Topic: Blood spatter = steady FPS loss  (Read 16682 times)

Taranli Maren

  • Bay Watcher
    • View Profile
Re: Blood spatter = steady FPS loss
« Reply #30 on: September 17, 2010, 02:45:39 pm »

Would it be possible to have a bathing pool crossing a main hallway which drains into the magma sea for incineration?

Something like,

Code: [Select]
X = Wall
+ = Floor
. = Open Space
v = Down Ramp
^ = Up Ramp
~ = Water
D = Door
P = Pressure Plate set to open door when < 3/7 water level.

  X+++X
XXX+++X
X..vvvX
XXX+++X
  X+++X
 
XXXXXXXXXXX
X.+^^^PD~~~
XXXXXXXXXXX
Logged

Sphalerite

  • Bay Watcher
    • View Profile
    • Drew's Robots and stuff
Re: Blood spatter = steady FPS loss
« Reply #31 on: September 17, 2010, 02:50:43 pm »

I've experimented with similar designs.  I have found that it is not difficult to design a mechanism that has a flow of water that knocks contaminates off dwarves passing through an area, and flows sideways to carry the pieces of blood out of the way.  The problem comes when a dwarf steps into the washer and generates a pool of blood, and then another dwarf steps into that blood before it can be washed away, and then tracks the blood for some steps as he's walking away from the washer.  You end up with a washing room that is itself clean of blood, but that has a massive pool of blood just outside the washer where the water can't reach.  I haven't figured out a way to keep dwarves from tracking the blood out of the washing chamber and then tracking it all over the fortress.  It's always the tiles which are just outside of the area that has water flowing over it that accumulated pools of blood.
Logged
Any intelligent fool can make things bigger and more complex... It takes a touch of genius --- and a lot of courage to move in the opposite direction.

The_Fool76

  • Bay Watcher
    • View Profile
Re: Blood spatter = steady FPS loss
« Reply #32 on: September 17, 2010, 03:49:51 pm »

Huh... Is the slow down due to the memory loss or is the game actually checking all the coatings for syndromes or something?
Logged
Tis far better to be a witty fool than a foolish wit.

Hyndis

  • Bay Watcher
    • View Profile
Re: Blood spatter = steady FPS loss
« Reply #33 on: September 17, 2010, 04:06:42 pm »

Anyone remember one-way paths? Where, with clever uses of stairs, ramps, and constucted walls, one could let a creature path down one direction but not back?

If it wasn't fixed, you could designate a one-way path to the booze stockpile and plop a few bathing pools on the way back to the rest of the fort. That way, all the goop is only ever going in one direction, that being towards another cleaning pool or two.

Its been fixed.  :(
Logged

jei

  • Bay Watcher
    • View Profile
Re: Blood spatter = steady FPS loss
« Reply #34 on: September 17, 2010, 04:10:07 pm »

Huh... Is the slow down due to the memory loss or is the game actually checking all the coatings for syndromes or something?

In my 5 forts that have run down to 2 FPS, I have monitored the memory usage and to my knowledge there has been no significant memory loss.

Memory loss or leakage only happens when you savegame and reload the samegame or another, whereby the memory usage doubles as past game is somehow not freed from memory at all upon savegame. Also orders of the dorf military seem to persist between loading of different savegames. Quitting and restarting DF eliminates this problem.

This however does not explain the FPS loss. So far blood clutters spreading exponentially everywhere from everything with a name that has ever bled in your area, - seem to be the only reason for the significant FPS loss that I can find. Killing off all pets and moving creatures helps somewhat but it is no panacea and doesn't really cure the FPS loss in the long term as it progressively gets worse until everything is covered by everyone else's blood and vomit.
« Last Edit: September 17, 2010, 04:39:53 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.

Hyndis

  • Bay Watcher
    • View Profile
Re: Blood spatter = steady FPS loss
« Reply #35 on: September 17, 2010, 04:11:25 pm »

I've experimented with similar designs.  I have found that it is not difficult to design a mechanism that has a flow of water that knocks contaminates off dwarves passing through an area, and flows sideways to carry the pieces of blood out of the way.  The problem comes when a dwarf steps into the washer and generates a pool of blood, and then another dwarf steps into that blood before it can be washed away, and then tracks the blood for some steps as he's walking away from the washer.  You end up with a washing room that is itself clean of blood, but that has a massive pool of blood just outside the washer where the water can't reach.  I haven't figured out a way to keep dwarves from tracking the blood out of the washing chamber and then tracking it all over the fortress.  It's always the tiles which are just outside of the area that has water flowing over it that accumulated pools of blood.

You also need to make sure the water is not so deep that it interrupts pathing, as that will cause all kinds of mayhem if dwarves are trying to path across it. You would need to perfectly adjust the flow so that it is 1/7 or 2/7, but no more than 3/7 at all times, so the dwarf merely gets damp without being washed away or having jobs interrupted due to dangerous terrain.

Also having this constant flow of water will hurt your FPS on its own.

With the dipping pond, which is a very simple idea, there is no flowing water and it can be built nearly anywhere. You can fill it up with buckets. You only need 4 units of water per tile wide of dipping pond.

It looks like this from the side:

Code: [Select]
__  __
..\/..

Simple as that. In each ramp tile there is 2/7 water, which can be delivered by buckets in only a couple trips. You can make this as wide or narrow as you want. It removes all water on the dwarves themselves, but unfortunately drops the blood onto the ground or into the water where other dwarves can track it around. Strangely the dwarves still track it around despite the dwarves themselves being perfectly clean.
Logged

FleshForge

  • Bay Watcher
    • View Profile
Re: Blood spatter = steady FPS loss
« Reply #36 on: September 17, 2010, 04:24:33 pm »

I think it's likely that most of the overhead comes from tracking the vast amounts of "stuff" that builds up in a typical map, all the equipment and plants and creatures and constructions etc, with statistics for each, contents of things, all that.  Contaminants are certainly a factor, but even in a very clean map where there has been no blood shed FPS still always goes down, so they obviously aren't the only factor (and I don't think anyone is saying they are).  Just ... gobs and gobs of "stuff" everywhere.  It clearly isn't tied to raw memory usage, you can look at the process size and see it doesn't really grow that much between starting state and a highly developed state, it just runs a lot slower.   Might be a useful test to just run a fort without actually developing anything at all, just mod the embark points and take several thousand food and drink and turn off invaders and see what happens to FPS (although thousands of food/drink probably has an impact on FPS by itself).
Logged

jei

  • Bay Watcher
    • View Profile
Re: Blood spatter = steady FPS loss
« Reply #37 on: September 17, 2010, 04:27:57 pm »

I think that Toady will eventually hit us with Plague, hopefully treatable by Golden Salve or some such, but mostly preventable by soap and lots of cleaning.  It's historical.  It's realistic.  And it would be a Fun challenge for large forts with high population density.

Well, what ever his plans, it is certainly deadly with the FPS steadily degrading to zero no matter what you do. And I highly doubt dwarves will ever be able to clean up all the pools and animals wandering around the caves and nature bleeding.
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.

The_Fool76

  • Bay Watcher
    • View Profile
Re: Blood spatter = steady FPS loss
« Reply #38 on: September 17, 2010, 04:31:51 pm »

Huh, sounds like the real problem then is that the game is churning through all this info without enough optimization for what really needs to be looked at. 

I see no reason the game should even -look- at the coatings on that piece of goblin armor in my storage pile when no dwarf (or other animal) is near it.  (Well no reason other than it's just going through the list of every item in the game regardless.
Logged
Tis far better to be a witty fool than a foolish wit.

jei

  • Bay Watcher
    • View Profile
Re: Blood spatter = steady FPS loss
« Reply #39 on: September 17, 2010, 04:50:02 pm »

Huh, sounds like the real problem then is that the game is churning through all this info without enough optimization for what really needs to be looked at. 

I see no reason the game should even -look- at the coatings on that piece of goblin armor in my storage pile when no dwarf (or other animal) is near it.  (Well no reason other than it's just going through the list of every item in the game regardless.

That and the exponential growth of all contaminants from named entities the game creates and tracks. -- Do we really need instant genetic recognition of everyone whose blood drop is on some piece of cloth? Every goblin that has ever bled or vomited in your fort creates N dwarves * M cloth pieces * X other items with it's blood and vomit that requires tracking right now.

People who kill everything with no bloodshed may fare better with their forts right now.

« Last Edit: September 17, 2010, 04:53:45 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.

jei

  • Bay Watcher
    • View Profile
Re: Blood spatter = steady FPS loss
« Reply #40 on: September 17, 2010, 05:33:19 pm »

I think it's likely that most of the overhead comes from tracking the vast amounts of "stuff" that builds up in a typical map, all the equipment and plants and creatures and constructions etc, with statistics for each, contents of things, all that.  Contaminants are certainly a factor, but even in a very clean map where there has been no blood shed FPS still always goes down, so they obviously aren't the only factor (and I don't think anyone is saying they are).  Just ... gobs and gobs of "stuff" everywhere.  It clearly isn't tied to raw memory usage, you can look at the process size and see it doesn't really grow that much between starting state and a highly developed state, it just runs a lot slower.   Might be a useful test to just run a fort without actually developing anything at all, just mod the embark points and take several thousand food and drink and turn off invaders and see what happens to FPS (although thousands of food/drink probably has an impact on FPS by itself).

So, turning off all production might help a bit,.  :-[

With this game being such as it is, I don't think you can end up with having both fun and FPS right 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: Blood spatter = steady FPS loss
« Reply #41 on: September 17, 2010, 06:04:15 pm »

I just cleaned up some mud by building and un-building a paved road on top of it.  Maybe that'll work on blood, too.
Logged

Hyndis

  • Bay Watcher
    • View Profile
Re: Blood spatter = steady FPS loss
« Reply #42 on: September 17, 2010, 06:28:50 pm »

I just cleaned up some mud by building and un-building a paved road on top of it.  Maybe that'll work on blood, too.

It does, but it is a tedious fix and only works for small areas.
Logged

Psieye

  • Bay Watcher
    • View Profile
Re: Blood spatter = steady FPS loss
« Reply #43 on: September 17, 2010, 08:10:05 pm »

Might be a useful test to just run a fort without actually developing anything at all, just mod the embark points and take several thousand food and drink and turn off invaders and see what happens to FPS (although thousands of food/drink probably has an impact on FPS by itself).
Invaders off, weather off, worldgen params set so caverns have 0 water, no river, avoid cave adaptation, save scum if something bleeds, don't build any unnecessary items. Now you have a control experiment - make FPS uncapped in the init settings and periodically record the FPS, noting down what happened whenever it dropped. Afterwards, make a mass sacrifice to Armok when population has stabilised (get to some 100 dwarves, set init parameters to ban all further migrants and babies). Then we can see just how much impact the contaminants have as they endlessly spread and spread.
Logged
Military Training EXP Analysis
Congrats, Psieye. This is the first time I've seen a derailed thread get put back on the rails.

Leonidas

  • Bay Watcher
    • View Profile
Re: Blood spatter = steady FPS loss
« Reply #44 on: September 17, 2010, 09:07:42 pm »

If I had FPS woes (or when I get them), I would go after stockpiles.  I would guess that each tick, each square in a stockpile searches every item on the map to see if it should generate a work order.  Multiply items by stockpiles in a mature fortress, and you have a really big number.  I would turn off all my workshops, erase all my stockpiles, and see what happened to FPS.
Logged
Pages: 1 2 [3] 4