[C++]Slow computer perfomance cause physics to work different

I have a pretty usual piece of code performing a free fall acceleration.

FallingVelocity += FreeFallAcceleration;
MovementSpeed.Z -= FallingVelocity;
MovementDistance = MovementSpeed * DeltaTime;

DeltaTime comes from a Tick loop so it’s based on frame change time.
I guess this code should work the same way on any computer because for one second of calculation any PC should get MovementSpeed.Z = -1 * FreeFallAcceleration*FrameRate. Since FrameRate = 1/DeltaTime, the results should be the same, but…
Same character jumps right on the middle of platform on PC#1 but a little overshoots and thus falls off platform on PC#2. What am I doing wrong?

Depending on how much it overshoots. If not too much - It is normal. On slower computer you’ll have less frames per second, so your movement change curve will be less accurately interpolated, so more error will be accumulated during physics calculation. It is a limitation of physics modelling and not too much you can do here. That is one reason why games are usually targeting fixed fps.

Depending on what you mean by overshoot - there can be options how you can fix this.

Well, not that much, but it still appears to be annoying. Thanks for explanation though.
That’s hard to explain how much, but it’s like 100 units. What’s displayed on pictures is an object (pizza slice like wedge) landing on a jumping platform (stairs like wedge). Difference is enough to miss landing with identical speed and jump height.

You should implement jumping Physics yourself is think. That what i would do.
Precompute jumping curve on jump start and than move object along it.
And use physics only for collision handling. If any collision occurs - get a hit point and hit vector from it and recompute bouncing curve and move along it, until next collision.

Nice graphics =D

Calculating a curve by hand is a really good idea, thanks, Yata.