Bay 12 Games Forum

Please login or register.

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

Author Topic: Feasibility of training drowning with minecarts.  (Read 2663 times)

Fleeting Frames

  • Bay Watcher
  • Spooky cart at distance
    • View Profile
Re: Feasibility of training drowning with minecarts.
« Reply #15 on: April 29, 2021, 07:31:49 pm »

Good work. I don't think I've seen the drowning stopping on second tile being mentioned before. Few notes:

I've noted dwarf survival times as high as 1243 ticks (elite military) and under 350 ticks. I'd guess the theoretical minimum is 333.

I am also wondering if this project is making this thread be in the wrong sub-forum, I seem to remember there being a special sub-forum for doing science, but cannot find it.

Also, final thought for the night. This does not seem to be adding any experience to any skill other than swimming, but the calculations on the attributes page of the wiki (https://dwarffortresswiki.org/index.php/DF2014:Attribute#Training_attributes) would imply that drowning is increasing these attributes at the same rate as using or training at least 60 skills simultaneously. Thus I am curious if it respects the attribute cap.
Usually these kind of threads are put in DF Discussion.

Iirc it does.

From that same section on the wiki implies to me that it just makes the minecraft becomes effectively 459Γ, heavier which complicates impulse ramp designs. My choice to use rollers along most of the track should negate that drawback.
Worth noting that impulse ramp (or roller) acceleration doesn't depend on the weight of the cart, though the filling may result in cart being moved around as a result of a wave.

In fact, they might be able to simplify the design greatly: A minecart in 7/7 water on a line of impulse ramps will move a tile every 14 ticks (with occassional 15th). This is because the extra "friction" from full submerging acts like the same speed cap as you get in air at 2,7 tiles/step. Though it'd also add some constraints, as while you'll be able to get past first tile in a tick (due checkpoint effect), quick back of the napkin calc suggests the friction in water is too great to get past 2nd tile at 10k speed.


Ultimately, while I like minecarts, swim training and drowning training, I've personally dismissed water joyride approach for the most part. The issue is that the distribution of who uses it how much is uneven, with highest training given to those who don't have any skills you're finding useful. Maybe if it was the migrant entrance that also tests for vampires? But that'd would need 2400ish tile ramp track for a month long voyage - diggable, but not before your first migrants arrive - and would leave out children and residents.

Trabber Shir

  • Bay Watcher
    • View Profile
Re: Feasibility of training drowning with minecarts.
« Reply #16 on: April 29, 2021, 09:04:58 pm »

Thanks for the tips.

If 333 is the theoretical minimum, that should make my upcoming test very close to the maximum safe length.

As with my prior test track, it will be possible to be a 1-off or looped, so once I get a dwarf I want to improve in it, I can flip the switch and he will be the only one riding for a good long while. But, in this case I don't understand the "those who don't have any skills you're finding useful" idea for this training. Endurance is one of the three attribute which are really valuable to haulers, so those dwarves with no skills, or more precisely the ones assigned to hauling jobs (including push vehicles, because quantum stockpiles), are exactly the dwarves I want to improve. If I am looking to train specific dwarves, I go through the normal recruit, station, burrow, lock door, unrecruit, ... shenanigans that are my standard fair for any type of exclusive power leveling efforts.

I've never really wrapped my head around impulse ramps, but it seems they would have trouble exiting the pool at a depth of 7. Even a highest speed roller cannot push the cart up, I am having to put rollers on the up ramps, which create their own challenges.

Oh, I wrote all the above as if I had already posted my most recent results. Looks like that is still a draft in notepad. Coming shortly.
Logged

Trabber Shir

  • Bay Watcher
    • View Profile
Re: Feasibility of training drowning with minecarts.
« Reply #17 on: April 29, 2021, 10:12:27 pm »

The first Test subject chosen at random started with 1874 Endurance and 2096 Toughness on a track which loops in the underwater section until a level is pulled.
After completing 2 laps in this 24 tile long loop, both those stats have increased by 10, but I have discovered I shut the fill hatch too soon and the track has an air pocket which has allowed him to breathe. So this is not 100% efficient and does not tell me if he can drown in the minecart, which is the purpose of this test. So, aborting.
Now I get to see if the exit ramp actually works while the track is flooded... It does not, pulling the drain plug.

Second test is starting with the loop turned off in order to test the improved exit ramp (I added a roller to it).
Oddly, the same dwarf as the first test, starting this with 1897 Endurance and 2119 Toughness.
Without the loop, the underwater part of the track is only 26 tiles. Exit ramp worked as intended, new attributes are 1901 Endurance and 2123 Toughness. More detailed comparison also shows that since the start of the first test his Kinesthetic Sense and strength have both increased by 1, if that is due to this testing or outside factors I cannot be sure. Will make a point of keeping a screenshot with all the test subject attributes at each stage in future runs to watch for other unexpected changes.

Next is a more worthy test subject, I only hope someone flips the lever to turn on the loop in time to get a propper test of of him.
Starting attributes are 493 Endurance and 559 Toughness.
Lever got flipped a moment too late and he got off after only the one lap. Endurance up 4 points to 497, Toughness up 4 points to 563, no other attributes changed.

And that test subject is coming back for another ride, loop is turned on this time.
Starting attributes are 497 Endurance and 563 Toughness.
Caravan arrival screwed with my space bar tapping so I missed pausing to check his stats at the end of his first lap.
At the end of his second lap I could not check his stats because he died in the third tile of his third lap, for a total of 51 tiles traveled.
So, first important result: dwarves can die from drowning while in a minecart.

My next test track uses 6 rows each 28 submerged tiles long with 2 tile long turn around out of the water. The point of this track is to see if being winded from prior submersion will make subsequent submersion more deadly.

Edit just before posting:
Based on the couple posts above, I am extending the next track to 30 tiles as that is the theoretical max safe length, assuming 11 ticks per tile as observed in the first test and the provided 333 ticks for a minimum stat dwarf to perish. It is kind of funny to me that I had originally targeted 30 tiles and ended up with 20 because I forgot about the turn around level while designating the digging.
Logged

Bumber

  • Bay Watcher
  • REMOVE KOBOLD
    • View Profile
Re: Feasibility of training drowning with minecarts.
« Reply #18 on: April 30, 2021, 03:32:56 am »

Would setting up some kind of timer/counter be more compact than a long track?

Trying to think of something that wouldn't be bigger. Like a slow-moving cart loop that utilizes collisions until a heavy cart triggers a pressure plate, which switches an underwater roller on, freeing the dwarf from his own loop.
« Last Edit: April 30, 2021, 03:35:59 am by Bumber »
Logged
Reading his name would trigger it. Thinking of him would trigger it. No other circumstances would trigger it- it was strictly related to the concept of Bill Clinton entering the conscious mind.

THE xTROLL FUR SOCKx RUSE WAS A........... DISTACTION        the carp HAVE the wagon

A wizard has turned you into a wagon. This was inevitable (Y/y)?

Trabber Shir

  • Bay Watcher
    • View Profile
Re: Feasibility of training drowning with minecarts.
« Reply #19 on: April 30, 2021, 04:29:15 am »

It has been a few years since I messed with minecart logic but I don't remember it being very compact. In theory the following could be sufficient:

WRPrDRW
W = wall with the route stop on top of it
R = track ramp
P = track and pressure plate
r = roller (highest speed) pushing into the door
D = door on track
R = track ramp with highest speed roller
W = wall with the end of the route or start of return trip on top of it.


If you could get the door to open the right amount of time after the pressure plate gets triggered. The right amount of time is going to be about 300 ticks, but the exact amount needs determined via testing to get the total time drowning to as close to 333 ticks as you can manage without going over. Note that the minecart needs to be full of water and thus quite heavy before it enters the submerged area or it will reduce the height of the water when it fills. That was the cause of my anomalous depth 6 tiles in some prior tests. Becuase of that weight, you probably want a return path as well. Also note that the roller on the up ramp needs powered from the side.

Meanwhile, I am running into issues powering the up ramps in my new test track. I may have figured out the problem while typing this post, which I originally intended to be a description of the problem and request for help.
Logged

Trabber Shir

  • Bay Watcher
    • View Profile
Re: Feasibility of training drowning with minecarts.
« Reply #20 on: April 30, 2021, 06:48:51 am »

Early results from the 6 lane test track are in: first subject died a mere 3 tiles in to the 4th lane. So, it seems that a few ticks of air does not fully reset the drowning countdown.

I wonder if the corpse will intefere with upcoming test subjects.

Edit: yes the corpse interferes, the second subject jumped out of the cart as soon as he discovered the corpse.
« Last Edit: April 30, 2021, 06:50:26 am by Trabber Shir »
Logged

Trabber Shir

  • Bay Watcher
    • View Profile
Re: Feasibility of training drowning with minecarts.
« Reply #21 on: April 30, 2021, 08:29:15 am »

I am out of time for now, but have run 7 tests on the 6 lane rig. How long a dwarf lasts in this death trap is closely correlated with the sum of endurance and toughness, which I suppose should not be surprising considering that it trains those at nearly the same rate.

The least fit dwarf I tested had 251 endurance and 1067 toughness for a sum of 1318 and perished on the 24th tile of the 2nd lane. In other words he did not complete even 2 runs with 3 ticks of not drowning between and a much worse dwarf is definitely possible.

For comparison, the most fit dwarf I tested had 1967 endurance and 1306 toughness for a sum of 3273 and perished on the 15th tile of the 4th lane.

Ideas for the next steps figuring out how to optimize the procedure would be appreciated. It is not that I lack ideas, it is that I have too many and most are labor intensive. It might be time to write a dfhack script that teleports the dwarf to safety after x ticks and checks if he is winded when he stops being drowning. But despite having been a software engineer for 10 years I have not written more than a few dozen lines in the last 18 months and that script sounds a lot harder than it should.
Logged

DwarfStar

  • Bay Watcher
    • View Profile
Re: Feasibility of training drowning with minecarts.
« Reply #22 on: April 30, 2021, 09:36:13 am »

Maybe there are too many other factors (maybe tiredness or hunger?) to drowning survival that it’s impossible to set up a safe drowning experience.
Logged

Bumber

  • Bay Watcher
  • REMOVE KOBOLD
    • View Profile
Re: Feasibility of training drowning with minecarts.
« Reply #23 on: May 01, 2021, 04:21:46 pm »

It might be time to write a dfhack script that teleports the dwarf to safety after x ticks and checks if he is winded when he stops being drowning.

You can just check the counters directly if you're using dfhack. "counters.suffocation" and "counters.winded" should be the ones you need. "flags1.drowning" might also be useful.
Logged
Reading his name would trigger it. Thinking of him would trigger it. No other circumstances would trigger it- it was strictly related to the concept of Bill Clinton entering the conscious mind.

THE xTROLL FUR SOCKx RUSE WAS A........... DISTACTION        the carp HAVE the wagon

A wizard has turned you into a wagon. This was inevitable (Y/y)?

Fleeting Frames

  • Bay Watcher
  • Spooky cart at distance
    • View Profile
Re: Feasibility of training drowning with minecarts.
« Reply #24 on: May 01, 2021, 07:45:40 pm »

You're correct that impulse ramps would be unable to exit fully submerged channel with an accelerating ramp at the end - the cart would start bouncing between last two tiles. However, if the last ramp is non-accelerating (only wall connection), it'll be able to exit.



Winded state goes up to 50 ticks, then it starts incrementing drowning ticks. Probably needs longer out of water to catch their breath. Almost fully recovering should be safe.

Looking at dwarf with 1191 toughness and 281 endurance, 6/9 7/7 was fine, 7/9 was also fine (after a month), 8/9 was bit of a fight, 17/18 drowned eventually at 1130 counters (Toughness and endurance maxed out at 2441/1281)

Here's the command, btw, as you might find it useful:
Code: [Select]
repeat -name dwarfwatcher -time 1 -timeUnits"days" -command [ ":lua print(df.unit.find(77).counters.suffocation)" ]Where 77 is the dwarf id (gotten off teleport -showunitid)

Might want to display state more often than once a day, though .v



Collision-based cyclers can be pretty compact: Minimal minecart timer would be 3 tiles long: A pressure plate on track(/ramp to reset), a heavy cart on track stop, and light cart on track/ramp with roller to stop. Load it with right weights and friction, and it'll be able to count to 50000 ticks.

But in this case, I think the old =||= three-ramp setup would be quite sufficient, as slamming into the wall there can help with delaying release for 288 ticks if you want to aim for "just short enough to be safe" cycle. (add another dozen for time to drop down a hatch and another 5 to hit the start of cycle down a ramp)



You could probably solve this issue with engineering tbh - exit the track at given position, pressure plate there to trigger a support collapse to pause the game.

But DwarfStar may be right - I recall a tale of an adventurer drowning in the middle of a river because they ate until they were nauseous and as a result their Swimming skill decreased below the safe level.
« Last Edit: May 01, 2021, 07:48:36 pm by Fleeting Frames »
Logged
Pages: 1 [2]