Chaos Modular Vehicles Settings Examples

Hi guys,

Sorry for the long silence, i should have received a mail when you replied but nothing :neutral_face:

Anyway, i’m using pure GC, i’m more into space ship which are very simple to animate :smiling_face_with_sunglasses: (plus i want to keep things simple until i have the basic gameplay ready)

Here’s my hierarchy for the moment :

I have create a subclass of AModularVehicleClusterPawn to tweak a little bit how thrusters work, and since enabling “force update active transforms” everything was real smooth.

That is, until i tried multiplayer :sweat_smile: As the doc says “This system was designed from the ground up to support the resimulation network physics model” i setup my ship to use the resimulation, and noticed occasional stuttering.

Using the debugging tools mentionned here i quickly realised that the stutter i was seeing were because of resimulation. A resimulation should not be visible to the client, when the simulation differs too much with the server the resimulation is triggered and the result is interpolated smoothly into the current position.

However, the stuttering i have is not caused by the result of the resimulation, but the initial rewind.

In Source/Runtime/Experimental/Chaos/Private/PBDRigidsSolver.cpp l2357 there is a condition to not update SingleParticleProxy (if (!bIsResim), the code is different for UnionCluster and this condition is missing. I’m not 100% sure but this look suspicious.

Here’s the result :

I posted here [Chaos modular vehicle] Stuttering whis resimulation to check if someone else have this issue.

As soon as the performance of the server or the client start to degrade there is a lot of resimulation so this is not acceptable for a competitive multiplayer game.

I will give a try to add the condition in the engine (if i manage to compile it) but the code is quite complicated so i may simply switch to predictive interpolation.

Still, i feel like i missed something because the CMV is supposed to be build for resimulation and this simple case doesn’t work properly.