eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingprosty kod sieciowy do gierki
Ilość wypowiedzi w tym wątku: 25

  • 21. Data: 2012-02-22 08:44:12
    Temat: Re: prosty kod sieciowy do gierki
    Od: <k...@w...pl>

    Oczywiście że się da.
    Różnice pomiędzy linux i windows w zasadzie to że windows musimy inicjować
    WSA a linux nie.
    W linux możesz tworzyć procesy i wątki, a w windows nie ma funkcji fork do
    duplikowania procesu, można tylko uruchomić inny proces.


  • 22. Data: 2012-02-25 17:40:39
    Temat: Re: prosty kod sieciowy do gierki
    Od: " " <f...@g...pl>

    Arkadiusz Dymek <a...@n...bedzie> napisał(a):

    > W dniu 2/20/2012 10:35 AM, f...@g...pl wrote:
    > > tak wogole ktos zna na tyle angielski by wiedziec
    > > co tu nalezy wstawic?
    > >
    > > Invitate Station ??? Sending Packets
    > >
    >
    > "to" albo "for" do wyboru, ale na pewno nie "Invitate" tylko "Invite"
    >
    mi obie wydaja sie bledne (to jako bledne 'w prawo' a for 'w lewo')


    --
    Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/


  • 23. Data: 2012-02-25 21:52:03
    Temat: Re: prosty kod sieciowy do gierki
    Od: Karol Y <k...@o...pl>

    > -) jak jakis sie zgubi to cala paczka nie dojdzie (a
    > prawdopodobienstwo tego rosnie z liczba pakietow)
    > }

    Ale czym Ty się przejmujesz? Jak masz w gnieździe coś do czytania, to
    czytasz, jak nie to wiesz że koniec pakietu. To czy pakiet się podzieli,
    czy dojdzie bez problemów w transmisji czy nie, tym już się zajmuje
    niższa warstwa.

    --
    Mateusz Bogusz


  • 24. Data: 2012-02-26 09:52:27
    Temat: Re: prosty kod sieciowy do gierki
    Od: " " <f...@g...pl>

    Karol Y <k...@o...pl> napisał(a):

    > > -) jak jakis sie zgubi to cala paczka nie dojdzie (a
    > > prawdopodobienstwo tego rosnie z liczba pakietow)
    > > }
    >
    > Ale czym Ty się przejmujesz? Jak masz w gnieździe coś do czytania, to
    > czytasz, jak nie to wiesz że koniec pakietu. To czy pakiet się podzieli,
    > czy dojdzie bez problemów w transmisji czy nie, tym już się zajmuje
    > niższa warstwa.
    >

    its okay t h e n (pl: to dobrze),
    wroce do tematu kiedys pozniej - chyba ze ktos
    chce wysnuc jakas opowiesc jak to sie robi, albo
    jest w stanie podac od reki prosty kod wysylajacy
    cyklicznie (np 10Hz) jakas strukture (np 10 intow)
    i z drugiej strony cyklicznie ja odbierajacy (w
    polaczeniu udp)








    --
    Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/


  • 25. Data: 2012-02-26 18:45:53
    Temat: Re: prosty kod sieciowy do gierki
    Od: Karol Y <k...@o...pl>

    >>> -) jak jakis sie zgubi to cala paczka nie dojdzie (a
    >>> prawdopodobienstwo tego rosnie z liczba pakietow)
    >>> }
    >>
    >> Ale czym Ty się przejmujesz? Jak masz w gnieździe coś do czytania, to
    >> czytasz, jak nie to wiesz że koniec pakietu. To czy pakiet się podzieli,
    >> czy dojdzie bez problemów w transmisji czy nie, tym już się zajmuje
    >> niższa warstwa.
    >>
    >
    > its okay t h e n (pl: to dobrze),
    > wroce do tematu kiedys pozniej - chyba ze ktos
    > chce wysnuc jakas opowiesc jak to sie robi, albo
    > jest w stanie podac od reki prosty kod wysylajacy
    > cyklicznie (np 10Hz) jakas strukture (np 10 intow)
    > i z drugiej strony cyklicznie ja odbierajacy (w
    > polaczeniu udp)

    Znasz taką gierkę CD2D(+)?

    Łączenie z serwerem, wymiana informacji o graczach przy podłączaniu,
    przesyłanie map, tekstur itp. szło po TCP. Gdy gracz się ostatecznie
    podłączył, w wątku (który miał sleepa na 1000ms/preferowana_ilosc_Hz)
    odpowiedzialnym za wysyłanie informacji typu broadcast, wysyłane były
    pakiety UDP z nagłówkiem (liczbą, determinującą co zawiera pakiet) i
    ciągiem bitów opisujących przesyłaną strukturę.

    Czyli np.

    100 - nagłówek mówiący, że to pakiet opisujący pozycję gracza
    14 - OX
    17 - OY

    Pakiet UDP był strumieniem do którego robiło się Write(Byte/Int...), jak
    na serwerze wątek, który czytał sobie to co jest w gnieździe dostał
    callbacka, że coś się pojawiło to czytał; ReadByte -> 100, switch(100)
    przerzucił go do odpowiedniego kawałka kodu odpowiedzialnego za
    uaktualnienie pozycji gracza i po sprawdzeniu, że pakiet i informacje są
    ok, w pętli foreach (gracz in lista_graczy-ten_co_przysłał) był
    dystrybuowany dalej.

    Oczywiście jak grało dwóch graczy z pingiem 200ms każdy, to informacje o
    położeniu przeciwnika uaktualniał z opóźnieniem 200ms (100ms jednego +
    100ms drugiego), więc stosowało się małą predykcję ruchu gracza w
    przypadku oczekiwania na kolejny pakiet od niego (oczywiście w
    rozsądnych granicach). To czy ktoś oberwał, to liczył i tak serwer
    (musiało się to na nim stać), więc większy lag tak jak w każdej innej
    grzej przeszkadzał lagerowi, a nie pozostałym.

    Generalnie wszystko dość zgrabnie działało i działa bodaj nadal, ale kto
    inny się już tym zajmuje.

    --
    Mateusz Bogusz

strony : 1 . 2 . [ 3 ]


Szukaj w grupach

Szukaj w grupach

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: