Programowanie RMSBG na Facebooka cz. 2 – Język programowania

Jakie języki programowania trzeba znać, żeby pisać RMSBG na Facebooka? Dowiedz się.

W poprzedniej części poruszyłem temat decyzji czy aby napisać Realtime Multiplayer Social Browser Game na Facebooka jest potrzeby centralny serwer (albo zestaw serwerów). Doszliśmy do wniosku, że faktycznie taki serwer jest potrzebny. Tutaj pojawia się oczekiwana trudność.

Z jednej strony będą bowiem gracze korzystający z przeglądarki (środowisko klienckie) i serwer, który będzie pośredniczył w komunikacji i zapisywał informacje o stanie rozgrywek (środowisko serwerowe).

A to oznacza, że inaczej będzie wyglądać programowanie części klienckiej, a inaczej serwerowej. Na szczęście sami możemy wybrać sobie oba te środowiska.

Część kliencka może być pisana w JS, Javie, czy też w AS (Flash). JS jest najbardziej ubogi z tego towarzystwa, ale jest w każdej przeglądarce, Java jest najpotężniejsza, ale pierwszy start aplikacji wymaga dużo czasu. Nie każdy ma Javę zainstalowaną. Z kolei AS i Flash: znowu: nie każdy ma Flasha zainstalowanego. Za to Flash nadaje się idealnie do bardziej wymagających wizualnie gier np. gier 3D i animowanych.

Jeśli więc piszemy grę planszową użyjemy JS, a Flasha użyjemy do gry np. do uprawiania farmy.

Część serwerowa może być pisana też w różnych językach. Serwerem może być Apache, NGinx, Lighttpd. Serwerem może być też IIS. Zazwyczaj na pierwszych z wymienionych serwerów znajduje się parser PHP i baza MySQL. Na IIS głównie stoi ASP.NET (C#) sprzęgnięty z MS SQL Server.

Zazwyczaj, bo kombinacji jest wiele, jednak te są w miarę popularne i standardowe.

Pierwsze pytanie więc: jaki serwer wybrać? Apacheowy czy IISowy? To zależy od kilku czynników. Jaki język wybierzemy?

Czytaj podobne  Programowanie RMSBG na Facebooka cz. 3 - komunikacja klient - serwer

ASP.NET i C# to świetne środowiska, naprawdę dobrze dopracowane, pozwalające korzystać z dobrodziejstw bogatych i przejrzystych (w większości) bibliotek .NET Frameworku. Z drugiej strony PHP też ma swoje zalety. Jest przystosowany do pisania aplikacji serwerowych, wszystkie funkcje są dostępne niemal bezpośrednio bez tworzenia niepotrzebnych obiektów (po co komu obiekty?).

Drugi czynnik to postawienie samego serwera. Serwer można postawić u siebie na własnym komputerze, albo czyimś. Można też kupić odpowiedni serwer, wynająć go, skorzystać z chmury albo zwykłego hostingu.

Stawianie serwera u siebie to wiele wyzwań np. musisz sam wszystkim administrować, aktualizować itd. Na początek to słabe rozwiązanie. Więc lepiej u kogoś mieć serwer. No a jeśli przyjrzymy się cennikom i kosztom hostingów to wychodzi, że najtańsze i najłatwiej dostępne są serwery z PHP.

Tutaj jeszcze można wybierać między chmurą, a zwykłym hostingiem. Ale na początek odradzam chmurę. Chmura pozwala łatwiej skalować grę, ale na początek zwykły hosting wystarczy, a nie musimy uczyć się obsługi chmury, APIsów i innych rzeczy.

Oczywiście serwer można postawić też ja Javie, czy też na Node.js (JS serwerowy). Serwer na Javie to ciekawe rozwiązanie, szczególnie gdy trzeba maksymalnie ekstremalnie przyśpieszyć komunikację między graczami. Z kolei Node.js to jeszcze dość nowa rzecz, żeby myśleć o niej w produkcji.

Załóżmy że piszemy grę niewymagającą wielu animacji np. planszową. Wtedy najlepszy pakiet to hosting z PHP i MySQL. Po stronie klienta JS. Później zresztą zobaczycie, że te części są łatwo wymienialne. Stronę serwerową można dosyć łatwo przepisać na inny język i platformę w zależności od potrzeb. Z kolei część kliencka może używać JS w połączeniu z AS czy Java tworząc dodatkową warstwę abstrakcji. Także raz napisana może być używana w wielu sytuacjach.

Czytaj podobne  Plusy i minusy Grona

Warto dodać, że FB wspiera oficjalnie API które jest napisane właśnie w JS, więc to dodatkowy plus dla tego języka skryptowego.

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 gier społecznościowych czasu rzeczyw... Czy aby pisać gry RMSBG trzeba korzystać z serwera? Dowiedz się! Po latach pisania gier online postanowiłem podzielić się moimi doświadczeniami na ...
Napisano w Społecznościowe Tagi: , , ,