Klient - Serwer
Spis treści |
Wstęp
W większości gier FPP (first person shooter) jak kupujesz grę to kupujesz obie rzeczy na raz - klienta oraz serwer. Typowym przykładem jest gra z trybem single player - czyli biegasz po mapach strzelając do potworów.
W chwili gry rozpoczynasz grę dla jednego gracza albo dla kilku z menu, uruchamiane są dwa procesy: serwer gry i klient gry.
Serwer
Serwer tworzy mapę, umieszcza na nich potworki, odpowiada za to co się dzieje na mapie - jak biegają potwory, jak reagują, jak latają pociski, nasłuchuje co nadają podłączeni do niego klienci gry i zwraca im odpowiednie dane.
Klient
Klient natomiast spełnia rolę wizualizacji tego co przekazuje mu serwer - rysuje na ekranie grafikę, pobiera dane z klawiatury i myszy, generuje dźwięki w słuchawkach, przekazuje dane od gracza stukającego w klawisze do serwera za pośrednictwem sieci.
Listen Server
Tak więc jak zaczynasz grę w single player albo poprzez grę multiplayer z menu to najczęściej uruchamiasz moduł serwera, do którego podłącza się moduł klienta - najczęściej współdzielą one pewne zasoby - najczęściej dane o mapie - oszczędza głównie ram.
Tak tworzysz więc tak zwany Listen Server. Najczęściej jak odłączysz się od niego to jednocześnie serwer się wyłączy (no i wszyscy podłączeni nie mają gdzie grać), a wiadomo, że czasem cały czas odpalonej gry nie można mieć.
Zalety
- prostota uruchomienia - z menu
- współdzielenie zasobów dla modułu serwera i modułu klienta
- podstawa dla trybu single player
Wady
- działa tak długo jak połączony jest gracz który stworzył ten serwer, jak wyłączy grę to serwer też się wyłącza
- wymaga interakcji gracza (klikanie w menu)
- pożera zasoby typu karta wideo, użycie CPU na maksimum, karta dźwiękową
- wydajność rysowania grafiki przez sprzęt (najczęściej zależy od procesora i karty graficznej) DRASTYCZNIE wpływa na wydajność gry sieciowej
- trudno jest go uruchomić tak, aby pracował w tle :D
- często opracowywany aby działał na wybranym systemie operacyjnym
Zauważyć mozna pewnie problemy w sewerze listen - przede wszstkim wymaga niezłego sprzętu i karty graficznej z akceleracją (inaczej da się grac ale chodzi żałośnie). Co więcej serwer Listen nie nadaje się raczej do uruchomienia w tle.
Dedicated Serwer
Dlatego został opracowany specjalny wariant modułu serwera gry, który może być uruchomiony tak aby nie wymagał klienta do poprawnej pracy. Taki serwer nazywamy serwerem dedykowanym - Dedicated Server.
Zalety
- nie wymaga takiego sprzętu jak wersja listen server - czyli modułu klienta, wymagającego karty graficznej.
- zwraca komunikaty w konsoli, można łatwo umieścić w tle
- często można go otrzymać za darmo (tzn. starczy ściągnąć z Internetu pliki bez płacenia za grę pełną - czyli klienta)
- poprawni skonfigurowany może działać 24h na dobę, tygodniami
- zajmuje na dysku przeważnie o wiele mniej miejsca niż klient
- często działa na wielu platformach (Windows, Unix, Linux itp.)
Wady
- nie tak łatwo skonfigurować - przeważnie nie ma przyjaznego menu, i trzeba grzebać się w plikach konfiguracyjnych albo uruchamiać z parametrami
- czasem kontrola programu wymaga dodatkowych narzędzi (np do zdalnej administracji)
- instrukcje często w języku angielskim zniechęcają niedoświadczonych do zajmowania się tego rodzaju aplikacjami (i dobrze, bo to nie dla debili)
Uruchomiony proces serwera gry wygląda nieciekawie ;D, jakieś literki na ekranie i nic więcej (nie ma bajerów graficznych jak klient, bo nie po to został stworzony) albo nie wygląda w ogóle (widać tylko w liście uruchomionych procesów).
Uwaga
Większość dodatków pod serwery dedykowane działa na serwerach listen, ale nie odwrotnie (tzn. nie wszystkie co działają na listen chodzą na dedykowanym, bo wymagają rozszerzeń jakie daje moduł klienta).