Gdzie jestem? Strona główna

Sieciowe systemy operacyjne

13 January, 2009 - 13:56 — vindicator

Dastardly and Muttley: Grafika na licencji Fair Use!Na laboratorium z SSO uczyliśmy się zaawansowanych zastosowań systemów Unixowych, związanych głównie z komunikacją międzyprocesową i bezpieczeństwem sieciowym. Zwieńczeniem całości było zadanie polegające na zaprojektowaniu gry wykorzystującej poznaną tematykę, umożliwiającej zabawę w trybie multiplayer. Razem z Jackiem Symonowiczem wykorzystaliśmy jako fabułę gry starą, dobrą kreskówkę "Dastardly and Muttley in Their Flying Machines". Konieczność budowania grafiki z literek nieco ograniczyła nasz polot, ale końcowy efekt jest nienajgorszy :-).

Fragment załączonego sprawozdania:

"Zasady zrealizowanej przez nas gry są proste – dowolna ilość graczy porusza się po labiryncie nie interferując między sobą. Elementem rywalizacji jest tu gonienie uciekającego elementu. Jego zła­panie oznacza inkrementację liczby punktów danego gracza.

Gra została zrealizowana w oparciu o strumieniowy protokół TCP. Konkurencyjne UDP, pomimo znacznie lepszego dopasowania do aplikacji działających w czasie rzeczywistym, nie zapewnia nie­stety wszystkich potrzebnych nam mechanizmów. Na potrzeby projektu opracowany został prosty protokół transmisji w warstwie aplikacji.

Ogólna idea jest następująca: każdy klient co pół sekundy wysyła do serwera bufor cykliczny za­wierający listę ruchów, jakie wykonał. Serwer rozsyła tę listę do pozostałych graczy, którzy na pod­stawie otrzymanych danych przewidują ruchy tego klienta (na ok. 4 sekundy). Po opróżnieniu bufo­ra predykcji następuje zatrzymanie klienta na ekranach przeciwników i sygnalizacja laga. Obiekt, który musi złapać klient zachowuje się nieco inaczej – serwer generuję listę ruchów obiektu na naj­bliższe parę sekund i rozsyła ją do wszystkich graczy. Jeśli lista ta się wyczerpie, a nie nadejdą nowe dane obiekt zostanie wstrzymany. Rozgrywką zarządza gracz (dalej nazywany hostem), który pierwszy zalogował się do serwera."

ZałącznikRozmiar
dastardly.tar_.gz154.4 KB

Opcje artykułu