[Beta] Physics Stepping Method: Adaptive Timestepping

Hello developers,

We have launched a new beta option - PhysicsSteppingMethod - that will allow you to choose between physics stepping methods: Default , Fixed , and now Adaptive!

Read our previous announcement for more information on the differenced between physics stepping methods.

Studio Beta

This feature is available now for everyone as a Studio beta. Simply turn on “Adaptive Timestepping” in beta features, and select “Adaptive” for the “Physics Stepping Method” on the Workspace.

If you’re considering testing out the beta, you should consider the amount of physics your games has, but also the intensity of the physics your game is trying to simulate - the best improvements will come for games with Large amount of physics + Low Intensity simulations .

For Live Experiences

Currently, this is only open for testing inside Studio. If you would like to participate in testing out this new feature for a live experience, please contact me so I can have that set up for you!


Please let us know if you encounter any strange behavior with this feature turned on. Any feedback will be greatly appreciated!

106 Likes

This topic was automatically opened after 11 minutes.

I love this beta

will Workspace.PhysicsSimulationRate be added to select what frequency fixed runs at?

19 Likes

I have experienced massive lag issues and framerate dips, my plane also appears to be doing small bunny hops.



11 Likes

I’m not sure Plane Crazy is actually such a good fit for this because all the springs, joints, and wings will make it very sensitive to reduced physics frequency

29 Likes

Would you ever consider allowing developers control over the stepping frequency of certain objects or humanoids (even if there was a limit to how many objects you can adjust)? For example, I do like playing Roblox at over 60 FPS but when you have framerates larger than the stepping frequency, objects stuck at 60hz will look jittery and laggy, making it extremely distracting. The player character seems to be stuck at 60hz once adaptive is turned on, which makes playing with unlocked FPS a less than ideal experience. Even without the unlocked FPS excuse, I still think it will be pretty cool to control the frequency of lesser important things that the developers know is not too important for physics simulation.

12 Likes

I would also love to know if they plan on letting us mess around with these options as much as possible, to tie a fixed physics frame rate for certain situations and objects. Would love if they plan on keeping the Adaptive and Fixed options too, so developers can change according to how they see fit for their games.

example: setting a model to always have a simulation rate of 240hz and another model always running at a rate of 60hz, only changeable thru scripts

example2: setting a fixed value of 60hz or lower if said type of game has too many physics objects to calculate, for when the developer wants a consistent frame rate for physics rather than an adaptive version.

12 Likes

I also would like to support this idea, this would be useful for games that don’t really need to run the physics at 240hz or 120hz so instead we can cap it at 60hz, having a performance boost in the game overall.

9 Likes

So what mode would be best for the most realistic physics possible?

5 Likes

I love the update but my one question is, will this make a game lag much. I have seen with a lot of physics stuff I have been testing with I lag a lot, so I am wondering will this affect the games frame rate.

3 Likes

Wait does this stop the cframe bug and lags?

4 Likes

I love this feature, This feature will be a big step towards more realistic physics. :+1:

2 Likes

I support this. Perhaps have it as something that comes with collision groups (each collision group gets its own rate) or some other method.

2 Likes

This is cool, but it would be nice if we had control over the physics framerate itself.

It is no news that not being able to run code between the physics steps is a huge downside. I believe that projects which use custom physics, such as raycast cars, would benefit immensely from being able to disable physics stepping entirely. That way we can get accurate information on collision and prevent unwanted interactions between instances, even if it comes at a cost of accuracy.

11 Likes

I love the feature, when this is finished it’s gonna be sick

I know it’s in beta and all, but the projectiles just become overall slower and a bit choppy most likely due to the fixed step rate, I tried playing around with the PhysicsSteppingMethod property under workspace, but I haven’t been able to get that good of a result

https://gyazo.com/065b9e24500b5337a937c9714ace68e8

That’s while using the fixed method(keep in mind, usually the hits do not miss)

https://gyazo.com/4684ced5280744e01e47518a1c41b2a5

And that is adaptive(default is pretty much the same as fixed result wise) There aren’t any options to change the step frequency manually, that’d be just awesome, being able to manipulate the way that the physics engine works on studio would be shocking for a lot of people, me included

Even though the feature is in beta and lacks major patches and whatnot, the idea is amazing and I’d be more than happy to see this feature implemented in the feature, not as a beta feature but made it public some day

1 Like

this update should be insane for murder mystery 2: no more knife-freeze in mid-air

1 Like

Thanks for the feedback. We will be looking into the performance regression with this use case.

At this point, our target is to provide only automatic frequency assignment, but this might change in the future, depending on demand.

1 Like

The default mode (not adaptive) will provide the most precise physics.

1 Like

If the physics lagging is purely due to having too much stuff to simulate on your local client, yes this might help.

1 Like