It is a common problem that physics do not have the same behavior at different framerates.
I came here to share a solution that I also use, because it was a problem that took me a long time to solve.
and I'm sure there will be someone else with similar problems
In AppGameKit there are multiple solutions, however all of them will present some disadvantages, especially when there are hundreds of dynamic objects, or hundreds of joints
specifically when there are hundreds of joints, the physics tend to behave very poorly at framerates below 30fps, regardless of whether you use fixed step or not.
and there are other solutions that will add input delay
However, I think this solves all the problems relating to physics and framerate, whether at 10fps or 1000fps.
+ Code Snippet#CONSTANT RENDER_FRAME_TIME 0.016667
SetSyncRate(0, 1)
lastStepTime as float = 0
// Game Main Loop
Do
// Physics Control Loop
inc lastStepTime, GetFrameTime()
while (lastStepTime >= RENDER_FRAME_TIME)
Update(RENDER_FRAME_TIME)
dec lastStepTime, RENDER_FRAME_TIME
endwhile
// Game Code
Input_And_Stuff_And_Logic()
// Update Tweens, and Render the game and Swap!
UpdateAllTweens(GetFrameTime())
Render()
Swap()
Loop