Adaptive Timestepping as Default

If people incist on using it, we can leave it as a legacy option. But when combined with the planned updates to our solver/physics system, running fixed 240hz will be overkill (unless you are making a racing-sim that requires ultra precise physics?) for most games.

2 Likes

To be clear, it’s the ‘Fixed’ option that can go away in the future, not the high-res physics. For example maybe we will add a UltraPrecise stepping mode that will run at 480~240hz.

2 Likes

It’s more like, nobody really wants Adaptive to replace fixed as the default setting, and the average ROBLOX developer may or may not know why suddenly their game doesn’t work the same as before. Even if all the physics messiness is hashed out, the reliability and relative consistency of Fixed timestep events in code is FAR superior to anything done with Adaptive. On the code side of things, physics is irrelevent when you have scripts that need to simply need update every frame with relative smoothness and you get really bad results and jitter due to inconsistent timestepping on Adaptive. I’m pretty certain from testing that even the default camera is affected by this, though that was more towards when Adaptive first came out. But I personally think it’s not a good look to enforce new changes that jeopardizes the behavior of runtime events which make up a large portion of systems in almost every game on the platform.

4 Likes

Also, so far I haven’t seen any advantages of using Adaptive over Fixed.

I’ve always been so disappointed that the higher the constraints in an assembly, the more bizarre it’s physics perform. Getting bridges, conveyor belts, etc, to work? Has always been near-impossible without a lot of careful tuning, so it does not surprise me at all that this is making it worse.

The only advantage is to Roblox itself. I can understand that a lot of games that aren’t using heavy physics are getting over-kill CPU calculations run on the servers. Those CPU cycles cost money. For a single game instance, the benefits are too small to notice, but spread across millions of running servers, saving some CPU adds up to cost savings for Roblox. That part of business, I understand for Roblox. Having the default set to Adaptive for the bazillion simple obby games out there makes sense for cost savings. Not having the option to use Fixed mode (even in the near future) when it is really needed is where people are feeling the rub. I only speak for myself, but I have nothing against Roblox using a more CPU less intensive physics mode as the default for all the newbies making games out there to help keep server cost down. It’s just forcing everyone to use adaptive will just break all the more advanced and developed games out there, including my own, and that’s why we come here to speak up about it. :smiley:

1 Like

Yeah I feel like if adaptive behaved the exact same way as Fixed, with the only difference being stepped frequency, and somehow it was able to retain the normal runservice event consistency, it’d be fine, but right now all it does is break things and produce jittery runtime code

was Fixed a default stepping method?

Adaptive is an absolute mess. I noticed characters who were holding weapons were jittering after standing still for too long and it turns out it was adaptive that was causing it. Way too many issue with this for it to be default.

1 Like

While Adaptive does not affect my BodyPosition’s in my main experience, I can’t convert to AlignPositions due to them not being a good replacement for BodyPositions. As soon as there is a good replacement, I will be able to convert them to AlignPositions.

2 Likes

Wouldn’t it also just increase performance if they only allocate so much resources per server? If they limit the server’s performance and the game requires more, that would cause problems. Probably an edge case, but might benefit some. Although that definitely was already possible without switching default to adaptive.

1 Like

solution to the problem: Change Workspace.PhysicsSteppingMethod from Adaptive to Fixed

image

Yes, it was, I changed Flee The Mall’s PhysicsSteppingMethod to Fixed

Would be interested in hearing more about these issues. DMd!

As of now it is currently the default stepping method.

1 Like

Just to be clear, scripting frequencies provided by the current API are not related at all to adaptive timestepping.

1 Like

The way to know if things are going not so well is to watch the “Engine Bugs” forum and see if a bunch of “Player Physics broke can’t figure out why” reports start flooding in. :upside_down_face:

OH, yeah you’re right I just realized I was thinking of SignalBehavior. Whoops. Although there are still very present issues with Adaptive physics

Fixed causes some strange behaviours in our game, even when not relying on deprecated body movers. Here’s an example (albeit hard to see properly in the GIF as it’s not very high framerate)

Fixed: Jumping is smooth
https://gyazo.com/d284b138efa411948bc87bb6ff6164d9

Adaptive: Jumping is jittery, especially when taking off or landing.
https://gyazo.com/8e55cb9882d9ff5b9bf8c454c6b06e93

The Horse rig is separate from the Humanoid rig (Humanoid isn’t physically attached, just visually following, separately.). If this is the intended behaviour of Adaptive, I would really appreciate a way to dictate the step-rate per simulated rig.

1 Like

Just tested it, there are indeed these issues (camera stutters, flinging when walking into another humanoid, etc.)