Jestem deweloperem gier dla początkujących i badam gry wieloosobowe. Zauważyłem, że zawsze występuje pewne opóźnienie, gracze zawsze otrzymują aktualizacje z poprzednich działań. Ale istnieją techniki takie jak liczenie martwych, aby poradzić sobie z opóźnieniem. Potrafię przewidzieć ruch i sprawić, by ruchy były płynne. Ale w jaki sposób synchronizowałbym działania, takie jak skakanie, zatrzymywanie się itp.
Załóżmy, że klient A poruszał się, był na 100 m przy 10,2 czasie z prędkością 100 m / s i wysłał tę informację. Klient B otrzyma tę informację nieco później, niech będzie to 10.4. Więc na kliencie B mogę użyć predykcji i ustawić klienta A na 120m. Ale co, jeśli klient wykonał skok na 110 m na 10,3. Nie mogę tego przewidzieć, a ponieważ korzystam z przewidywania, nie mogę pokazać klientowi skoku w przeszłości.
Mogę poradzić sobie z tym problemem, nie wysyłając w ogóle akcji skoku. Ale co, jeśli moja gra ma puste przestrzenie, w których gracze mogą upaść i umrzeć. Tak więc, jeśli nie zsynchronizuję akcji skoku, inni gracze zauważą, że jeden z graczy biegnie, a następnie wpada w pustkę, a następnie ponownie pojawia się na ekranie, niszcząc wizualne zaangażowanie.
Skok jest tylko przykładem, może istnieć wiele scenariuszy, w których przewidywanie nie może działać. Jak sobie z nimi poradzić. Jednym z takich przykładów mogą być wieloosobowe gry bitewne online, takie jak Awesomenauts.