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łapanie 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 niestety 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 zawierający listę ruchów, jakie wykonał. Serwer rozsyła tę listę do pozostałych graczy, którzy na podstawie otrzymanych danych przewidują ruchy tego klienta (na ok. 4 sekundy). Po opróżnieniu bufora 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 najbliż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łącznik | Rozmiar |
|---|---|
| dastardly.tar_.gz | 154.4 KB |
