É possível desenvolver jogos multiplayer com HTML5?

9

Sei que o HTML5 é ótimo para jogos na Web, mas realmente não sei se é possível desenvolver jogos on-line com vários usuários, mantendo todos sincronizados e gerenciando logins, etc. É possível fazer isso?

arrrrgv
fonte

Respostas:

7

Você não pode escrevê-lo apenas com HTML5. Você sempre precisará de scripts e um servidor para lidar com a comunicação entre usuários, devido aos limites de segurança dos scripts do navegador e também para evitar trapaças.

Muitas pessoas escreveram jogos multiplayer html5, até eu. O uso do html5 em si provavelmente não é a parte mais importante dele. A maioria das coisas necessárias (se não todas) também estão disponíveis no html 4.01. A exceção é a tela, mas a tela é mais lenta que o svg, e o svg já estava disponível em muitos navegadores.

Acho que o que realmente gerou a mania do "jogo html5" é a capacidade de criar aplicativos do lado do servidor em javascript. Isso significa que todos os programadores do lado do cliente podem criar repentinamente todo o sistema, e geralmente são as pessoas criativas quando se trata de coisas como jogos. Sem mencionar que o JS é tão fácil que até sua avó poderia programar com ele. Talvez.

Atualizar após o comentário do OP:

Uma arquitetura comum para um jogo de navegador seria

          Client                                     Server
|-----------------------|                   |---------------------|
View - input/output logic - Communication - Validation - Game World
              |                                              |
   client database (if needed)                    server database (if needed)

Ou em termos de "idiomas" reais:

  • Visualização do cliente: HTML5 (possivelmente com angular.js, ainda não testou a rapidez com o LOTS em andamento. Verifique também raphael.js para "gráficos")
  • Lógica do cliente: JavaScript (jquery / vapor / plain / qualquer que seja)
  • Banco de dados do cliente: WebSQL (parte do "conjunto" HTML5), suponho)
  • Comunicação: JSON (notação de objeto Javascript, objetos javascript essencialmente serializados) sobre socket.io (biblioteca JS para detectar automaticamente os melhores protocolos de comunicação)
  • Idioma do servidor: também JS (node.js se você tiver TONELADAS de usuários simultâneos em poucos núcleos, outras soluções também estarão disponíveis)
  • Validação: apenas verifique se os dados do jogo INCOMING (do cliente) são válidos. A saída não precisa ser verificada, nem mesmo no cliente. Presume-se correto. Sempre .
  • Game World: uma coleção de dados VERIFICADOS redistribuídos a todos os clientes à medida que eles chegam
  • Banco de dados do servidor: couchdb, mongodb, qualquer banco de dados que fornece objetos json brutos para trabalhar.

Aí está você. Um jogo completo da Internet escrito apenas usando javascript e html. Encantador.

Tor Valamo
fonte
Acho muito interessante sua resposta, você poderia me dar um pequeno conselho sobre quais partes devo construir (são mais importantes) de ponta a ponta e quais tecnologias se alimentam em cada parte, desculpe por isso, apenas tentando saber como criar algo confiável . Obrigado!
9788 Arrrrgv #
11
+1, HTML5 é a moda, mas o que as pessoas atribuem a ele é principalmente a funcionalidade 4.01 e o JavaScript. Eu poderia pedir que você não chamasse JavaScript fácil? Ele tem suas vantagens, mas se você deseja escrever programas reais, precisa ser um programador real. O JavaScript elimina as tarefas de declaração de variáveis ​​e gerenciamento de memória, mas não facilita a organização de seu código e algoritmos de figuração e estruturas de dados, e você definitivamente precisa de uma mentalidade e experiência de programadores para essas tarefas.
Aaaaaaaaaaaa
@eBusiness, o que quero dizer com fácil é que ele é tão condensado em termos de programação e seus casos de uso são documentados até a morte. Você sempre pode encontrar um tutorial ou uma função que faz o que deseja. E é fácil de configurar (você não precisa, já está no navegador).
precisa
@arrrrgv post atualizado com resposta à sua pergunta
Tor Valamo
11
+1 para uma boa resposta, embora eu duvide que a ascensão dos jogos HTML5 tenha algo a ver com o JavaScript do servidor. A rigor, o JS nem faz parte do HTML5. Acho que são os novos recursos, como canvas, webGL, áudio e vídeo e armazenamento local, que impulsionam os jogos HTML5. E, claro, o fato de ser novo e sensacional, para que todos pulem na onda.
bummzack
3

Dê uma olhada no artigo em http://smus.com/multiplayer-html5-games-with-node e também na fonte fornecida com o artigo. Observe que isso também usa JavaScript para redes.

FrenchyNZ
fonte
2
Por favor, escreva "JavaScript" como uma única palavra, para evitar confusão.
o0 '.
Um dia, o Node.js não será necessário - quando o suporte entre navegadores para soquetes da Web for generalizado.
Engenheiro de
Não vejo por que o suporte entre navegadores para soquetes da Web alteraria a necessidade de um componente de servidor fora de qualquer navegador. Você sempre deve programar um jogo multiplayer para que os clientes se conectem a um servidor central, não diretamente de cliente para cliente.
jhocking 8/11
11
Veja também NowJS ( nowjs.com )
Tim Holt
os soquetes da web são inerentemente inseguros para qualquer aplicativo, razão pela qual a implementação planejada foi abandonada por muitos navegadores. você não pode permitir um ambiente que tenha acesso a "qualquer lugar" e, ao mesmo tempo, possa receber informações de "qualquer lugar".
Tor Valamo