"Render Lag" with Non-Vision Lag Vehicles

Our racing league uses non-vision lag vehicles to have accurate collisions at the expense of input lag. Because of the nature of the cars, the input lag does not make a bad experience for our drivers.

However, as you can see in the video, there are cars that seemingly teleport or “lag behind” occasionally. The actual car is still in the correct position, but it is seems to sometimes be rendered out of place and will teleport to its correct position when it catches up. You also do not collide with these out of place renders, but with the actual car in the correct position.

This is a big issue for our streaming of these races, as it makes it difficult to tell where cars are truly positioned on the track when they are visually lagging behind. The racers also find it difficult when they collide with cars that seem to not be there, but are actually visually lagging behind.

I am wondering about the cause of this issue, and potential ways to fix it. If you would like more details about the cars, I will be happy to provide them.

2 Likes

How are you handling Network Ownership?

Network ownership is being set to the server when the driver gets into the seat. This causes the input delay talked about in the original post, but allows for accurate collisions.

1 Like

Have you tried setting the network ownership of each vehicle to the player controlling the vehicle, and then have the client notify the server of any collisions ?

Having the player/ client as the owner of the car allows for unstable collisions/ position registering. Games like ION APEX RACING (ION APEX RACING - Roblox) attempt to have a sort of “Netcode” which keeps the client as the owner of the car, but you can clearly see the collisions and positions are very incorrect and not smooth/ accurate.

Unfortunately this is outside my area of expertise, but if you want my opinion regardless:

If the vehicles’ movements and collisions are handled by the server to ensure accuracy, it almost always means introducing input lag for players. This approach prioritizes accurate gameplay mechanics over immediate responsiveness to player input.

F1 racing games often employ client-side prediction to simulate vehicle movement on the client’s machine while waiting for updates from the server. The server typically maintains authority over critical game elements such as vehicle positions, collisions, and scoring. On top of this, they often have optimized network protocols to minimize latency, something I’m not sure Roblox can support at this time.

So… from my perspective, you either need to sacrifice latency or collision accuracy. Or implement some sort of advanced client-side prediction. I’m not aware of any methods to obtain both, but hopefully someone out there can educate us both and knows a better approach!

Edit: My personal choice would be to allow the clients to simulate their own vehicles, as that’s usually standard practice, removes latency and generally creates a more ‘smooth’ experience for your players.

I appreciate the assistance, but we are trying not to use that type of chassis known as “A-Chassis” because we want to be able to have accurate collisions. If anyone else has any ideas of reducing the rubber banding it’d be a big help.

There is no problem with the latency input from the cars. As I said in the post, the latency is generally negated by the driving style of the cars and poses no problem to the drivers. The problem we encounter is visible in the video. Despite our use of server-sided vehicles, the cars seem to “lag behind” in terms of rendering for the clients. This makes cars appear out of place from their true position.

Hello, how can I apply what you say to airplane kits?