Wdrożenie kompensacji opóźnień w sieci jest trudne, jak tego uniknąć?
Może można zastosować sztuczki i zbudować mechanikę gry w taki sposób, że opóźnienie byłoby postrzegane jako niekrytyczna, a nawet naturalna część gry?
Jakie są te techniki i czy istnieją jakieś gry (MMORPG, Strategie, ...), które korzystają z takich technik?
AKTUALIZACJA:
Gry turowe nie wymagają kompensacji opóźnień, ale byłoby interesujące zobaczyć podejście w czasie rzeczywistym (lub po prostu wrażenie ważnej części w czasie rzeczywistym - użytkownik nie powinien być blokowany i zmuszany do oczekiwania).
Głównym powodem, dla którego unikałem kompensacji opóźnień, jest prostota.
Odpowiedzi:
Klient często stosuje informację zwrotną, aby natychmiast poinformować gracza, że wybrana czynność została zarejestrowana, np .:
Może to mieć miejsce, gdy informacje docierają do serwera, aby gracz nie zdawał sobie sprawy, że ich akcja jeszcze się nie rozpoczęła. Tak długo, jak serwer szybko odpowie, a akcja zacznie się wkrótce, gracz może nie zauważyć opóźnienia.
Te sztuczki działają w grach, w których wkład gracza jest dość rzadki, a zatem ilość czasu spędzonego na oczekiwaniu na efekt jest stosunkowo niewielką częścią całkowitego czasu spędzonego na grze. Dlatego chciałbyś znaleźć sposoby na ustrukturyzowanie gry, tak aby gracz dokonywał mniejszej liczby wejść. To prawdopodobnie oznacza, że działania gracza będą bardziej abstrakcyjne, a gra będzie implementować zachowanie na niskim poziomie. Przykłady:
źródło
Losowe przemyślenia:
Więc tak, dużo oszukiwać.
źródło
Odpowiedź jest dość prosta - po prostu twórz gry, które nie mają sekcji krytycznych czasowo. Chcesz uniknąć implementacji tego rodzaju interpolacji z konkretnego powodu, który rozumiem, co oznacza, że nie martwisz się drżącą i szybką grą. Jest to doskonale przystosowane do wielu gier, w tym do Civilization (która jest grą strategiczną). Należy jednak pamiętać, że NIE jest to możliwe w przypadku gry strategicznej w CZASIE RZECZYWISTYM , w której trzeba przesyłać dużą ilość danych przez sieć w różnych momentach. Jeśli chcesz zaprojektować grę w sieci o bardzo dużych opóźnieniach, rozważ następujące kwestie:
Mam nadzieję, że to trochę pomoże; bez znajomości konkretnych pomysłów na grę jest to trudne. Zakładam, że masz powody, dla których chcesz stworzyć grę w oparciu o taki wzorzec (prostota, oszczędność pasma, zmniejszona złożoność sieci)
źródło
Możesz także sprawić, że lag będzie częścią twojej gry ze względu na „realizm”. Załóżmy, że Twoi gracze mają kontrolować niektóre roboty z dystansu, możesz zmusić opóźnienie do co najmniej 500 ms lub 1 s (musisz wdrożyć system dynamicznego wypełniania opóźnień).
źródło
Dobrą sztuczką jest po prostu ukrywanie działań graczy. Wiele gier FPS właśnie to robi. Nie wyświetlają żadnych elementów wizualnych większości pocisków, odtwarzane są tylko dźwięki, a wynik otrzymuje się w postaci obrażeń zadawanych graczom.
Grałem w niektóre gry FPS, w których bronie o wysokiej celności (snajperzy i takie) miały bardzo wyraźne efekty wizualne i można było zobaczyć, że drugi gracz strzelił za tobą, ale z powodu kompensacji opóźnienia zostałeś zabity.
źródło