Czytałem artykuł Valve na temat sieci dla wielu graczy, który został zaadaptowany z artykułu Yahna Berniera z 2001 roku zatytułowanego Metody kompensacji opóźnień w projektowaniu i optymalizacji protokołu w grze klient / serwer . Tworzę grę wieloosobową w czasie rzeczywistym, używając serwera node.js połączonego z klientami przez socket.io i mam kilka pytań dotyczących zasad wyszczególnionych poniżej:
Interpolacja jednostek
[Interpolacja] zapobiega ruchowi roztrzęsienia, do którego to zwykle prowadzi buforowanie aktualizacji serwera, a następnie odtwarzanie ich z płynnie interpolowanymi przerwami. Może także chronić przed usterkami spowodowanymi utratą pakietów.
Prognozy po stronie klienta
Prognozowanie to pojęcie klienta przewidujące skutki działań lokalnego gracza bez oczekiwania na potwierdzenie przez serwer. Przewidywany stan jednostki jest testowany pod kątem poleceń serwera, gdy nadchodzą, dopóki nie zostanie wykryte dopasowanie lub błędne dopasowanie.
Kompensacja opóźnień
Kompensacja opóźnień to pojęcie serwera wykorzystującego opóźnienie odtwarzacza do przewijania czasu podczas przetwarzania [danych wejściowych użytkownika], aby zobaczyć, co zobaczył gracz, gdy polecenie zostało wysłane. W połączeniu z prognozowaniem kompensacja opóźnień może pomóc zwalczyć opóźnienie sieci do tego stopnia, że prawie eliminuje je z perspektywy atakującego.
Czy zasady mają zastosowanie do TCP, podobnie jak do UDP i czy będą jakieś różnice we wdrażaniu? Widzę, że interpolacja bytu nie musiałaby chronić przed utratą pakietów, ale o to chodzi.
Czy mogę nawet komunikować się między serwerem a przeglądarką internetową i odwrotnie za pomocą UDP i Node.js?
Skoro papier ma ponad dekadę, czy zasady te są nadal w użyciu, czy pojawiła się inna technologia?
Każda pomoc będzie mile widziana.