Obecnie w mojej grze klient jest jedynie rendererem. Gdy stan wejściowy zostanie zmieniony, klient wysyła pakiet do serwera i przesuwa odtwarzacz tak, jakby przetwarzał dane wejściowe, ale serwer ma ostatnie słowo na temat pozycji.
To ogólnie działa bardzo dobrze, z wyjątkiem jednego dużego problemu: spadania krawędzi. Zasadniczo, jeśli gracz idzie w kierunku krawędzi, powiedz na klifie, i zatrzymuje się tuż przed zejściem z krawędzi, czasem sekundę później, zostanie teleportowany z krawędzi. Wynika to z faktu, że pakiet „Przestałem naciskać W” jest wysyłany po przetworzeniu informacji przez serwer.
Oto schemat opóźnień, który pomoże Ci zrozumieć, co mam na myśli: http://i.imgur.com/Prr8K.png
Mógłbym po prostu wysłać pakiet „W Pressed” do każdej ramki do przetworzenia przez serwer, ale wydaje się to rozwiązaniem kosztownym dla przepustowości.
Każda pomoc jest mile widziana!