Autor Wątek: Gra 2d, udp czy tcp?  (Przeczytany 4414 razy)

Offline Galfados

  • Użytkownik

# Kwiecień 16, 2016, 19:40:12
Dziękuje za tak ogromny feedback(sporo można się dowiedzieć czytając wasze wywody c:). Ale mam jeszcze jedno pytanie.

Czy warto wrzucać pakiety do jakiejś kolejki i ograniczyć ich przesyłanie? Np. do 10 per frame, lub X bajtów na sekunde (tylko przykład). Czy bez owijania w bawełnę bez niczego wysyłać je.

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline laggyluk

  • Użytkownik
    • http://laggyluk.com

# Kwiecień 16, 2016, 21:45:38
warto ograniczyć wysyłanie i odbieranie, chociazby po to zeby przy wiekszej ilosci graczy nie zapychac pasma niepotrzebnie

udp nie gwarantuje kolejnosci docierania pakietow, generalnie dane dzielisz na takie ktore musza dotrzec do servera (np wiadomosc czatu, gracz naciska spust) te wysylasz do skutku czyli do potwierdzenia z servera ze dotarly

i na te 'niewazne' - w tym sensie ze nie istotna jest poprzednia wartosc z zagubionego pakietu bo liczy sie aktualna (np kat obrotu, pozycja)

z tcp nie ma tego problemu jako ze wszystko dociera automatycznie kosztem wiekszego opoznienia

tu masz zreszta dobra lekture na ten temat
http://fabiensanglard.net/quake3/network.php
« Ostatnia zmiana: Kwiecień 16, 2016, 21:47:35 wysłana przez laggyluk »

Offline Galfados

  • Użytkownik

# Kwiecień 16, 2016, 22:51:11
Skoro pakiety udp nie dochodzą w takiej samej kolejności to chyba trzeba sprawdzać, który jest nowszy? Żeby nie było tak, że stara pozycja dotarła troszke później od nowszej bo to by nie było fajne.

Offline Xender

  • Użytkownik

# Kwiecień 17, 2016, 09:57:34
@up - Tak, trzeba sprawdzać kolejność i to, czy krytyczne dane doszły ręcznie.

Patrzyłeś na tę bibliotekę, którą podlinkowałem wcześniej?
Cytuj
The primary feature it provides is optional reliable, in-order delivery of packets
W zakładce Features masz też sporo ciekawych informacji.

Nie mówię, że musisz od razu użyć tej konkretnej libki, ale zaznajom się dobrze z tym, co ona implementuje (skoro jakiś mechanizm jest wyszczególniony jako funkcjonalność, to znaczy, że UDP go nie zapewnia) - chociażby żeby zobaczyć "jak to robią inni" (chociaż nadal nie polecam reimplementowania wszystkiego samemu).
« Ostatnia zmiana: Kwiecień 17, 2016, 10:00:11 wysłana przez Xender »

Offline Galfados

  • Użytkownik

# Kwiecień 17, 2016, 12:29:14
Patrzyłem tą bibliotekę ale nie będę sobie mieszać w kodzie, bo i tak korzystam z modułu sfml network.
« Ostatnia zmiana: Kwiecień 17, 2016, 15:27:21 wysłana przez Galfados »