Adaptive Timestepping as Default

It’s good that ROBLOX is allowing “Fixed” to continue being an option, but I don’t know why it is being forced upon games that are set to “Default.” It’s really unnecessary, and with how many issues have been reported in this thread with “Adaptive” mode, it’s not a good idea, in my opinion, to make that the “Default.”

There are a ton of legacy games that still have a solid and large(r) playerbase, but don’t have a super active developer support to them, that will almost certainly get ruined because the developer(s) weren’t around to switch the settings.

This update to me is going to have a similar effect to what happened when “Filtering Enabled” was forced upon all games in 2018, which you will see a lot of popular legacy games become broken and not get fixed. At least FE being forced back then served a point (much better security was mandated, the exploits in those days were insane), this really doesn’t serve any point whatsoever to force “Adaptive” mode to be the default.

3 Likes

I am actually concerned about this update, as it might adversely affects some ROBLOX clans. The apps people use for ROBLOX is called FPS unlocker, which help the players run ROBLOX smoothly without any interruptions or glitches. There should be a way around it to make it also compatible with FPS unlocker. Also I am aware of glitches and bugs posted on here, and I really hope you guys can fix it to make sure it run smoothly. If you manage to make it compatible with FPS unlocker, ROBLOX could easily become one of the best MMO around.

3 Likes

Thanks for sharing. The system should be doing a better job in detecting the hard-to-solve system like this bridge and set it to run at 240hz.

1 Like

Is it possible for Roblox to implement a way to tell the engine at what rate should certain assembly to run at?

Something like “SimulationRate” for Model:

  1. Auto (Default)
  2. 50hz
  3. 120hz

or alternatively:

  1. Auto
  2. High
  3. Medium
  4. Low

So that we can hint the engine to run crucial things like vehicles, planes, or other important assemblies at higher simulation rate.

4 Likes

We are trying to avoid going down the route where we provide this API for individual assemblies. Instead there will be a more detailed option on the PhysicsSteppingMethod where developers may tune the aggressiveness of the system.

1 Like

in my game Create Your Monster it still looks strange with the Adaptive option
(it’s just a character with collision using animation through Motor6D)

Adaptive:

Fixed:

(sorry for my bad English)

Thanks for sharing. DMd, would be interested in hearing more about this

I understand that this will appear simpler and easier for newer developers, although I think that if you guys plan to remove “Fixed” from PhysicsSteppingMethod, it would be a good idea to still allow developers to overwrite the simulation rate on assembly basis with a simple property to ensure that important assemblies like cars will get prioritized to avoid edge cases with the automatic system.


Bit off-topic but, can we expect a physics related feature to allow developers to run custom physics loop at fixed rate (eg. 50hz) independently from the frame rate? I am currently working on raycast based chassis and I am running into major issues when trying to ApplyImpulseAtPosition() every Hearbeat as it is inconsistent and gets effected by frame rate and because of it the car behavior becomes unstable due to lifting force being applied inconsistently.

Unity has FixedUpdate function that is called at fixed rate independently from the frame rate. Heartbeat seems to be to tied to the frame rate.

6 Likes

I don’t want adaptive timestepping. I want the static option. Why is this being forced?

2 Likes

They are not forcing this anytime soon, you can still use Fixed instead of Default option.

2 Likes

Yes. A callback loop that is synced with the physics rate (not the frame rate) is one of our projects we plan to be working on very soon. We understand that there is a need for this.

10 Likes

You can select the Fixed option and your game will run the same as before. The Fixed option isn’t getting removed anytime soon.

2 Likes

I point you to this section of the post.

Historically, the way these opt-in/opt-out betas go means that Fixed has anywhere from 6 months to 2 years left to live. That’s forced. @Hajimalago

1 Like

I hope that they implement my suggestion of having property SimulationRate (or something on the lines of it) that will allow us to overwrite the stepping rate for assemblies that are important or not working well with the automatic system. I think that it’s relatively good solution to this problem.

1 Like

Or they could just not force this downright goofy and painfully unnecessary change.

We promise that whatever that will be replacing Fixed will be stable as Fixed. Currently we only have 2 settings, Fixed and Adaptive (which is set to be slightly aggressive).

This doesn’t answer the obvious question: Why replace Fixed at all long term? What’s wrong with it? Why not keep it?

The phrase “if it ain’t broke, don’t fix it” may be of some use here.

Any timeframe we can expect to see this feature implemented?

I doubt that they can share the timeline, but I think the “soon” means somewhere this year.

Removal of Fixed will take a while, as there are other updates to the physics engine that will have to take place first. No fixed timeframe yet.

3 Likes