¿Es posible desarrollar juegos multijugador con HTML5?

9

Sé que HTML5 es excelente para los juegos web, pero realmente no sé si es posible desarrollar juegos en línea con múltiples usuarios, mantener a todos sincronizados y manejar inicios de sesión, etc. ¿Es posible hacer esto?

arrrrgv
fuente

Respuestas:

7

No puedes escribirlo solo con HTML5. Siempre necesitará secuencias de comandos y un servidor para manejar la comunicación entre los usuarios, debido a los límites de seguridad de las secuencias de comandos del navegador y también para evitar trampas.

Muchas personas han escrito juegos html5 multijugador, incluso yo lo he hecho. El uso de html5 en sí mismo probablemente no sea la parte más importante. La mayoría de las cosas necesarias (si no todas) también han estado disponibles en html 4.01. La excepción es el lienzo, pero el lienzo es más lento que svg, y svg ya estaba disponible en muchos navegadores.

Creo que lo que realmente generó la manía del "juego html5" es la capacidad de crear aplicaciones del lado del servidor en javascript. Esto significa que todos los programadores del lado del cliente de repente pueden hacer todo el sistema por sí mismos, y generalmente son las personas creativas cuando se trata de cosas como juegos. Sin mencionar que JS es tan fácil que incluso tu abuela podría programar con él. Tal vez.

Actualización después del comentario de OP:

Una arquitectura común para un juego de navegador sería

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

O en términos de "idiomas" reales:

  • Vista del cliente: HTML5 (posiblemente con angular.js, todavía no he probado qué tan rápido es con LOTS. También revise raphael.js para "gráficos")
  • Lógica del cliente: JavaScript (jquery / vapor / plain / lo que sea)
  • Base de datos del cliente: WebSQL (parte de la "suite" HTML5, supongo)
  • Comunicación: JSON (notación de objeto Javascript, esencialmente objetos serializados de JavaScript) sobre socket.io (biblioteca JS para detectar automáticamente protocolos de comunicación óptimos)
  • Idioma del servidor: también JS (node.js si tiene TONELADAS de usuarios concurrentes en pocos núcleos, también hay otras soluciones disponibles)
  • Validación: solo asegurándose de que sus datos de juego ENTRANTES (del cliente) sean válidos. No es necesario verificar el saliente, ni siquiera en el cliente. Se supone correcto. Siempre .
  • Game World: una colección de datos VERIFICADOS que se redistribuye a todos los clientes a medida que entran
  • Base de datos del servidor: couchdb, mongodb, cualquier base de datos que le brinde objetos json sin procesar para trabajar.

Ahí tienes. Un juego completo de Internet escrito solo usando javascript y html. Encantador.

Tor Valamo
fuente
Me parece muy interesante su respuesta, ¿podría darme un pequeño consejo sobre qué partes debo construir (son las más importantes) de principio a fin y qué tecnologías se alimentan en cada parte, lo siento, solo trato de saber cómo construir algo confiable . ¡Gracias!
arrrrgv
1
+1, HTML5 está de moda, pero lo que la gente le atribuye es principalmente la funcionalidad 4.01 y JavaScript. ¿Podría pedirle que no llame a JavaScript fácil? Tiene sus ventajas, pero si quieres escribir programas reales, debes ser un programador real. JavaScript elimina los quehaceres de la declaración de variables y la administración de memoria, pero no facilita la organización de su código y la creación de algoritmos y estructuras de datos, y definitivamente necesita una mentalidad y experiencia de programadores para esas tareas.
aaaaaaaaaaaa
@eBusiness lo que quiero decir con fácil es que está tan condensado en términos de programación, y sus casos de uso están documentados hasta la muerte. Siempre puedes encontrar un tutorial o una función que haga lo que quieras. Y es fácil de configurar (no es necesario, ya está en el navegador).
Tor Valamo
@arrrrgv publicación actualizada con respuesta a su pregunta
Tor Valamo
1
+1 para una buena respuesta, aunque dudo que el aumento de los juegos HTML5 tenga algo que ver con JavaScript del lado del servidor. Estrictamente hablando, JS ni siquiera es parte de HTML5. Creo que son las nuevas características como lienzo, webGL, audio y video y almacenamiento local las que dan un impulso a los juegos HTML5. Y, por supuesto, el hecho de que es nuevo y publicitado para que todos se suban al carro.
bummzack
3

Eche un vistazo al artículo en http://smus.com/multiplayer-html5-games-with-node y también a la fuente proporcionada con el artículo. Tenga en cuenta que esto también usa JavaScript para redes.

FrenchyNZ
fuente
2
Escriba "JavaScript" como una sola palabra, para evitar confusiones.
o0 '.
Un día, Node.js no será necesario, cuando la compatibilidad entre navegadores para los sockets web está muy extendida.
Ingeniero
No veo por qué la compatibilidad entre navegadores para los sockets web cambiaría la necesidad de un componente de servidor fuera de cualquier navegador. Siempre debe programar un juego multijugador para que los clientes se conecten a un servidor central, no directamente de cliente a cliente.
jhocking
1
También echa un vistazo a NowJS ( nowjs.com )
Tim Holt
los sockets web son inherentemente inseguros para cualquier aplicación, razón por la cual la implementación planificada fue abandonada por tantos navegadores. no puede permitir un entorno que tenga acceso a "cualquier lugar" y al mismo tiempo puede recibir información de "cualquier lugar".
Tor Valamo