1 page
^^
vv
List results:
Search options:
Use \ before commas in usernames
Edit history:
Skull64: 2017-03-23 03:56:17 pm
Skull64: 2017-03-23 03:49:26 pm
Skull64: 2017-03-23 03:28:52 pm
Skull64: 2017-03-23 03:28:24 pm
The physics of falling in Metroid Prime are similar to those on Earth; that is, constant downward acceleration. Specifically, your vertical velocity decreases by -67/60 units every frame. Since the velocity and position values are stored as single-precision floats, this got me thinking: after falling for a long enough time, your vertical velocity should be low enough that subtracting 67/60 from it would not change its value because the last bit of the float storing the velocity would be over 2*67/60. This means that a terminal velocity should exist, and if it does, there should also be a minimum possible z-position due to the same floating point issue.

To simulate this, I wrote a simple script to simulate falling. The logic basically looks like this:

Code:
while True:
    f += 1
    v += -67/60
    z += v/60


where f is the frame ID, v is the vertical velocity, z is the vertical position, and v and z are stored as 32-bit floats.

Here is a summary of some events that occur and when they occur:

Code:
   Frame | Time       | Note
---------+------------+-------------------------------------------------
       0 | 0          | Effective acceleration becomes -1.116666674614
  235484 | 1.09 hours | Effective acceleration becomes -1.125
 1866602 | 8.64 hours | Effective acceleration becomes -1
16546665 | 3.19 days  | Effective acceleration becomes -2
24935273 | 4.81 days  | Effective acceleration becomes 0 permanently,
         |            | Velocity becomes -3.355443200000e+07 permanently
38757580 | 7.48 days  | Position becomes -1.759218604442e+13 permanently


So in other words, you hit terminal velocity at 4.81 days and you bottom out at 7.48 days.

I also plotted the data.

Icefire was kind enough to test this on emulator with PrimeWatch, and he found that my numbers are correct. If you manually set your velocity to the terminal velocity and your position to just above the minimum position, you will fall at a constant rate (the terminal velocity) until you hit the minimum position, at which point your position stops changing.

Another thought I had would be to calculate how long it would take to float back up from the lowest position, if it were possible to float down there. (Floating is impossible down there for the same reason that there's a minimum position you can get from falling in the first place: lack of floating point precision, and the upwards floating speed is orders of magnitude smaller than the downwards falling speed.) The floating speed is 0.03 position units per second, meaning it would take 3.52e+16 frames, or 18.6 million years, to float back up, if floating were possible.
Thread title: 
Except in Metroid Prime, there is no terminal velocity.
Edit history:
Hazel: 2017-03-22 05:41:39 pm
Hazel: 2017-03-22 05:41:30 pm
rocks, locks, and invisible blocks
So inside every box is another box that takes a week of falling to reach.

This begs the question of how many years it'd take to reach the limit walking sideways. ...and whether or not you could reach the ceiling by floating before the heat death of the universe.
Edit history:
Skull64: 2017-03-23 10:27:56 am
The magnitude of the minimum height possible from falling is far, far greater than the magnitude of the maximum height possible from floating. This is because when you're at the terminal fall velocity, your position is changing by -559,240.533... units per frame, whereas when you're floating, your position is only changing by 0.0005036 units per frame. You're going to run out of floating point precision from floating after a much shorter distance than you do from falling.

I'll run the numbers later to see how far you can actually float and how long it would take.
I run this here hotel of an evening
wait, so there's an actual limit?


Quote from Hazel:
So inside every box is another box that takes a week of falling to reach.
Quote from Hazel:
...the heat death of the universe.

???
rocks, locks, and invisible blocks
Quote from Skull64:
I'll run the numbers later to see how far you can actually float and how long it would take.
💜
Edit history:
Skull64: 2017-03-23 04:06:22 pm
K so I did the same thing to simulate floating speed. This time the logic looks like this:

Code:
while True:
    f += 1
    z += 0.0005


Some important events:

Code:
   Frame | Time       | Note
---------+------------+-------------------------------------------------
       0 | 0          | Effective velocity becomes 5.000000237487e-04
  509361 | 2.36 hours | Effective velocity becomes 4.882812500000e-04
16762288 | 3.23 days  | Effective velocity becomes 9.765625000000e-04
25150896 | 4.85 days  | Effective velocity becomes 0 permanently, 
         |            | Position becomes 16384 permanently


So in other words, you stop floating after 4.85 days, but the distance you can float is a little over a billion times smaller than the distance you can fall.

Plotted data

Funnily enough, it only takes 1327 frames, or 22.1 seconds, to fall all the way back down.
rocks, locks, and invisible blocks
Alright alright alright, now for the real question. How high can you infinite bomb jump with Floaty Jump?
I'd need some detailed frame data to answer that