UDP czy TCP Java

0

Chcę napisać prostą grę przez sieć jednakże chciałbym wiedzieć z jakiego protokołu skorzystać UDP czy TCP.
UDP jest szybszy ale nie zapewnia prawidłowości w przesyłaniu, zaś TCP dostarcza informacja w całości.

Który z nich waszym zdaniem jest lepszy do tworzenia gier. Chciałbym napisać grę dla większej ilości osób 4-8 min.

0

Moim zdaniem trzeba używać obu. UDP np do rozgrywki sieciowej, gdzie ponowne przesyłanie pakietu nie ma zbyt dużego sensu, natomiast TCP do przesyłek, gdzie lag nie jest ważny, a ważne jest przesłanie całości strumienia.

0

Czyli np. do chatu powinienem używać TCP a do samych informacji o grze (pozycja, wyniki itp.) za pomocą UDP ?

0

Jeśli np wysyłasz pakiet z pozycją 10x na sekundę, a przesłanie ponowne pakietu po stwierdzeniu jego braku trwa niewiele mniej niż 1/10s to nie ma wielkiego sensu w tym przypadku używać TCP. Jeśli ponowne przesłanie trwa 1/10s lub więcej to w ogóle nie ma sensu, bo nowszy pakiet dojdzie przed starszym. Musisz sam pomyśleć i stwierdzić gdzie olewanie starych pakietów jest lepsze niż ponowne ich przesyłanie.

Inną sytuacją gdzie użycie UDP ma jak najbardziej sens jest strumieniowanie audio i/ lub wideo na żywo.

Natomiast jeśli gra jest np w szachy i pozycję uaktualniasz dość rzadko, np raz na kilka sekund lub minut, to tutaj zdecydowanie powinno się użyć TCP. Ogólnie kryterium może być takie: jeśli świeże dane napływają z dużą częstotliwością i stare dane przestają być potrzebne, gdy napłynie nowy pakiet, to powinno się używać UDP.

PS:
Nie tworzyłem gierek, więc nie znam się mocno.

0

Wielkie dzięki. Mimo małego doświadczenia w tej dziedzinie pomogłeś wystarczająco :D. Z resztą jesteś często aktywny jeśli chodzi o moje tematy ;).

1 użytkowników online, w tym zalogowanych: 0, gości: 1