In
a previous thread I presented a problem I had with my dwarves pathing out of water, and I ended up doing an experiment to shine some light on the limits of dwarven pathing out of water. I'm posting the results here for comment and criticism, and if there are no serious flaws indentified in the experiment, I'll incorporate the findings in to the wiki page on
Swimming in a few days.
ProblemDwarves would not follow a long, snaking path through water to reach dry land, though they would use a similar shorter path.
ExperimentCreate a system to allow paths of variable length to be created to find if there is a consistent maximum path length through water.
I built a simple structure on the bones of my old, non-functional lap pool that would allow doors to be set to be passable or forbidden to create a path differing in length by increments of 1.
Testing area Z1:
Testing Area Z0:
Initially the system used danger room dodging to get a group of military dwarves (test subjects 1, 2 and 3) to repeatedly fall in to the water. For later testing, a structure was build on to the north side of the danger room area to allow testing of civilian dwarves by dropping them through a hatch when they came to construct or deconstruct a wall.
All exit doors were closed, and once a dwarf was in the water, a test would begin. For each run, a door one square closer to the dwarf would be opened, and I'd wait for ten seconds. If the dwarf used the exit, that test was complete, the doors would be forbidden again and the next test would start.
Results- Subjects 1,2 and 3 were legendary super soldiers, all Skilled Swimmers
- Subject 4 was a legendary slightly-less-super soldier, Novice Swimmer
- Subject 5 was an architect with no real military skills and no swimming skills
- Distance is the North-South, Diagonal and East-West movements a dwarf had to make to exit the water, not counting the final movement on to dry land.
- Total distance is the sum of N-S, E-W and Diagonal movements, using a multiplier of 1.4 for the diagonal movements.
- A "Y" in the "Exited" column indicates they left the water on this run.
- A "Y" in the "Tried Others" column indicates other, longer distances were tried first before this exit was made. On some tests a door was still open from previously. Those exiting results do not have a "Y" in "Tried Others" and are not as meaningful.
- The total distances the dwarves covered when exiting the pool are highlighted in yellow.
ConclusionsA dwarf will cover a distance of 20.2 or less to exit water, but will not cover a distance of 20.8 or more.
Possible Shortcomings of Test- Human error - I was counting squares by moving the cursor. This may or may not account for the result of 23.2 in Test 3
- The test facility was not ideal, because I couldn't be arsed building a specialised facility from scratch.
- Alternate exits being on different sides seems a bit dodgy to me, in case something about the path after they exited the water influences the result, though it seemed not to in the end. At least in tests 1 to 13 the dwarves were dodging in to the water, so they would start from different squares. In those tests, exit paths of the same length were sometimes to the east or sometimes to the west.
- The exit path doing a u-turn. Though none of the exit paths were ever beyond the initial straight South to North section, so hopefully that was not a factor.
- All the exit paths were all in the same direction. It would be nice to check if orientation to the rest of the fortress had any effect.
- Tested only in standard circumstances. What are the effects of having enemies around, the dwarf being injured etc?
- Fairly small sample of dwarves as test subjects, with relatively narrow range of swimming skills.
- More tests are always betterer.
Proposed ActionAdd a passage to the swimming page on the wiki saying something along the lines of "Dwarves will generally leave the water if they can find a path out of around 20 length or less. If they can't find an exit within that distance, they'll just sit in place and wait (or drown)."
If anyone would like to confirm or invalidate these results, that would be great.