Programowanie RMSBG na Facebooka cz. 5 – host gry

Kim jest host gry i czy powinien znajdować się na serwerze czy powinien nim być jeden z graczy?

W poprzednich częściach ustaliliśmy środowiska programistyczne do pisania gier online na Facebooka, zagadnienie komunikacji i typy komunikatów jakie będą krążyć w grze. Nie ustaliliśmy jednak jeszcze jak ta komunikacja ma przebiegać.

Otóż w grach w realu wszyscy na bieżąco uzgadniamy czyja jest kolej itd. W trakcie przerwy w grze można o tym zapomnieć, ktoś będzie pamiętał i gramy dalej. W przypadku gry online tak nie może być ponieważ powstałby chaos. Dlatego spośród bytów gry wyróżnia się jeden nazywany hostem gry. Jest to byt, który pilnuje porządku w grze, kolejności, notuje wyniki, dba o wymianę danych itd.

W niektórych grach hostem gry jest jeden z graczy. W innych grach hostem jest serwer. Różnica jest istotna. Ponieważ jeśli hostem gry jest jeden z graczy to co zrobić gdy odejdzie? Gra musi się zakończyć, bo nikt jej nie kontroluje. Jeśli natomiast hostem gry jest serwer, to każdy z graczy mógłby teoretycznie odejść od gry, a ta trwałaby nadal.

Host gracz czy host serwer?

Jakie rozwiązanie wybrać? Otóż na zwykłym hostingu nie da się odpalić wątku, który by działał nieprzerwanie. A taki musiałby istnieć, aby kontrolować przebieg gry. Nawet jeśli byśmy z kolei odpalili taki wątek w inny sposób, to trzeba go oprogramować po stronie serwera, co będzie zabierać jego zasoby. Ponadto są inne ciekawostki do rozwiązania np. co gdy wątek zostanie ubity, albo serwer będzie restartowany? Wtedy pojawia się problem z kontynuacją gry.

Czytaj podobne  Pierwszy wpis na blogu

Z drugiej strony możemy wybrać jednego z graczy hostem gry. Np. może to być ten który zakłada “stół” gry. Wtedy nie trzeba programować hosta po stronie serwera, nie zużywamy jego zasobów i nie mamy wspomnianych wyżej problemów. Jedyny ważny problem to kwestia tego, że jak host odejdzie od stołu gry, gra nie może toczyć się dalej. Technicznie jest możliwe przekazanie “hostowania” innemu graczowi, jednak w praktyce nikt tego nie robi, ponieważ to dosyć skomplikowana i ryzykowna operacja.

Także w przypadku naszej gry planszowej możemy spokojnie założyć, że ten kto otwiera stół jest hostem i jest nim od początku do końca gry.

Przeczytaj też

Najlepsza książka do Pythona Nie wiesz, z jakiej książki/ebooka uczyć się programowania w języku Python? Postanowiłem zrobić zestawienie 10 książek z Heliona na ten temat, abyś mó...
Komplet 28 ebooków i kursów, aby zostać programist... Od jakiegoś czasu dostaję zapytania na temat tego jakie książki, kursy i ebooki polecam. W związku z tym postanowiłem przygotować dzisiaj zestaw, któr...
120 tapet programistycznych za darmo do pobrania Trochę mi się nudziło, więc przygotowałem zestaw 120 tapet dla programistów. Możesz go pobrać. Tapety są w rozdzielczości 1366x768. Podzielone ...
10 fiszek do nauki programowania w Pythonie Uczysz się programowania w Pythonie? Pobierz te 10 fiszek, które ułatwią Ci zapamiętanie funkcji wbudowanych* w Pythona! Programowanie potrafi ...
Napisano w Kolumna Tagi: , , ,

Menu