I can’t get my actors to be perfectly synced up on the server and the client. See video (server left, client right - notice that the tops of the blocks are all lined up on the server, but not all lined up on the client as some blocks sink into the ground)
I have a very simple actor (the block) which can be picked up and put down on the server or client. When the actor is not being held it is simulating physics and when it is being held the physics are disabled. It all works great but for whatever reason, the actors on the client side always seem to be slightly out of sync when simulating physics. Note I have it set up so that the physics are ONLY simulated on the server. You’ll notice in the video that as soon as I grab an actor on the server, it pops back into the correct location on the client but as soon as I let go and it comes to rest it’s in the wrong position (slightly)
The only way I’ve been able to get them to match is to multicast their transforms as ‘Reliable’ whenever it changes but if I do this then it seems like my network packets get backed up as messages start coming in very slow. This also makes no sense to me since it’s only a few transforms I’m sending per frame. If I multicast as
UnReliable then they become out of sync again.
This seems like a very trivial thing but I’ve tried everything I can think of with no success. If anyone has any ideas please let me know.