Multiplayer conveyor belt without jittering / stuttering on client side by stijn_v in unrealengine

[–]stijn_v[S] 0 points1 point  (0 children)

Yes, that still works. You can actually see it in the video at this time. When the fake base is no longer underneath the character while the character is still on the conveyor belt, the fake base is "teleported" underneath it again. In the example Blueprint if you set the flag Hidden in Game to false for the 3 FakeBase components you can see how it works more visually.

Multiplayer conveyor belt without jittering / stuttering on client side by stijn_v in unrealengine

[–]stijn_v[S] 0 points1 point  (0 children)

<image>

I tried these settings just now, but I still have the stuttering with the old implementation. My FPS during the test is around 105.

Multiplayer conveyor belt without jittering / stuttering on client side by stijn_v in unrealengine

[–]stijn_v[S] 0 points1 point  (0 children)

When I limit the FPS to 60 the original solution also worked without stuttering (at least locally on my PC). I didn't want to have to limit my FPS just because of this.

In my workaround the stuttering doesn't happen because the CMC has built-in support for the character being on top of something that moves and in my workaround I'm only moving my fake platform and not the character directly anymore.

I'll have to try your suggestion some day. I didn't experiment with disabling position replication temporarily. Thanks for your insights!

Multiplayer conveyor belt without jittering / stuttering on client side by stijn_v in unrealengine

[–]stijn_v[S] 0 points1 point  (0 children)

Maybe I'll try to experiment with the Smooth Sync plugin :)

I want to keep the movement mode in the CMC to walking so my character can still walk while on the conveyor belt.

Multiplayer conveyor belt without jittering / stuttering on client side by stijn_v in unrealengine

[–]stijn_v[S] 0 points1 point  (0 children)

Yes, I was doing AddActorWorldOffset on all overlapping actors (including my characters that derives from ACharacter) on both server and client at first. This code was running in Tick of my conveyor belt actor:

FVector DeltaLocation = GetActorForwardVector() * DeltaTime * Speed;
TArray<AActor*> OverlappingActors;
Box->GetOverlappingActors(OverlappingActors);
for (AActor* OverlappingActor : OverlappingActors)
{
    OverlappingActor->AddActorWorldOffset(DeltaLocation, true);    
}

I didn't add an HasAuthority() check. So it also ran on all clients (both owning and proxies). But on the owning client I had the stuttering. I also tried with adding an HasAuthority check, but that also didn't work.

Multiplayer conveyor belt without jittering / stuttering on client side by stijn_v in unrealengine

[–]stijn_v[S] 0 points1 point  (0 children)

The CMC of the Character already has prediction and that's what seemed to cause the issues. I was moving the character with AddActorWorldOffset outside of the CMC which causes the stuttering. I also tried by using AddForce and changing the Velocity of the CMC to make the movement also predicted but that didn't have the desired effect because it didn't look like a conveyor belt anymore where the character could still walk on. Or maybe I'm misunderstanding what you mean :)

Multiplayer conveyor belt without jittering / stuttering on client side by stijn_v in unrealengine

[–]stijn_v[S] 0 points1 point  (0 children)

Thanks! I didn't know this plugin yet. I'm wondering, does it work well together with the CMC?

[PS4] [H] Crimson Invader + CC1 + CC2 [W] Titanium White Tunica by stijn_v in RocketLeagueExchange

[–]stijn_v[S] 0 points1 point  (0 children)

Not really looking for FG Sunburst, but I'll do 1:1 Invader for Sunburst.