Part 6

Chunk replication over network

Now that we have our sweet meshing algorithm, it's time to revisit an old problem: Network replication.

The following video should explain more of the issue I'm now running into more than a thousand words could, but I'll try to describe it anyway. The replicated player controller is not syncing properly between the server and client. This issue is particularly problematic with the small, convex holes created by our cubes. This causes a jittery jumpy mess. This issue is top priority, then. I'll get back to block placement and deletion later.

After digging around for a couple days, I found the following options available for custom character controllers inheriting from the BP class MordhauCharacter.

It will be a significant amount of tinkering, but perhaps one of the player controller replication settings can let me get rid of this issue once and for all.

The actual problem could be any number of things, so I'll keep a list of things I have tried that did not work, and the outcome.

  • Changing NetworkSmoothingMode from Exponential to Linear

    • This just accelerated the onset of the bad effects. No change.

  • Set Always Check Floor to false

    • Slightly different behavior. Can't jump always. Don't always land. Still jittery.

  • Setting NetProxyShrinkRadius from 0.01 to 0.2

    • No effect.

  • Setting the box collider to be a static mesh instead of a movable (dynamic) mesh

    • This made a HUGE difference in behavior, but did not necessarily make the issue better. Actually, quite the opposite! The behavior seen here leads me to believe this is an issue of the server and client being out of sync. I'll revisit the code that creates the collisions.

There may be nothing I can do about this... other than to increase the size of the blocks a little bit so that the capsule collider and server prediction don't freak out any more.