I was making a 3d game using physics impulses and forces, but I can’t really do that when the physics system doesn’t seem to account for deltatime properly, so what FPS cap should I make my game with?
I’m going for a low-poly, optimized artstyle similar to N64 games or perhaps a little more advanced like the PS2 or gamecube, but I don’t want to go as low as 30 FPS like in most of the games from that time.
Considering it’s a web-based thing and older computers won’t electron apps, I don’t want to stoop too low.
I think the issue would be if you are using “apply force” without TimeDelta(). The force actions are applied over time, while the impulse is instant. All of the “passive” movement should not be FPS dependent, if so then I think that would be a bug.
I generally just use impulses as I find it easier to understand and control a single instant force.
I forgot to mention, the problem isn’t with base physics, it’s when you apply any sort of linear damping to them, y’know whenever the value is above 0, that’s what makes things not framerate dependent
I made a post about it here a long while ago, I don’t know if it’s a bug or if I have to multiply something with something
Yeah that definitely seems like a bug then. It is a bit surprising that nobody else is reporting this, although that could partially be due to fewer people making 3D games and only a portion of them are using physics. But if things like damping and friction are tied to FPS then that would pretty much ruin your entire simulation unless FPS was perfectly locked
the base values 20-min 60-max should work fine for most cases, for low poly games/less graphical fidelity games most of the hardwares should run that atleast 30 fps, assuming you’re not using shaders or any other intense feature (such as dynamic light).
i would stay with 60 and tweak forces values based on the ideal fps.
actually i THINK that there is an issue with TimeDelta() in gdevelop, but i still researching to find out the supposed issue, so don’t believe me, just think about it. some formulas (that uses TimeDelta()) for returning Framerate aren’t actually returning the real framerate which is weird and based on that it might affect other formulas such as linear forces. and i’m also don’t know if TimeDelta() is the thing that Gdevelop uses internally for its own calculation or even if there is something to do with the Jolt Library. again, don’t believe me, just think about it when using it, cause i may be wrong.
TimeDelta() returns the amount of time since the last frame was rendered. But it doesn’t really matter since the passive effects like linear damping and friction are being applied by the extension. You would only have to worry about using TimeDelta correctly if you were manually applying friction etc. Which, if you are willing to get into it, would be a good way to conclusively show whether the extension itself has a problem