Mam podstawy gniazd TCP, komunikacji UDP itp., Ale nie mogę znaleźć wiele sposobów zastosowania ich w środowisku gry w czasie rzeczywistym.
Mam klon Ponga z 4 graczami i muszę zsynchronizować pozycje wiosła między trzema klientami a serwerem (serwer to czwarty gracz). Obecnie używam UDP do wysyłania aktualizacji w czasie rzeczywistym (ruchy wiosła) i TCP do konfigurowania lobby gry itp.
Czy to ŹLE RZECZ, że spamuje ogromne ilości ruchu UDP? Czy powinienem spojrzeć na coś takiego jak DCCP pod kątem jego funkcji przeciążenia? A może nie jest to problemem w przypadku takiego projektu na małą skalę?
Kiedy należy synchronizować wiadomości między klientem / serwerem? Obecnie serwer wysyła pakiety UDP z bieżącym stanem gry tak szybko, jak to możliwe, a klienci wysyłają spam z powrotem do serwera tak szybko, jak to możliwe. Czy to najlepszy sposób, aby to zrobić? Czy jest jakieś opóźnienie, które powinienem dodać, aby wiadomości były wysyłane raz na X milisekund, czy też powinienem wysyłać wiadomości tylko w przypadku zdarzeń? (np. zmieniono prędkość wiosła na skutek wprowadzenia danych przez użytkownika)
Czy lepiej byłoby zmusić klientów do komunikowania sobie swoich pozycji wiosła między sobą?
Zadaję te pytania w kontekście Ponga, ale jestem również zainteresowany tym, w jaki sposób problemy te zostaną przezwyciężone w innych grach lub ogólnych rozwiązaniach.