O Google App Engine é uma boa plataforma para um MMO online?


10

Estou pensando em algumas idéias para criar um jogo MMORPG de escala smale, baseado em Java, este é um projeto paralelo / hobby para ajudar meu processo de aprendizado

Eu já joguei com o GAE e criei um aplicativo Web simples, estou pensando em usá-lo como minha plataforma para um jogo

isso é uma boa ideia? Existem jogos por aí que usam essa plataforma? Até agora, não vejo nenhuma limitação, senão o Google poderá "possuí-lo" em vez de eu mesmo

Respostas:


3

Depende de quanto de latência / velocidade você precisar.

Cada solicitação http (para um servidor dedicado) leva entre 300 e 600 ms. No mecanismo de aplicativos, parece mais entre 600 e 900 ms ou mais (se você tiver muitas consultas). Ao mesmo tempo, uma única conexão com o GAE deve durar menos de 30 segundos, então ...

O que tudo isso significa é que você terá que fazer pesquisas lentas, o que pode ser bom o suficiente para alguns jogos baseados em turnos e não em tempo real.

Se você quiser fazer um jogo em tempo real, precisará deixar o HTTP e acessar TCP ou UDP (especialmente UDP).

Dito isto, se uma conexão com latência lenta / não em tempo real for boa o suficiente para o seu jogo, o GAE é escalonado de maneira bastante barata e resolve muitos problemas (sem limite de tamanho do banco de dados, sem problemas de spam com grande quantidade de emails) etc)


TCP não é realmente uma opção se você quiser em tempo real.
o0 '.

4
^^^ Mito comum
U62 22/09

* Para diferentes valores de tempo real.
DFectuoso 23/09/10

1
O TCP lida bem em tempo real, se você gerenciar seus pacotes corretamente. Não faz sentido enviar 10 pacotes para o mesmo destino dentro de alguns milissegundos, quando você pode agrupá-los.
precisa

@ Stephen: certo. Usando as técnicas corretas, você pode obter velocidade e confiabilidade, pois a única preocupação restante será a velocidade da conexão.
Moshe Revah

3

Não é exatamente um MMO, mas aqui está um artigo que li recentemente sobre o uso do App Engine como back-end do servidor de jogos:

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

Eu usei o GAE como back-end para alguns dos meus projetos, nenhum dos quais era um MMO, mas certamente aprecio isso como uma forte plataforma de desenvolvimento web que é fácil de trabalhar em geral e muito barata para experimentar e bootstrap de.

Como o @DFectuoso aponta, para um MMO em tempo real, você terá alguns problemas ao usar qualquer servidor da Web, muito menos o App Engine em particular. No entanto, um MMO baseado em turnos e / ou social possivelmente poderia usar o App Engine como o único back-end.

Em última análise, depende da arquitetura do seu jogo. Existem estratégias para executar quase em tempo real ou fingir em tempo real, onde o servidor principal é um servidor Web como o App Engine:

  • Você poderia realizar comunicações em tempo real ponto a ponto, atualizando apenas o servidor em momentos importantes.
  • Você pode tentar alguma comunicação em tempo real com estratégias como sondagens longas, que também são chamadas ultimamente de "solicitações de cometa", nas quais você faz solicitações ao servidor da web e o servidor nunca "termina" a resposta que resulta em solicitações muito longas / polling, mas permite que o servidor da Web envie continuamente novos dados à medida que se tornam disponíveis. (O suporte mais profundo ao cometa é um recurso futuro no App Engine, de acordo com o roteiro.)
  • No caso do App Engine, você também pode usar o XMPP / Jabber (um protocolo de IM aberto) para se comunicar rapidamente (quase em tempo real) com o servidor do jogo. Pode não ser um ótimo lugar para criar um jogo completo em tempo real, mas há muitos bots de bate-papo interessantes escritos com o suporte XMPP do App Engine.

Este é o rastreador de problemas do suporte ao Comet (já que eu ainda não consegui incorporar o link na postagem atual - aparentemente preciso de mais pontos de reputação): code.google.com/p/googleappengine/issues/detail?id=377
WorldMaker
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.