Derzeit ist der Client in meinem Spiel nichts anderes als ein Renderer. Wenn der Eingabestatus geändert wird, sendet der Client ein Paket an den Server und bewegt den Player so, als würde er die Eingabe verarbeiten, aber der Server hat das letzte Wort über die Position.
Dies funktioniert im Allgemeinen sehr gut, bis auf ein großes Problem: das Herunterfallen von Kanten. Wenn ein Spieler auf eine Kante zugeht, beispielsweise eine Klippe, und kurz vor dem Verlassen der Kante anhält, manchmal eine Sekunde später, wird er von der Kante teleportiert. Dies liegt daran, dass das Paket "Ich habe aufgehört, W zu drücken" gesendet wird, nachdem der Server die Informationen verarbeitet hat.
Hier ist ein Verzögerungsdiagramm, damit Sie verstehen, was ich meine: http://i.imgur.com/Prr8K.png
Ich könnte einfach ein "W Pressed" -Paket pro Frame senden, damit der Server es verarbeiten kann, aber das scheint eine bandbreitenintensive Lösung zu sein.
Jede Hilfe wird geschätzt!