Czy Google App Engine to dobra platforma dla internetowej gry MMO?

10

Patrzę na kilka pomysłów na stworzenie niewielkiej gry MMORPG, opartej na Javie, jest to projekt poboczny / hobby, który pomaga w moim procesie uczenia się

Grałem już w GAE i zainstalowałem prostą aplikację internetową, myślę o tym, by wykorzystać ją jako platformę do gry

Czy to dobry pomysł? Czy są jakieś gry korzystające z takiej platformy? Jak dotąd nie widzę żadnych ograniczeń, inne niż Google może być w stanie „posiadać” je zamiast mnie

użytkownik155695
źródło

Odpowiedzi:

3

Rodzaj zależy od tego, ile potrzebujesz opóźnienia / prędkości.

Każde żądanie HTTP (do dedykowanego serwera) zajmuje od 300 do 600 ms. W silniku aplikacji, który wygląda bardziej na 600-900 ms lub nawet więcej (jeśli masz dużo zapytań). Jednocześnie pojedyncze połączenie z GAE musi trwać krócej niż 30 sekund, więc ...

To wszystko oznacza, że ​​będziesz musiał wykonywać wolne odpytywanie, co może być wystarczające dla niektórych gier turowych, a nie w czasie rzeczywistym.

Jeśli chcesz zrobić grę w czasie rzeczywistym, musisz opuścić HTTP i przejść do TCP lub UDP (szczególnie UDP).

Mimo to, jeśli wolne opóźnienie / połączenie w czasie rzeczywistym jest wystarczające dla twojej gry, GAE skaluje się dość tanio i rozwiązuje wiele problemów (bez ograniczenia wielkości bazy danych, żadnych problemów ze spamem przy dużej ilości wiadomości e-mail itp.)

DFectuoso
źródło
TCP nie jest tak naprawdę opcją, jeśli chcesz w czasie rzeczywistym.
o0 ”.
4
^^^ Powszechny mit
U62
* Dla różnych wartości w czasie rzeczywistym.
DFectuoso,
1
TCP dobrze radzi sobie w czasie rzeczywistym, jeśli odpowiednio zarządzasz pakietami. Nie ma sensu wysyłać 10 pakietów do tego samego miejsca docelowego w ciągu kilku milisekund, jeśli można je zgrupować.
Stephen Belanger
@Stephen: prawo. przy użyciu odpowiednich technik można osiągnąć szybkość i niezawodność, a jedynym zmartwieniem będzie szybkość połączenia.
Moshe Revah,
3

To nie jest dokładnie MMO, ale oto jeden artykuł, który ostatnio czytałem na temat używania App Engine jako zaplecza serwera gier:

http://gamesfromwithin.com/google-app-engine-as-back-end-for-iphone-apps

Użyłem GAE jako zaplecza dla kilku moich projektów, z których żaden nie był MMO, ale z pewnością doceniam to jako silną platformę programistyczną, z którą można łatwo współpracować i zdecydowanie tanią do eksperymentowania i bootstrap z.

Jak wskazuje @DFectuoso, w MMO w czasie rzeczywistym będziesz mieć problemy z korzystaniem z dowolnego serwera WWW, a tym bardziej z App Engine. Jednak turowa i / lub społeczna gra MMO prawdopodobnie mogłaby używać App Engine jako jedynego zaplecza.

Ostatecznie zależy to od architektury gry. Istnieją strategie postępowania w czasie zbliżonym do rzeczywistego lub fałszowania w czasie rzeczywistym, gdy głównym serwerem jest serwer WWW taki jak App Engine:

  • Możesz wykonywać komunikację peer-to-peer w czasie rzeczywistym, aktualizując serwer tylko w kluczowych momentach.
  • Możesz spróbować komunikować się w czasie rzeczywistym ze strategiami, takimi jak długie odpytywanie, które jest również ostatnio nazywane „żądaniami komet”, w których wysyłasz żądania do serwera WWW, a serwer nigdy nie „kończy” odpowiedzi, co powoduje bardzo długie żądania / polling, ale pozwala serwerowi na ciągłe wypychanie nowych danych w miarę ich udostępniania. (Według mapy drogowej, głębsza obsługa komet to nadchodząca funkcja App Engine).
  • W przypadku App Engine możesz także użyć XMPP / Jabber (otwarty protokół IM), aby szybko komunikować się (prawie w czasie rzeczywistym) z serwerem gier. To może nie być świetne miejsce do zbudowania pełnej gry w czasie rzeczywistym, ale istnieje wiele interesujących botów czatowych napisanych przy wsparciu XMPP App Engine.
WorldMaker
źródło
Jest to narzędzie do śledzenia problemów dla wsparcia Comet (ponieważ nie mogłem jeszcze osadzić linku w rzeczywistym poście - najwyraźniej potrzebuję więcej punktów reputacji): code.google.com/p/googleappengine/issues/detail?id=377
WorldMaker