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.

40d:Path

From Dwarf Fortress Wiki
Jump to navigation Jump to search
This article is about an older version of DF.


The term Path, or Pathing, is used in Fortress Mode to refer to the game process of determining how and where dwarves and other creatures will get from one place to another, to fulfill their various personal tasks and priorities. The game code attempts to send them on the shortest, quickest route possible, their "path". This may change with every step, and in fact the game checks and rechecks each creature's path many, many times as they proceed. If a dwarf needs to move down a hall, they "path" down that hall. If some other dwarves are coming the other way, each one paths to avoid the other if possible. If the hall is too crowded, a dwarf might decide it's faster (at that moment) to path down a different hall, and take a longer way around. If a large hall is very crowded, each creature in that hall constantly changes their pathing as the others do as well. An animal or dwarf may choose to path next to a magma pipe, with unfortunate results.

Pathing has a serious effect on framerate, or "frames per second" (fps), the speed at which the game advances. The more creatures on the map, the more units that need to figure out how to they'll move around, the slower the framerate goes (though this may not be noticeable or a concern on more powerful computers).

Liquids in motion (water or magma) also path, and although their rules for movement may seem more simple ("go downstream"), a body of liquid has a huge number of "individuals", different tiles that each do their own pathing to more accurately simulate the properties of that liquid as it flows and spreads. A pool that is being filled or has been partially drained suddenly has lower- and higher-level tiles that begin to path among each other, unless or until that pool refills to its full maximum depth of 7/7. Waterfalls, especially, are known to hurt framerate. (If an underground river has a waterfall, as many do, fps has been observed to drop from the moment that river is first discovered and the waterfall exposed - more than if an identical river without the waterfall is discovered. Similarly when artificial waterfalls are first activated.)

If a dwarf refuses to fulfill a job, simply standing in place, often a lack of path is the problem. Forbidden doors, up-stairs that have been removed, or orders to construct bridges that are designated to operate from the far side of a chasm are all common pathing deal-breakers. Incorrect use of ramps can easily create a problem, and have been known to even when correctly constructed if they are many z-levels deep. (If in doubt, build a new, separate set of stairs.)

Pathing decisions in certain areas can be weighted by a player by designating high, low or restricted Traffic areas. Careful use of traffic areas has been known to improve framerate by reducing pathing load.

Pathing to Materials[edit]

Determining the "nearest object" doesn't use the same pathing logic, but considers a simple 3-D cube. One tile horizontal is the same "distance to an object" as one level directly up or down. So if two adjacent z-levels have no easy access between them, a generic crafts-dwarf might travel the long way around to get the material immediately above/below their workshop rather than use the stockpile a few tiles away - 1 level up is "closer" than 3 tiles to the side. The same holds true for the "nearest stone" for a catapult.

One-way paths[edit]

Due to what seems to be a minor bug rather than a feature, it's not only possible but quite easy to create one-way ramps - and with those, one-way halls, stairs, and any other restricted path you can create from one controlled access point to another. See One-way for more details.