eGospodarka.pl

eGospodarka.plGrupypl.comp.programming › Re: how 2 code 2 player pong over a network
Ilość wypowiedzi w tym wątku: 5

  • 1. Data: 2017-12-06 20:49:32
    Temat: Re: how 2 code 2 player pong over a network
    Od: g...@g...com

    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ą.


  • 2. Data: 2017-12-06 21:22:30
    Temat: Re: how 2 code 2 player pong over a network
    Od: fir <p...@g...com>

    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


  • 3. Data: 2017-12-06 22:43:36
    Temat: Re: how 2 code 2 player pong over a network
    Od: fir <p...@g...com>

    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

    troche poprawilem by nie wywalal tych chamskich mesage boxow na brak polaczenia -
    przy okazji opisuje problem - jesli juz mam polczenie dokonanae to po restarcie
    klienta laczy ponownie bez szemrania, natomiast po restarcie servera
    nie chce polaczyc i trzeba wtedy zrestartowac klienta by polaczyl
    - ktos moze wie czemu?

    cyt-->

    besides some may run some prototype on which i test connections

    minddetonator.htw.pl/ppt2.zip

    (for win32, no malware, some may seem that messy/adhoc code of my inside (over my
    power dll green fire which is not open))


    i got yet one problem related to this winsock

    i managed to do it this way that it is not important if you runn client or server
    first, it will quietly connect if both are run, hovever
    problem is: both are connected i close client and then reopen it - it will get
    connected again with no problem, hovever if i close server and then reopen it it not
    get connected (i must then close client and reopen it then it get connected)

    does maybe someone get some idea why it can be, and what to change
    to client be automativcally connectet after restarting the server?


  • 4. Data: 2017-12-06 22:45:21
    Temat: Re: how 2 code 2 player pong over a network
    Od: g...@g...com

    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.


  • 5. Data: 2017-12-06 23:14:23
    Temat: Re: how 2 code 2 player pong over a network
    Od: slawek <f...@f...com>

    On Wed, 6 Dec 2017 13:45:21 -0800 (PST), g...@g...com wrote:
    > nie liczył. Opóźnienie to opóźnienie i nie da si=
    > ę go usunąć (ewentualnie

    Da się.

    Ale padam z nóg - polska prywatna służba zdrowia - i nie mam siły
    pisać.

    Tzn. opóźnienia nie znikną, ale gracze nie będą ich odczuwali. Myk w
    serwerze "in middle". I w rozpisaniu co ma być lokalnie a co przez
    ten serwer. A ten serwer może być "in middle" wirtualnie, bo w realu
    to jeden z komp. graczy.

strony : [ 1 ]



Szukaj w grupach

Szukaj w grupach

REKLAMA

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo:

Strona korzysta z plików cookies w celu realizacji usług i zgodnie z Polityką Prywatności. Możesz określić warunki przechowywania lub dostępu do plików cookies w Twojej przeglądarce.