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 "40d:One-way"

From Dwarf Fortress Wiki
Jump to navigation Jump to search
m (Fixing in-namespace links)
m (Bot: Adding {{red link}})
Line 1: Line 1:
 +
{{red link}}
 
{{av}}
 
{{av}}
 
<!--Thanks and credit to VengefulDonut for this, at least for making it better known!
 
<!--Thanks and credit to VengefulDonut for this, at least for making it better known!

Revision as of 08:04, 3 April 2010

This article is about an older version of DF.

Currentlyv0.28.181.40d, 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 gates with ramps - and with those, one-way halls, stairs, and any other restricted path you can create from one controlled access point to another.

The set-up has only a few requirements:

  • 1) A closed route, with no "normal" entrances or exits.
  • 2) (At least) 2 z-levels over 3 tiles in a line, enough for an up-ramp, a supporting wall-top, and a down-ramp on the other side, forming a one-way gate.
  • 3) Two such gates, one at each end of the enclosed route to ensure the restricted one-way traffic flow.
  • (For newer players, make sure you understand how ramps work in DF - they're not purely intuitive!)

Lack of the first would allow any dwarf to wander in and go where they want from the "leak". Having only 1 gate at one end would, again, allow a counter-directional leak at the far end.

(If the route has nothing to cause dwarves to seek a job or path there, such as a long empty hallway from one area to another, that last may not be a problem since they cannot exit the far end and so have no (good) reason to ever enter. You could still send military in if you had reason to, but tantruming dwarfs or other creatures could as well. Your own tame animals could also wander as they please in such a setup, unless restricted by pet-locked doors or hatches.)


Basically, the trick is that when you build a ramp under a constructed floor (not a natural floor!), and then remove that floor, the game fails to recognize that as a down-ramp but still sees it as an up-ramp, and so only the "up" half of its path is recognized. Since neither the game nor your dwarfs can see or find a down-path, they only have one way off the upper level - one way.



Step by step

This description will be completely constructed - the first two steps could be a natural up slope to a natural floor and wall below it, but the next two must be constructed. Once you understand how it works, variations on design are certainly possible.


  • 1) Build a wall (b, C, w). This can be 1 tile or many more than 1, but the gain in z-levels is necessary.
  side view:  ___■___
top view: O (single wall)
z+1: + (single wall-top)


  • 2) Build a ramp next to the wall (b, C, r). Choose the side that will be your "down-only" ramp as far as direction of traffic flow. (Note that this is a normal ramp in every respect, and can be used to access the top of the ramp as usual.)
        <-- traffic flow <--
side view: __/■___
top view: ▲O (up slope & single wall)
z+1: ▼+ (down slope & single wall-top)


  • 3) Construct a floor (b, C, f) extending out over space directly above where your "up-only ramp" will be constructed in the next step.
        <-- traffic flow <--
_ side view: __/■___
top view: ▲O (up slope & single wall)
z+1: ▼++ (down slope, single wall-top and constructed floor)


  • 4) Construct your "up-only ramp" under that floor (identical to step 2). (This ramp is actually the one part of the gate that defines the direction of traffic flow.)
        <-- traffic flow <--
_ side view: __/■\__
top view: ▲O▲ (up slope, single wall, 2nd up slope)
z+1: ▼++ (down slope, single wall-top and constructed floor)


  • 5) Deconstruct the floor (d, n). (Your dwarves will use the first ramp to access the top of the wall and the floor normally.)
        <-- traffic flow <--
.. side view: __/■\__
top view: ▲O▲ (up slope, single wall, 2nd up slope)
z+1: ▼+ (down slope, single wall-top...and no down slope!)

Success!

A dwarf on the top of one wall can only see one way down - which should be away from the gate at the other end of the path. A dwarf on top of that matching gate can only see one way down - toward the path leading to the first gate. From one gate to the other, and never the other way.

A second pair of gates could allow another one-way route (next to, above, below, or elsewhere) back to the starting point.


It's recommended you play with this just a bit first in a sandbox mode, to understand both the concept and how it works in practice. By adding this "one-way entrance" before a set of stairs or normal ramps, you can create one-way traffic flows for any situation - excluding caravan wagons. The initial down-ramps do not have to be connected (or even present!) - it's the "not-a-down-ramp" that's the key, so using stairs in place of the fully-functional ramp would be fine. So long as there is at least one in-gate and one out-gate, more complex configurations can be created, forming Y's, T's or X's, whatever traffic flow you need.


Video Example

A veteran player has posted a video demonstration here: One-way passage example

It is purely a demo: from an embark situation, he builds his walls and ramps (designating them at the same time) - if he did not build the 2nd, dwarves might wander in from the other side. He then designates his constructed floors, and then his 2nd ramps.

Once the ramps are built, he designates deconstruction of the two floors and channels out the sides, creating a restricted path between the two gates. Once the floors are deconstructed, we can look at the space above where we know the 2nd ramps are: they read as "Empty Space" from this upper level, but dropping down to ground level, there they are: "Bauxite Block Upward Slope"! Each wall now has two up, but only one "down" ramp, and a closed path between them.

In order to illustrate that the path is indeed one-way and that the dwarves have no choice but to travel through it, a "Restricted" traffic zone is placed at one end. He then designates a garbage dump ( i, designate area, g ), remembers to turn on "Dwarves Gather Refuse From Outside" ( o, r, o ), and marks all items for dumping ( d, b, d, designate area ).

And (after a tense moment as the dwarves think about it)... the show begins.*

(* Complete with a couple headfakes by true dwarves who take the long way around, just because.)

Possible drawbacks

It is worth mentioning that in order to optimize pathfinding in DF, the map is partitioned into connected sections. Dwarves with a destination in a different section than the one they are in will not even attempt to path there. Dwarves trying to reach an area in the same section they are in will assume that a path exists. It's not clear how this will treat one-way passage breaks.

The video demonstrates that one-way passage breaks are considered connected (at least some of the time). This means if you are not careful building these, it could be dangerous for your processing speed. Dwarves repeatedly trying to path to an unreachable area could be a huge setback!

Having used two of these in one fort (one going in each direction) and locking down one of them I did discover how Dwarf Fortress reacts:

Quite calmly. A dwarf needing to travel in the opposite direction will go "against the flow" after a minute of hesitation. There was no apparent game slowdown due to pathing lag, but it did take the dwarf a minute to figure out that he could, indeed, travel the "wrong" way. Possible reason why it doesn't cause lag is because there was a longer, valid path still available. --Draco18s 20:28, 18 March 2010 (UTC)


See also: