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  Nowe CodeGuru - nareszcie!

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ż

10 rzeczy, które pozwalają zapewnić lepszy komfort... Praca przy komputerze może prowadzić do zespołu cieśni nadgarstka, bólów nóg, pleców, karku. Długotrwałe wpatrywanie się w monitor nie wpływa dobrze n...
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 ...
Napisano w Kolumna Tagi: , , ,

Menu