After reading these two articles:
https://www.gabrielgambetta.com/client-server-game-architecture.html
https://developer.valvesoftware.com/wiki/Source_Multiplayer_Networking
I have implemented a working system for client side prediction, and am now doing entity interpolation.
A problem I encountered is that the players' movement, even when moving at a constant speed, sometimes appears jumpy.
I understand why this happens. It is because the server doesn't always simulate the same amount of inputs between every broadcast of the players' positions. Which in turn happens because of the client not always sending the same amount of inputs every time.
This is mentioned in valves article: “[…]This means two or more user commands are transmitted within the same packet.[…]”. Although they only say that there will be more than 2. If my client sends 3 inputs in one packet it will send 1 input in the next packet.
Anyway. If the server consumes the inputs that it receives every simulation step (which is called at the same rate as the client is sampling inputs), the players will some frames be faster than other frames. Even though they locally appear to be at constant speed for the client that predicts its own movement.
How can I properly approach this problem of processing inputs on the server?