Założeniem byłoby powiedzieć, że „Internet jest teraz dość szybki i niezawodny”, jak zauważył @Ordous, a także niebezpieczny.
Powodem, dla którego niestandardowy protokół UDP + dla pakietów o kluczowym znaczeniu dla dostawy działa magicznie w większości gier jest to, że czasami może być „w porządku”, jeśli stracisz jakiś pakiet (np. Na przykład np. Drugorzędne niekrytyczne zdarzenia, aby ukończyć grę) , zdarzają się też sytuacje, w których „wcale nie jest w porządku” utrata niektórych danych, np. ruchów kursora itp. (Nie zajmuję się tworzeniem gier na życie, więc wybaczcie moje niejasne przykłady)
Domyślnie UDP nie marnuje czasu na popychanie ich raz po raz.
I, nawiasem mówiąc, w wielu grach wydaje się, że pakiety „są w stanie zgubić czasem” więcej niż „zawsze muszą dostarczać pakiety bezbłędnie”. Stąd naturalne dopasowanie do tego zadania.
UDP wymagało jedynie użycia niestandardowego protokołu, który po prostu pomaga prawidłowo dostarczać pakiety „zawsze trzeba dostarczać bezawaryjnie”, pozostawiając resztę danych gry na łasce połączenia sieciowego.
Teraz decyzja o tym, jaki rodzaj ruchu stanowi większość TWOICH danych, które mają być przekazywane, pomoże ci podjąć lepszą decyzję.
Chodzi o to, że TCP powinien polegać na tym, że czas poświęcony na ponawianie prób mógłby raczej zostać poświęcony na wysyłanie pakietów, które mają znaczenie TERAZ.
Istnieje również szansa, że jeśli wystąpi jakiś problem podczas transmisji, TCP może przejść kaskadowo do bardziej zepsutego scenariusza rozgrywki dla użytkownika, psując jego wrażenia w porównaniu do UDP + Custom Stack (ta ostatnia część jest po prostu przeczuciem. Wyjdę komentują to inni eksperci. Chciałbym dowiedzieć się o możliwościach tego scenariusza).
internet is now pretty fast and reliable
Nie, nie jest. Tak, przepustowość dramatycznie wzrosła, ale opóźnienie jest wciąż dość duże. W przypadku czystego protokołu TCP czas tykania serwera musi być większy niż maksymalne opóźnienie w przystępnej cenie, chyba że wykonujesz kompresowanie pakietów - co najlepiej jest wykonać u klienta za pośrednictwem protokołu UDP. Problem polega na tym, że niektóre informacje w grze muszą być wiarygodne, a inne muszą być szybkie. Umożliwiają to niestandardowe protokoły UDP, a także kilka zastrzeżonych, które zapewniają wszystko, czego potrzebujesz w ładnym pakiecie.