Serwer gry przeglądarkowej

0

Witam,
czy mógłby mi ktoś wytłumaczyć w jaki sposób działaja serwery gir przegladarkowych? Czy jest to apache, w którym skrypt.php który jest przetwarzany przez interpreter i wysyłany do użytkownika pobiera i zapisuje dane do bazy danych bezpośrednio, czy raczej taki serwer jest napisany od zera w c++ czy czymś podobnym i działa np tak że ciąle dane trzyma w RAMie a przy save zapisuje do bazy danych czy jak?
Z góry dzięki za pomoc!

0

w każdej większej niż pseudogra na 1000 osób takie rzeczy dzieją się w tle, aplikacja serwera może być w c++, może być javie, nawet w phpie by mogła być (ale jednak serwer działający cały czas bez nieskończonej pętli jest tu lepszym rozwiązaniem) --- tam się dzieją wszystkie bitwy, zwiększają się surowce itd, natomiast poprzez php np. podaje się tylko bieżące dane użytkownika i przyjmuje od niego żądania wykonania poszczególnych akcji.
teoretycznie rzeczy wymagające obliczania w tle nie muszą się dziać w tle - mogą być przeliczane dopiero w momencie kiedy użytkownik wywoła stronę (porównać daty i przeliczyć odpowiednią ilość surowca itd), jednak stwarza to pewnie więcej komplikacji z odpowiednią synchronizacją tego i nie zgubieniem żadnych danych, i ogólnie jest mniej wydajne.

0

Czyli mam rozumieć że robisz np w c++ serwer od zera i tam robisz w głównym wątku wątek który nasłuchuje nowych graczy dla każdego połączonego tworzysz wątek i tam jest on obsługiwany, a cała mapa i wszystkie dane są trzymane podczas działania w ramie? czy w bazie danych? tak???

0

niekoniecznie. php czy cośtam przyjmuje żądania od graczy, zapisuje te dane gdzieśtam w bazie (która może byc np. na drugim fizycznym serwerze, żeby to sprawniej działało), a jeden główny wątek (który może być na kolejnym serwerze ....) już sobie te dane przetwarza po swojemu.
gdzie dane wiszą - zapewne większość w ramie, jednak sądzę, że systematycznie są synchronizowane z bazą danych na dysku (co by nie stracić więcej niż 5 minut gry w razie problemów z zasilaniem). są też systemy bazodanowe operujące w pamięci ram, i ogólnie masa technologii wykraczających poza standardowe "stronki".
ja też nie udzielę Ci żadnej pewnej odpowiedzi na 100%, bo nie przyszło mi takiej gry tworzyć, jednak na pewno opcja z przetwarzaniem wszystkiego poprzez jakieś php z każdym żądaniem jest mało realna w grze, która ma udźwignąć więcej graczy.

W Google rozumiem nic nie szukałeś, masz tu stronę z forum na ten temat: http://www.tworzenie-gier.pl/

0

ok dzięki, popatrzę na tę stronę. btw nie rozumiem dokładnie co napisałeś. Chodzi Ci o to że np masz serwer apache na ktorym jest jakby klient (skrypt php który obsługuje uzytkownika) i on łączy się z serwerem napisanym w c++ znajdującym się gdzieś indziej na którym są timery itp?.

0

w porządnej grze na pewno nie będzie to apache i prawie na pewno nie php. php może, ale nie musi mieć komunikacji bezpośrednio z serwerem obsługującym wszystkie zdarzenia czasu rzeczywistego - może tylko zostawiać nowe dane w bazie danych - ew. zaznaczając te, które priorytetowo dla tego żądania mają zostać przetworzone

0

dzek69 czy udzielasz pomocy poza forum? mam jeszcze kilka pytań. jeśłi tak to prosiłbym o podanie danych kontaktowych.

0

nie

0

C++ fastCGI na wątkach w tle. JS/PHP komunikacja użytkownik -> kod natywny. Albo olać PHP i bezpośrednio można chyba.

0

Przetwarzanie serwerowe node.js jest kilkakrotnie szybsze od PHP więc prawdopodobnie node.js jest w takim przypadku stosowane - obok Javy lub C++.
Sam interfejs webowy może być zrobiony w PHP + dużo JavaScript na kliencie (np. AJAX, dynamiczne odświeżanie).

Przykład:
http://www.nodejs-news.com/nodejs-tech/Building-Multiplayer-Game-HTML5-Node-Socketio/
http://smus.com/multiplayer-html5-games-with-node/

1 użytkowników online, w tym zalogowanych: 0, gości: 1