eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingprosty kod sieciowy do gierkiRe: prosty kod sieciowy do gierki
  • Path: news-archive.icm.edu.pl!news.icm.edu.pl!wsisiz.edu.pl!newsfeed2.atman.pl!newsfe
    ed.atman.pl!.POSTED!not-for-mail
    From: Karol Y <k...@o...pl>
    Newsgroups: pl.comp.programming
    Subject: Re: prosty kod sieciowy do gierki
    Date: Sun, 26 Feb 2012 19:45:53 +0100
    Organization: ATMAN - ATM S.A.
    Lines: 54
    Message-ID: <jidul2$l81$1@node2.news.atman.pl>
    References: <jhp44p$n9f$1@inews.gazeta.pl> <jhqq12$6mr$1@mx1.internetia.pl>
    <jhrb92$17i$1@inews.gazeta.pl>
    <4f424143$0$1232$65785112@news.neostrada.pl>
    <jhtt7b$ebq$1@inews.gazeta.pl>
    <4f434709$0$1228$65785112@news.neostrada.pl>
    <jhvhv7$s85$1@inews.gazeta.pl> <jibl6c$9be$1@node2.news.atman.pl>
    <jicvcr$37j$1@inews.gazeta.pl>
    NNTP-Posting-Host: staticline56255.toya.net.pl
    Mime-Version: 1.0
    Content-Type: text/plain; charset=ISO-8859-2; format=flowed
    Content-Transfer-Encoding: 8bit
    X-Trace: node2.news.atman.pl 1330281954 21761 77.237.12.240 (26 Feb 2012 18:45:54
    GMT)
    X-Complaints-To: u...@a...pl
    NNTP-Posting-Date: Sun, 26 Feb 2012 18:45:54 +0000 (UTC)
    User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:10.0.2) Gecko/20120216 Thunderbird/10.0.2
    In-Reply-To: <jicvcr$37j$1@inews.gazeta.pl>
    Xref: news-archive.icm.edu.pl pl.comp.programming:195743
    [ ukryj nagłówki ]

    >>> -) 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

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj

Najnowsze wątki z tej grupy


Najnowsze wątki

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: