Gra sieciowa i wybór dobrego/optymalnego sposobu wymiany danych między graczami.
A więc pisze pewną grę sieciową generalne gra będzie 2D (zapewne rzut izometryczny). Gra będzie w postaci apletu.
Na chwilę obecną mam już w jakimś stopniu działający serwer i klienta.
Obecnie wygląda to tak, że odpalam sobie serwer następnie Firefoxa łącze się z serwerem i pojawia się w oknie apletu obiekt gracza, (którym jak na razie oprócz poruszania się nic innego nie potrafi) następnie odpalam IE i robię to samo z tym, że po połączeniu w oknie Firefoxa pojawia się obiekt nowego gracza, którego ruchy są odbierane z serwera.
Dodatkowo na serwerze przechowuję aktualne dane o położeniu wszystkich graczy (i zapewnie w przyszłości inne dane).
Klient gracza również zawiera listę z obiektami, które reprezentują graczy połączonych z serwerem.
A teraz moje pytanie jak będzie lepiej przekazywać dane o położeniu/stanie obiektu gracza.
Na chwilę obecną robię to przy użyciu wartości typu String, czyli jeżeli poruszę się graczem to tworzę odpowiednią wiadomość a następnie wysyłam na serwer, serwer z kolei rozsyła tą wiadomość do wszystkich połączonych klientów graczy następnie klient parsuje tą wiadomość i aktualizuje odpowiedni obiekt gracza.
Przykładowy wygląd wiadomości
[x][8][103]
X – oznacza, że obiekt zmienił pozycję na osi x
8 – unikalny identyfikator gracza (w jakiś sposób muszę ich rozpoznawać)
103 – aktualne położenie gracza na osi X (czyli to, co się zmieniło)
No więc co o tym sądzicie? Czy ten sposób będzie w miarę optymalny czy lepiej przesyłać obiekty graczy gdyż będzie to optymalniejsze od parsowania stringa. Wydaje Mi się jednak, że obiekt będzie zdecydowanie większy i w przypadku wrzucenia apletu na stronę może powodować lagi w grze.
Czytałem na tym forum kilka wątków odnośnie pisania gier, z których wynikało, że najpierw piszemy a potem optymalizujemy niestety w tym przypadku wolałbym ten mechanizm zrobić w miarę poprawnie od początku.
Nie wiem czy idę dobrą drogą w sumie to pierwszy raz piszę grę (chociaż nie pierwszy raz piszę aplikację). Tak naprawdę to grę piszę hobbistycznie zawsze chciałem jakąś napisać :).
Być może macie jakieś ciekawe strony poruszające temat komunikacji sieciowej pomiędzy graczami.