I created an empty Third Person Template Blueprint project and made a development build with no changes. I tested this build over lan with a listen server and one client, using a simulated lag of 200 ms with the pktlag console command on the client. The clients movement from the perspective of the listenserver was a bit jittery and almost seems to play back at a low frame rate visual wise.
My question is how come on the listenserver the clients movement is not smooth? I would like to know if it is possible to replay/interpolate the clients positions smoothly from within blueprints only?
I also capped the FPS to 30 fps using the console command ‘t.MaxFPS 30’
So I have found that when using any lag values up to 32ms the client moves smoothly on the listen server. When using lag values equal to or greater than 33ms the clients movement appears jerky on the server. It seems if network packets are delayed to be greater than the frame time (33ms) the clients movement are jerky on the listen server, but the opposite is not true. E.g. with a lag of 200ms the listenservers movement plays back smoothly on the client.
I am interested in this too. I wonder if the jitter the server sees is inherent in the listen server model because servers are more concerned with accuracy than smoothing out results?
If so, are there ways to get around this jitter?
Listen servers are very unappealing because of this unfortunately. I’m really hoping this gets resolved, as it seems kind of odd to force people to use dedicated servers to avoid this issue.
Actually in my case there was a problem with the replication of the animations (the client was sending the values to the server, the server was sending back the values to the same client and so on). Once fixed this my listening server is not showing this jittering any more.
Local input was influencing variables that were also replicated to e from the server.
The fix was to decouple them: local input modified eg. variable “rotation” which is not replicated, the server sets a different “rotation_remote” replicated variable used to replicate the animation on the other clients.
I was replicating manually some movement through the replication of variables (e.g. the exact orientation of the head of the character). If you are not doing something like this, but just automatically replicating the animation of the actors probably your issue is a different one…
Yeah, this happens for my listen server on the default third person template, so I’m pretty sure this is actually an engine issue. I guess I’ll just use a dedicated server until this is fixed.