Hello,
can I speed up physics only (3D)?
Engine.set_time_scale() would work but I dont want to take into account time_scale for every other value (e.g. tween duration etc.) to counter the effect there.

Problem: I'm working at a small scale (domino objects etc.) Because of the small scale I scaled everything by 10 to avoid buggy physics but of course the simulation is way to slow now. Changing gravity does not solve my problem.

Why did you need to scale anything to begin with? What bugs were there? Maybe there is a better solution than scaling everything 10x.

  • 7892 replied to this.

    With many domino stones one might want to consider half of a physics time-step (30/s) for higher accuracy. Just like @cybereality said, I would search the problem elsewhere.

    Generally, If the time/step changes and things start to happen too slowly/fast, then one might have forgotten to account properly for the delta time that passed between steps.

    • 7892 replied to this.

      cybereality Why did you need to scale anything to begin with? What bugs were there? Maybe there is a better solution than scaling everything 10x.

      Well if I use a scale of 1:1 and a domino stone is ~ 56x26x8mm they are just bouncing around. I tried higher physics steps and more solve iterations.

      Pixophir With many domino stones one might want to consider half of a physics time-step (30/s) for higher accuracy

      Sorry I dont understand what you mean 🙁

      Pixophir Generally, If the time/step changes and things start to happen too slowly/fast, then one might have forgotten to account properly for the delta time that passed between steps.

      But the delta time changes too depending on time_scale but maybe you are talking about something different?

      BTW: I'm using Godot 4.0 Alpha 10

      I haven't tried the physics on small objects. It's possible it's too small (8mm is really small). There are tweaks you can make to the collision, I think there is a hit box sort of cage that is slightly bigger than the object. You should try to tweak this stuff, there may be a way to get it to work. Also, I'm not sure why the physics would be slow. I don't think the size of the object is taken into account (either in the engine, or in real life). Only the mass would, but even then it should not make a difference because friction (on air or ground) is not simulated. So the speed should be the same AFAIK.

      • 7892 replied to this.

        cybereality I haven't tried the physics on small objects. It's possible it's too small (8mm is really small). There are tweaks you can make to the collision, I think there is a hit box sort of cage that is slightly bigger than the object. You should try to tweak this stuff, there may be a way to get it to work. Also, I'm not sure why the physics would be slow. I don't think the size of the object is taken into account (either in the engine, or in real life). Only the mass would, but even then it should not make a difference because friction (on air or ground) is not simulated. So the speed should be the same AFAIK.

        I couldn't get it to work at 1:1 no matter what. But that does not mean thats its impossible...
        The cage (collision margin) is Bullet Physics only and not supported in Godot Physics. Using a scale of 10:1 and adjusting time_scale and gravity works and the result is 90% what I want but its annoying because now I need to use delta and time_scale for each time related value like movement etc.