Introducing…
Interpolation Throttling!
This new optimization feature may improve the performance of games with large maps and lots of moving parts.
What does interpolation throttling do?
It reduces the update frequency of all remotely owned mechanisms outside a client’s simulation radius. So, parts that are far away from the player, and they don’t own, will step at 30Hz. It only kicks in if the engine detects that updating and interpolating remotely owned mechanisms is taking a long time.
For now the system is pretty simple but over time and with your feedback, we hope to make it smarter and boost its performance gains with less noticeable impact.
Why would I want this?
If your game is taking a vey long time to update remotely owned parts - its already “laggy”. So by throttling those parts that are taking up a bunch of time, your game speeds up as a whole.
How do I use it?
We have added a new (temporary) workspace setting: InterpolationThrottling
; which can be set to either Default
, Enabled
, or Disabled
. Right now, Default is Disabled.
When InterpolationThrottling
is Enabled
, then it can kick in whenever interpolation time is slow. If your game’s interpolation time never meets the threshold, then you won’t notice any changes (even if it does, you still might not notice it).
This feature is essentially in a “beta phase”. We encourage everyone to set this property to Enabled
and report any issues, give feedback, or as questions here!
Thanks!
FAQ
(read me before replying!)
Does 30Hz mean things move slower?
No, it’s more like movement looks like 30FPS rather than 60FPS. It’s just the rate we apply positional updates from the server.
How slow does interpolation need to be before it kicks in?
Right now it’s about 1ms avg spent in the interpolateNetworkedAssemblies
section of the microprofiler. This could change at any time however.