v50 Steam/Premium information for editors
  • v50 information can now be added to pages in the main namespace. v0.47 information can still be found in the DF2014 namespace. See here for more details on the new versioning policy.
  • Use this page to report any issues related to the migration.
This notice may be cached—the current version can be found here.

Difference between revisions of "v0.31:Maximizing framerate"

From Dwarf Fortress Wiki
Jump to navigation Jump to search
m (minor tweaks)
(Flowing water.)
Line 45: Line 45:
 
* Fewer items inside a fort means fewer items to be {{l|stockpile}}d, checked for {{l|wear}}, and so on and so forth.
 
* Fewer items inside a fort means fewer items to be {{l|stockpile}}d, checked for {{l|wear}}, and so on and so forth.
 
** Use a {{l|Dwarven atom smasher}} to remove items, or donate them to {{l|Trading|passing caravans}} to be taken away.
 
** Use a {{l|Dwarven atom smasher}} to remove items, or donate them to {{l|Trading|passing caravans}} to be taken away.
** Don't dig out so much of the ground, don't build such large {{l|farm plot}}s, just don't generate so many items in the first place.
+
** Don't dig out so much of the ground, don't build such large {{l|Farming|farm plot}}s, just don't generate so many items in the first place.
 +
 
 +
* Flowing {{l|water}} slows the game down.
 +
** Don't build {{l|mist}} generators, {{l|Screw pump|pump stacks}}, or other major water-moving projects.
 +
** Don't embark on a {{l|river}} or {{l|ocean}}.  Rivers aren't too bad in their natural state, because the game only needs to calculate at where the water enters and where the water leaves, more-or-less skipping the water in between.  Then you start damming them and pumping water out, and it gets worse.
 +
** {{l|Aquifer}}s don't impose load until you start digging around in them.

Revision as of 19:27, 4 January 2011

This article is about an older version of DF.
A picture of Dwarf Fortress with Frames Per Second displayed.

Template:L is used in Dwarf Fortress to measure the speed at which the game is running. It is measured in "frames per second", or FPS for short. To check your FPS in Dwarf Fortress, simply change [FPS:NO] to [FPS:YES] in Template:L, and your FPS will be displayed on the top row of the screen. The first number is the current frame rate, while the number in parentheses is the current graphical frame refresh rate.

Increasing your Framerate

In general, the more stuff the game has to keep track of, the slower the game will run. So, reducing the amount of stuff active keeps your game running fast. Some possible reasons for slowdown, and ways to reduce and/or eliminate them:

  • Each dwarf needs to keep track of where he's going.
    • Limit the number of dwarves by setting the population cap.
  • Each animal needs to pathfind, too.
    • Tame animals can be put into Template:Ls, keeping them from having anywhere to go. Or you can butcher them.
  • Invaders also need to pathfind.
    • Turn off invasions using the option in Template:L.
  • Contaminants, e.g. Template:L spatters, accumulate on the ground and on dwarves who walk through the puddles. There is a bug (Bug:296) which makes them spread way too far.
    • Fortunately, there is a setting in D_init.txt (as of v0.31.18) that prevents them spreading from dwarf (or animal) to ground. Add in some in-fortress means of cleaning them off, and let your dwarves clean up the remaining mess.
  • G_FPS is a setting in the Template:L file. It controls how often Dwarf Fortress redraws the screen. It also controls how often the game checks for keyboard or mouse input.
    • Reducing G_FPS can speed up the rest of the game. The default choice of 50 works well, but many people reduce it down to 20 with no ill effect.
    • Reducing G_FPS too far can make the game unresponsive and glitchy. Some people can cope with 5; most cannot.
  • PRINT_MODE is another init setting. It controls the method Dwarf Fortress uses to draw the screen.
    • More advanced methods allow DF to make more use of OpenGL features and therefore your graphics card. STANDARD is a good starting point.
    • More advanced methods may still have bugs. 2D is more likely to be reliable.
  • The size of your world and embark site both increase the amount of terrain which DF needs to keep track of.
    • If you don't mind going vertical, try reducing your embark site from the default 4x4 squares to 3x3 or even 2x2.
    • World size probably doesn't matter except for the size of the save files, but reducing the number of cavern layers (default of 3) will help. You need at least 1 cavern layer to get underground Template:L, and 2 caverns to get all the underground Template:Ls.
  • Proper use of Template:L designations will help.
    • Setting corridors to "high" traffic, and dead-end workshop rooms next to them to "low" traffic, means the pathfinder algorithm will search more quickly along the corridor, and waste less time searching in the rooms.
  • Closing off unused areas with raised Template:Ls and locked Template:Ls can help.
    • Reducing the area which the pathfinder algorithm has to search lets it run faster.
    • In general the pathfinder algorithm is good about not searching irrelevant areas. Caverns are probably the worst offender.
  • Fewer items inside a fort means fewer items to be Template:Ld, checked for Template:L, and so on and so forth.
    • Use a Template:L to remove items, or donate them to Template:L to be taken away.
    • Don't dig out so much of the ground, don't build such large Template:Ls, just don't generate so many items in the first place.
  • Flowing Template:L slows the game down.
    • Don't build Template:L generators, Template:L, or other major water-moving projects.
    • Don't embark on a Template:L or Template:L. Rivers aren't too bad in their natural state, because the game only needs to calculate at where the water enters and where the water leaves, more-or-less skipping the water in between. Then you start damming them and pumping water out, and it gets worse.
    • Template:Ls don't impose load until you start digging around in them.