Severe Vehicle Rubber-Banding Experienced During High Player Count Sessions

In experiences with 10 or more vehicles that consist of multiple assemblies, the vehicles begin to rubber-band or appear to teleport on the screen. While collisions are not affected, this issue severely impacts the racing experience, as players are unable to accurately determine where other vehicles are. This issue is caused by overloaded network replication because there is too much replication data, so it is all split up.

A private message is associated with this bug report

22 Likes

Example of the issue here

5 Likes

Can definitely confirm that this is an issue me and others have faced, especially in the Roblox racing community. Worst of all, the only alternative is to have client-controlled vehicles, which means no accurate collisions and vision lag. I hope we see some changes soon, we’ve been waiting for years with nothing coming out.

8 Likes

In hindsight there is an solution to this problem. You can replicate the cars manually and only send what you need to + serialize the packets using a buffer, this afaik solves the entire problem.

its a issue with the ping of that player being bounced, you can tho instead of replicating the car parts from the server to all clients, replicate a table with the design, position, rotation, effects information, it will reduce sent and recieve and improve network performance.

edit: and render the cars only of the client

You can do that, but this is complicated to create manually, particularly without strong math knowledge. Considering this has been mentioned for multiple years already, it would be nice to see Roblox implement that systems (Predictive Pathing if I am correct is what you mean) directly into the engine, or come up with any other solutions for this.

This is due to many models e.g. cars that have too large meshes or polygons. I recommend reducing their meshes and setting all meshes and unions in renderfidelity to automatic and mesh to performance

Check some: Building Optimisation | Tips and tricks!
or Scripting optimisation questions - #6 by theking48989987

What I’m referring to is snapshot interpolation. There are lots of examples (roblox included) on the web

The jist of it is:
Simulate cars on the server (by parenting them to a camera which stops physics replication)
Send a snapshot of all cars and their CFrame ( if you want to replicate wheel rotations and assuming you have 4 wheels you can pack it into one i32 for all wheels)
Receive the snapshot on the client, create a client only car if it doesn’t exist already and interpolate it with the previous snapshot

You will still have input delay, as expected you are getting a view of the server’s car. If you wanted to fix both you’d need some deterministic custom car that can handle netcode rewinds

It is recommended that the client owned car is anchored and shouldn’t have any constraints or VehicleSeats

No, as OP stated it is because of physics replication throttling the simulation. Iirc at > 50 kbps it bottlenecks but I could be mistaken

You are right it also affects the stability of the game