[Genhis][2.0.15] Mismatched units in space platforms

bartekltg
Long Handed Inserter
Long Handed Inserter
Posts: 50
Joined: Fri Feb 06, 2015 12:40 pm
Contact:

[Genhis][2.0.15] Mismatched units in space platforms

Post by bartekltg »

This is one of those "literally unplayable" type of "bugs", but a change would be purely aesthetic, no gameplay changes.

The reported by the game mass and thrust do not match the change of velocity.

Space platform follow nice physical equations:
Net force = thrust*(1+m/m0) - drag  [m0=10k tons, drag is a function of speed...]
acceleration = net_force / mass.

Mass is in kilograms (tons), thrust is in newtons, lets divide one by another, we get acceleration in m/s^2. If force does not change too much, it means in a timespan dt the platform changes the speed by a*dt.

For example, a 200 ton, 100 tiles-width ship ( (1+m/m0) is 1.02, we can ignore it for now) powered by 2GN (2.04GN precisely, 10 thrusters working full steam) should accelerate ~10km/s^2. Getting close to gaining 10km/s in the first second. Or 0.166km/s per tick.
But looking at the speedometer (it is most convenient, in the editor, going one tick at a time) the platform gains 10km/s after the first tick (9.8km/s due to drag if we start from orbit, and not form a freefall). For convenience, such a ship ("bla") is in the savefile.

It looks like somewhere in the formula ticks and seconds were swapped. In the results, thrusters act like they are 60 times stronger than the description claims.


A possible solution:
The acceleration is very fast, but I assume the numbers in "space_platform_acceleration_expression" were adjusted so the platform behave like the devs and playtesters wanted, so we do not want to change the output. But the thrust should be 60 times stronger (thruster is 6120MN).

So, let's make them 60 times stronger, and scale them back in the formula:
space_platform_acceleration_expression = "(thrust / (1 + weight / 10000000) - ((1500 * speed * speed + 1500 * abs(speed)) * (width * 0.5) + 10000) * sign(speed)) / weight / 60",
change into
"(thrust / (1 + weight / 10000000) /60 - ((1500 * speed * speed + 1500 * abs(speed)) * (width * 0.5) + 10000) * sign(speed)) / weight / 60",

Or, equivalently
(thrust / (1 + weight / 10000000) - 60*((1500 * speed * speed + 1500 * abs(speed)) * (width * 0.5) + 10000) * sign(speed)) / weight / 3600


This will result in exactly the same platform behavior, but now displayed thrust and mass will fit the acceleration
Attachments
test_acceleration.zip
(16.2 MiB) Downloaded 4 times
Panzerknacker
Fast Inserter
Fast Inserter
Posts: 234
Joined: Mon Aug 22, 2022 5:27 am
Contact:

Re: [2.0.15]Space age. Mismatched units in space platforms

Post by Panzerknacker »

It's good that there are people like you, respect.
Post Reply

Return to “Assigned”