-
Data: 2017-12-06 22:45:21
Temat: Re: how 2 code 2 player pong over a network
Od: g...@g...com szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]W dniu środa, 6 grudnia 2017 21:22:32 UTC+1 użytkownik fir napisał:
> W dniu środa, 6 grudnia 2017 20:49:34 UTC+1 użytkownik g...@g...com napisał:
> > Kiedyś z kolegą tak zrobiliśmy, że sobie napisaliśmy któregoś wieczora
> > ponga na dwa komputery, podłączyliśmy jeden komputer do telewizora
> > i graliśmy jak za "starych dobrych".
> >
> > Opóźnienia w sterowaniu były zasadniczo niezauważalne. Zdaje się, że
> > rzecz była rozwiązana w taki sposób, że mieliśmy dwie aplikacje - klienta
> > i serwera, i dwa klienty były podłączone do jednego serwera. Architektonicznie
> > takie rozwiązanie jest prostsze, i można też łatwo postawić serwer na osobnym
> > kompie, zmniejszając nieuczciwość wynikłą z inercji.
> >
> > Jednak przy słabo obciążonej sieci lokalnej nie było żadnej dostrzegalnej
> > inercji, dlatego sugerowałbym najpierw napisać aplikację, a później przejmować
> > się ewentualnymi problemami, niż najpierw się przejmować problemami, a później
> > tak "przedobrzyć" z projektem, że w końcu aplikacja nigdy nie powstanie.
> >
> > Stąd też najpierw po prostu napisz, zmierz, i może się okaże, że będzie dobrze.
> > A jak opóźnienia będą zbyt dokuczliwe, możesz to przerobić na strategię turową.
>
> wiem ze na lokalnej sieci opoznienia beda raczej minimalne i mozna je
najprawdopodobniej olac
> ale ja mowie o przypadku z laczeniem sie miedzy miastami (jak napisalem
testowalismy to z moją koleżanką-asystentką i dzialalo ale
> opznienie raczej są i trzeba pomyslec jak do tego podejsc
>
> - najprawdopodobniej sporo ludzi juz ten problem rozwiazalo i sa jakies dobre
metody ale jak mowi ja sie tym poki nie zajmowalme i teraz czeka mnie rozkminienie
tego probblemu
>
> ps prosty prototym samego polaczenia jest napisane mozesz sobie odpalic i nawet
poeksperymentowac z kodem
>
> minddetonator.htw.pl/ppt.zip
Możesz zamiast TCP spróbować zrobić po UDP. Wprawdzie wtedy trzeba
będzie wprowadzić jakąś strategię synchronizacji (żeby pakiety które przychodzą
z bardzo dużym opóźnieniem nie wpływały na rozgrywkę), ale może będzie
szybciej.
Co do przekonania, że ktoś ten problem rozwiązał, to raczej bym na to
nie liczył. Opóźnienie to opóźnienie i nie da się go usunąć (ewentualnie
można się zastanowić nad szybszym internetem, albo nad postawieniem
serwera w mieście pomiędzy waszymi miastami). Można się bawić w jakieś
modele, predykcje itp. ale to tylko częściowo skompensuje problem.
Oczywiście w przypadku tej partykularnej gry, jaką jest pong, można sobie
poradzić z tym problemem bardzo łatwo - ważna jest tylko pozycja i prędkość
piłki w momencie odbicia od paletki - po upłynięciu owego czasu można
deterministycznie określić, w której klatce piłka znajdzie się u przeciwnika.
Jeżeli gracze ufają sobie nawzajem, to wystarczy w momencie obronienia
albo zdobycia punktu wysłać informację o tym, czy się to udało.
Wówczas serwer może zaktualizować położenie piłki do drugiego gracza
dopiero wówczas, gdy dostanie odpowiedź.
Taka strategia będzie działała o tyle, o ile czas transmisji pomiędzy klientami
będzie dużo mniejszy niż czas, w jakim piłka przeleci z jednego końca
do drugiego. W przeciwnym razie warto się zastanowić z krótkotrwałym
wstrzymaniem gry do czasu, aż drugi gracz nie dostanie informacji od
pierwszego.
Można też zrobić synchronizację z klientami - serwer zaktualizuje klatkę
rozgrywki dopiero wtedy, kiedy dostanie odpowiednią informację od obu
klientów (na przykład z numerem klatki), zaś klient wyśle informację dopiero
po przesłaniu potwierdzenia od serwera.
Następne wpisy z tego wątku
- 06.12.17 23:14 slawek
Najnowsze wątki z tej grupy
- John Carmack twierdzi, że gdyby gry były optymalizowane, to wystarczyły by stare kompy
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2025
- Linuks od wer. 6.15 przestanie wspierać procesory 486 i będzie wymagać min. Pentium
- ,,Polski przemysł jest w stanie agonalnym" - podkreślił dobitnie, wskazując na brak zamówień.
- Rewolucja w debugowaniu!!! SI analizuje zrzuty pamięci systemu M$ Windows!!!
- Brednie w wiki - hasło Dehomag
- Perfidne ataki krakerów z KRLD na skrypciarzy JS i Pajton
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- U nas propagują modę na SI, a w Chinach naukowcy SI po kolei umierają w wieku 40-50lat
- C++. Podróż Po Języku - komentarz
- "Wuj dobra rada" z KDAB rozważa: Choosing the Right Programming Language for Your Embedded Linux Device
- Nowa ustawa o ochronie praw autorskich - opis problemu i szkic ustawy
- Alg. kompresji LZW
Najnowsze wątki
- 2025-05-15 Nowy rodzaj zagrożenie ze strony elektryków :)
- 2025-05-15 Bus inpostu, przemycający ludzi, walnął w nocy w tira zaparkowanego na autostradzie 5 ofiar
- 2025-05-15 Alert RCB w sprawie dziewczynki
- 2025-05-15 Kurierski bus przemycał ludzi i zasnął nad ranem za kierownicą.
- 2025-05-15 Dęblin => JavaScript / Node / Fullstack Developer <=
- 2025-05-14 Tsue i smsy
- 2025-05-14 Biedna kobieta jechała samochodem na targ aby sprzedać klamoty i dostała 300 zł mandatu
- 2025-05-14 hot spot traci connected device
- 2025-05-14 John Carmack twierdzi, że gdyby gry były optymalizowane, to wystarczyły by stare kompy
- 2025-05-14 John Carmack twierdzi, że gdyby gry były optymalizowane, to wystarczyły by stare kompy
- 2025-05-14 Wariant rumuński
- 2025-05-14 Rolnicy protestują w Szczecinie
- 2025-05-14 Rolnicy protestują w Szczecinie
- 2025-05-14 Rolnicy protestują w Szczecinie
- 2025-05-14 Niemcy: Przychody ze sprzedaży produktów Fairtrade w 2024r. wzrosły o rekordowe 13% do 2,9GEUR