Default Third person character with default replication settings and movement component(same as platform, default).
Left window Client view - Server character jitters crazy. Right window Server view - Client character jitters but less visible.
Local characters for each client doesn’t get jitter at all.
Tried to crank up replication values, changing smoothing modes, etc. Nothing helps. Any suggestions?
The reason this is happening is because you need to implement extrapolation. Otherwise, two things will either happen.
A) Client platform is doing its own thing and so is completely out of sync.
B) Platform stutters/teleports.
It is just not possible for the server to send the client the new location fast enough.
For that, this plugin will help:
If you are not interested in the plugin, I would suggest this video since I am not entirely sure what it is you are trying to accomplish:
Ok, interesting plugin, it has different sync “pattern”, a lot of settings and extrapolation… But this not solves problem, i tried different combinations of settings and mixing with default replication, doesn’t help. Sadly, the plugin is bringing desync sometime, especially with big extrapolation.
I would look for a method like: “parenting” characters to the platform - that type of thing.
How can i implement that?
Did simple “Attach Actor to Actor”: Character to platform and immediately ran into a problem. My character additionally moving same way as platform. Why?
It feels like my platform adds a location not only to itself, but also to the character.
Ok, i found the dirty solution. Basically this problem happens because of CharacterMovementComponent, you need to override UpdateBasedMovement funcion. You can do it only in c++. Good luck.
In the end, my previous solution as “attaching” method didn’t work well. If you have single-player game, this method is okay. When you attach Player to ANY actor, then on the shipping build you will get crazy lag spikes only client side(or you can reproduce this issue in-editor imitating average latency through console commands). I bug report it, but a few months later, engine devs decided “won’t fix”. Lazy bums!
Right now, i’m interested in a plugin GMC (General Movement Component). Currently, dev is cooking 2.0 version that will include Moving Platform support.
Downsides are: you have to rewrite all moving logic and this plugin is expensive.
But i wish there was a solution to this without relying on plugins.
If someone knows, please share
My bad, this never fixed it. The problem with jittering is coming from inaccurate position of the actor on client and on server. For some reason static mesh when replicated keep their position synced but I didn’t explored it yet.