I’ve ran into an issue with movement on the character movement component that seems to be showing signs of not performing frame rate independently. This issue has NOT been exclusive to multiplayer, and was actually first noticed in single player on a standalone build.
Unfortunately, as I was trying to debug the issue, I simplified a lot of my project to narrow down what might be causing this, and this made it more optimized in terms of FPS, so it’s a slight bit harder to notice in this build than it was before. So in turn, I sped up the movement controller, as this makes things more noticable again, and displays some other issues.
Since I’m using a simplified template, this should confirm the issue being related to the character movement components. Here’s a screenshot of the movement blueprints:
Here’s what I tested and the results, including some videos trying to show the issues in the order I discovered it:
[li]First discovered jitteriness as I moved around in a single player, standalone build, I had never noticed it in the editor window earlier. Was at first unsure if it was a problem exclusive to standalone. - Video: https://youtu.be/COcjQeMM5Sg[/li][ul]
[li]Jitteriness can be noticed when moving below the platform. Once past the platform, stabilizes. I display this twice in the video.[/li][li]Then I wander around a bit, having only minor issues, until moving towards the platform again, and showing same jittering when going below the platform.[/li][/ul]
[li]I tested it next in the editor window. From a smaller sized editor window it either was not perceivable, or wasn’t happening, with frame rate solid at 120fps.[/li][li]I tested it with a full screen editor window, which does not show FPS values (I do not know how to enable them here). But it has the same exact results as the video from #1.[/li][li]I had toyed around in multiplayer builds earlier and hadn’t noticed this issue. I was curious if it would be happening there now. This is where the issues with frame rate became more obvious. - Video: https://youtu.be/q_DNY13Cnh8[LIST=1][/li][li]With the editor window as server, and a client window default (same) size, on the server window FPS was around 120 in the open, and 80-90 facing the platform. When at 120FPS it seems to run perfectly. When facing the platform, the jitteriness is noticeable.[/li][li]I switched to the client window. ~100FPS in open, 70 facing platform. Jitteriness noticeable at all times.[/li][li]I maximized the client window. ~70FPS in open, 40 facing platform. Jitteriness more violent.[/li][li]Minimized client window, now the server window is running similar to the client. ~70/40 FPS. Jitteriness more violent on server as well.[/li][/ol]
[li]Since there seemed to be a relation between frame rate and the jitteriness, I decided to try to play with t.maxfps set to 60. - Video: https://youtu.be/9I4poWtw0gg[ol][/li][li]With max FPS set to 60, and the server never dropping below 60, no jitteriness at all.[/li][li]With the client, same result. Never dropping below 60, no jitteriness at all.[/li][/ol]
[li]I now manipulated the size of the windows. Leaving one at 60, and one below 60.- Video: https://youtu.be/M8STkahVyPo[ol][/li][li]As long as the server stays above 60FPS, it runs perfectly. If it goes below 60 even a little bit, it begins jittering more violently.[/li][li]As long as client stays above 60FPS, it runs perfectly. If it goes below, it begins jittering more violently.[/li][/ol]
[li]I decided to try to set max fps to 50[ol][/li][li]It is now performing well at 50, and jittery below 50.[/li][/ol]
Result: it seems that the issue is not related to single player nor multiplayer, client nor server, as it occurs in any of them. Testing seems to indicate that the level that t.MaxFPS is set at is the “ideal” FPS for the project. Any time either the server OR the client go below this, the movement is becoming jittery?
I don’t understand these results… isn’t the character movement component supposed to be frame rate independent? Based on these results, it seems that isn’t the case?
Can anyone explain the behavior I’m seeing here, and/or have a solution for how to resolve this?