First time poster here. I was inspired by Snaake and xmoffitt's efforts to get to the bottom of quantifying the physics of minecarts.
With numbers, and hopefully in a less cryptic form than xmoffitt's Python code.
First off, Snaake's Urist units are not a linear measure of speed. A cart travelling twice as fast will have 4 times as many Urists by this measure. I have measured speed in tiles per step (
i.e. the number of squares moved using the .:One-step control, abbreviated m/s for simplicity).
As an aside, I found that almost nothing depended on minecart weight. All of my experiments were checked with a willow cart (15 U) and a lead cart filled with pitchblende boulders (453U unladen, 4253U laden). The only exception is When Minecarts Collide. Everything else seemed the same for both carts. (If anyone has proof to the contrary, I will retest.)
All of this is was done on vanilla 34.11 + Phoebus tileset.
My findings, answering Snaake's original questions, are as follows:
- Aside from fluids, minecart physics is entirely deterministic, there is no randmness. And it bears some resemblance to real-world Newtonian physics.
- Every dwarf gives every minecart an initial velocity of 0.2 tiles per step.
- See above. Tested on straight and curved tracks. Also non-track, FWIW.
- Here is Snaake's mis-step. Straight track tiles remove a constant amount of velocity per time step, not per tile. The velocity of every cart on a straight track tile decreases by 0.0001 tiles per step per step. A pushed cart at 0.2 m/s takes 2000 s to stop, travelling 200 tiles.
- As best I can tell, curved track tiles apply the normal friction of 0.0001 m/s/s, but also subtract an additional 0.01 m/s when the cart exits the tile.
- Carved and constructed tracks...
- ...and bridges all have the same friction.
- Track stops also apply friction acceleration to minecarts. The values are:
- Lowest 0.0001 m/s/s (same as normal track)
- Low 0.0005 m/s/s
- Medium 0.005 m/s/s
- High 0.1 m/s/s
- Highest 0.5 m/s/s
I am not sure about the 'Highest' value, but it is not infinite. A cart launched from 20 ramps up will cross 1 Highest track stop (slowing considerably). - Down ramps have an acceleration of 0.068 m/s/s. Since a fast moving cart will spend few ticks on the ramp, this means that it will accelerate less than a slow moving cart. As a point of reference, a cart started from rest on the 8th ramp up will reach the bottom travelling at 1.0 m/s, five time faster than a Dorven push.
- Comparing ramps and parabolic drops is difficult. However, a falling cart actually seems to gain less energy (1/2*v2) per z-level dropped than one rolling down a ramp.
- Up ramps have an acceleration of -0.074 m/s/s. This means that a cart can never go up as far as it dropped.
- Unpowered rollers act like the underlying track, they have no extra friction.
- Powered rollers give a cart a fixed speed in the direction they are pointing. The speeds are:
- Lowest 0.1 m/s
- Low 0.2 m/s (a dorven push)
- Medium 0.3 m/s
- High 0.4 m/s
- Highest 0.5 m/s
This attests to the general uselessness of rollers. A cart goes faster after dropping down two ramps than after being launched by the Highest speed of roller. - As far as I can tell, it does not matter if you have 5 rollers or just 1. As soon as the cart passes the roller, its speed is increased to the above value. This was true for both the willow and lead & pitchblende carts.
- Max roller speed? There is only one speed. However, a cart going in the direction of the rollers, and faster than the roller speed, is unaffected by them.
- Reverse roller running. If a cart tries to go the wrong way through a reverse roller, its velocity is decreased by 1 as it exits the tile. If the velocity goes negative (the cart would be travelling back the way it came, i.e. in the direction of the roller) it is immediately accelerated to the above roller speed. Crucially, this means a Highest speed roller can never launch a cart the wrong way through a Lowest speed roller.
- Derailing will always occur if v > 0.5, and never occur if v <= 0.5. No rollers can ever cause a cart to derail. Again, this is independent of cart weight. Non-track tiles seem to have a uniform friction of 0.05 m/s/s.
- Fluids introduce an element of randomness to cart physics. Here I got inconsistent and confusing results. Also, a headache. Generally, though, more water slows down a cart more, and 7/7 water slows it down a lot. This agrees with zuglar's findings, above.
Snaake's further research questions:
Maximum speed:
While I haven't tried it, there is a maximum speed set by the fact that ramps don't add a constant increment of speed. If my numbers are correct, then even a 200 z-level straight ramp will only get the minecart moving at just over 5.2 m/s. Not that that is slow, as such...
Cart-on-cart collisions:
I haven't tested this extensively, just pushing my two test carts into one another.
The results are that the collisions are not perfectly elastic. If a lighter cart strikes a heavier one, then the lighter cart stops, and the heavier cart moves off with the correct velocity to conserve momentum. If a heavier cart strikes a lighter one, then the heavier cart also stops, and the lighter cart moves off at the former speed speed of the heavier cart. Just my observations, there is a lot more to it than this.
That about covers the OP's questions.
Bear in mind, though, as with all science (and ‼SCIENCE‼), these are just the results of my tests. Corrections, complaints, comments and confirmations welcome.