Programowanie gier społecznościowych czasu rzeczywistego na Facebooku cz. 1 – Serwer

Czy aby pisać gry RMSBG trzeba korzystać z serwera? Dowiedz się!

Po latach pisania gier online postanowiłem podzielić się moimi doświadczeniami na ten temat. Dlatego też napiszę serię wpisów omawiających główne związane z tym zagadnienia.

Dzisiaj przyjrzymy się problemowi serwer / brak serwera w rozwiązaniach RMSBG (Realtime Multiplayer Social Brower Games).

Aby móc zacząć pisać taką grę należy posiadać odpowiedni serwer mogący utrzymać ruch generowany przez graczy. Ale zacznijmy od tego dlaczego w ogóle jest potrzebny serwer.

Otóż podczas gry w czasie rzeczywistym gracze wysyłają między sobą komunikaty np. informację o gotowości do przejścia do następnej rundy, czy też wykonania akcji, na którą czeka reszta graczy.

Teoretycznie można by zrezygnować z istnienia serwera gry. Wtedy komunikacja odbywać by musiała się bezpośrednio pomiędzy graczami. Jednak z wielu względów nie jest to takie proste.

W przypadku programowania gier “desktopowych” czy też “mobilnych”, a więc instalowanych na komputerach czy urządzeniach przenośnych mamy więcej możliwości. Każdy gracz może de facto uruchomić swój serwer komunikacji, który łączy się z innymi np. przez IP metodą peer to peer.

Jednak w przypadku aplikacji “przeglądarkowych” sytuacja jest trudniejsza. Jesteśmy bowiem ograniczeni do funkcji jakie oferuje nam przeglądarka i platforma programistyczna (język JavaScript, Java, czy też ActionScript + Flash, ale też inne).

Jeśli interesuje nas rozwiązanie z użyciem JS to możliwości jeszcze bardziej maleją. Otóż obecnie przeglądarki nie oferują standardowej możliwości tworzenia z poziomu JS serwera komunikacji. Oczywiście trwają prace np. nad WebRTC, jednak na obecnym etapie RTC stack, STUN ICE i zarządzanie sesją nie są na tyle dopracowane i ustandaryzowane, aby mogły służyć w rozwiązaniach produkcyjnych.

Czytaj podobne  Testy funkcjonalne aplikacji na Grono.net

W związku z tym jeśli chcemy pisać aplikacje przeglądarkowe, społecznościowe w JS musimy mieć serwer, który będzie pośredniczył w komunikacji między graczami. Ale to nie tylko wymóg. Serwer taki przyda się również do zapisywania danych diagnostycznych, które ułatwią znajdowanie błędów w grze, czy też najważniejszych danych o wynikach poszczególnych gier, a więc do budowania rankingów, profilu uczestnika czy listy aktualnie otwartych “stołów” gry.

Przeczytaj też

Programowanie gier społecznościowych na Facebooka ... W czym pisać kod gry? W PHP czy w JS? No i gdzie trzymać dane o rozgrywce i grach? Dowiedz się! W poprzednich częściach omówiłem kwestię wyboru ser...
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 prog...
Programowanie RMSBG na Facebooka cz. 4 – typ... Jakie typy komunikacji trzeba uwzględnić w pisaniu gry RMSBG? W poprzednich częściach założyliśmy, że robimy grę planszową RMSBG (Realtime Multipla...
Programowanie RMSBG na Facebooka cz. 3 – kom... Jak klient w JS może komunikować się z serwerem w PHP przez HTTP? W poprzednich częściach omówiłem rozwiązania klienckie i serwerowe dla gier RMSBG...
Programowanie RMSBG na Facebooka cz. 2 – Jęz... Jakie języki programowania trzeba znać, żeby pisać RMSBG na Facebooka? Dowiedz się. W poprzedniej części poruszyłem temat decyzji czy aby napisać R...
Napisano w Społecznościowe Tagi: , , ,