Local physics simulation is always causing Flickering/Teleporting or not working at all (examples)

Local physics simulation (Which as I recall is supposed to locally simulates objects controlled by another player and interpolate any misalignments), currently works very poorly. Previously if you had a part controlled by another player and moved against it, you would be able to move it around pretty smoothly. Now it has a very jittery/glitchy behaviour like this example:

Same thing happens when just pushing your character against the part in the video, which can be tried in the repro below. As far as I know this behaviour is the same in every game and it happens in both studio and live games.

In addition to that the physics simulation doesn’t work at all when a humanoid is involved in the assembly, such as a player sitting in a car. Here you can see the difference between a car with a player getting crashed into vs without the character: https://youtu.be/FBc5lw7FLuY

The latter has happened every since this feature was implemented as far as I know, the first did not happen at first but I can’t tie it to a specific date because the humanoid bug has been causing local physics simulation to almost never be applied in my main game Car Crushers 2

This place can reproduce the bugs in the videos: VehicleRepro.rbxl (111.0 KB)

  • Start a 2 player server
  • Drive the red car as player2 and try crashing into the part or blue car
3 Likes

I’ve noticed this as well, can be quite bad for my game related to vehicles.


Further notes on the Humanoid part (from half a year ago):
• I got a friend to join my game, we both got into cars.
• I deleted my character’s Humanoid, while the rest of my character remained in the seat and I remained in control of the vehicle.
• When my friend crashed into me, the car responded as it should.
• When I had my Humanoid, the car acted as it did in the video.


Another example:
• A couple years ago, I remember making a door using springs and hinges. It reacted to my character smoothly, as it should.
• The same door now has this jittery / glitchy behavior when I try to move it with my character.

3 Likes

This issue you are seeing is that after allowing local simulation to play out, we still correct it using interpolation based on the “truth”(which is defined by the owner).

What is happening is that Player1 is colliding with Player2’s brick, moving it slightly, but because Player2 hasn’t seen Player1 collide with the brick yet, network updates for the bricks position cause it to be interpolated back to its original location.

The local-simulation was primarily implemented as a way to make sure that light objects don’t cause destructive simulations due to being completely ummovable, however local simulation in its current state is not a solution for trying to push around parts that someone else owns and simulates authoritatively.

We are internally discussing potentially allowing some “desync” so that local simulation is allowed to play out and we can see if the “true simulation” will match the motion, but any kind of predictive behavior has significant downsides as well.

Basically the current version of local simulation is the safest one, and the only real way to push around an object is if you own it.

2 Likes

Thanks for the info, I thought this behaved more accurately in the past so if didn’t then this isn’t a bug.

I’m happy there’s discussions about it because really any improvements to this would vastly improve games that use some type of player-player collision.

1 Like