Physics interaction between player controlled objects isn't working properly

Currently, the physics interaction between player controlled objects is very unreliable. From case to case it can either be non-existent, balanced or over-exaggarated.

If Player1 drives a car and collides with player2’s car for example, 80% of the time nothing will happen with Player2’s car and Player1 will loose all speed. Other times player2’s car can get a completely unrealistic velocity for what it should be and sometimes even get pushed in the wrong direction from where the velocity is coming from.

I have recorded some examples to show this, in this video you can see the varying results from the collisions pretty well:

In this video a small car crashes into a bulldozer that weighs over 50 times more than the car, yet the bulldozer gets over a 3rd of the car’s collision speed:

Here’s an example of a vehicle going in a completely different direction than what the car that crashed into it did:

Things like this very negatively impacts the gameplay of things that require good collisions. Like the place I recorded this in which is used for demolishion derby. The current solution I use is a custom collision system with bodyvelocities (which is not enabled in the videos), but that never gets perfect since the actual physics sometimes interferes with that system.

I hope this can be fixed, or otherwise have some type of option to disable the native collision between player controlled objects!

6 Likes

If your cars are using BodyPosition or BodyGyros, they will be disqualified from Local Simulation due to property driven motion (which is hard to properly simulate locally).

If you properly model vehicles to work with Velocities and physics (BodyVelocity and stuff like that is 100% okay), you should be able to collide with remotely simulating objects properly. There will still be some interpenetration due to latency, but overall the interact should be much more realistic.

When remote objects are not simulated they act as if they were anchored (infinitely massive), and you will only see them get pushed away if the “anchored” version of your car hits them hard enough on their screen.

A good way to visualize whether your collisions are being put into Local Simulation or not is by turning on a setting File->Settings->Physics->AreOwnersShown.

If a car is highlighted as White or Gray during the collision it is basically infinitely massive. If the car is highlighted Red, it is locally simulated and should be easier to collide with properly.

1 Like

Okay thanks for the info, I had no idea BodyGyros prevented local simulation which is what I use for wheel steering.

I have a slight concern about how things would work after changing this though, from what I saw in the local simulation thread players with a bad CPU wouldn’t be able to simulate other player’s parts sometimes. So if I converted the wheels to use another force, would players with a bad CPU still be able to get pushed away even if they outweigh the attacking car like in the video where a small car crashes into a bulldozer?

Also, is there currently any way to prevent a player’s car from being pushed completely without disabling collisions? There are some cases when I’d want a car to be spawn protected and not able to be pushed off the map for a few seconds, without disabling the collision so that car can still attack others. Doing this mostly works fine currently except for the few times when the vehicle getting rammed into actually gets pushed (like in the videos).

2 Likes