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

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.)


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.

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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.