Agregar multijugador a un juego HTML5 [cerrado]

15

Estoy interesado en hacer un juego que actualmente tenga una experiencia cooperativa, sin embargo, tengo curiosidad sobre el mejor método para implementar esto en HTML5.

He hecho juegos antes de usar sockets C rectos, y también con la biblioteca Net para SDL.

¿Cuáles son algunas de mis mejores opciones para hacer esto en un entorno basado en lienzo?

En la actualidad, todo lo que se me ocurre son soluciones AJAX / base de datos (con una alta frecuencia de actualización) o implementar de alguna manera un servidor PHP que canalice los datos a través de sockets.


La jugabilidad general sería un tipo de juego de plataformas 2.5D, por lo que ambos clientes tendrían que actualizarse continuamente con posiciones de jugadores, posiciones enemigas, proyectiles, datos ambientales, etc.

El e
fuente
1
Cuando websockets ( en.wikipedia.org/wiki/WebSockets ) esté finalizado (e implementado, etc.), probablemente sería una buena manera, hasta entonces creo que AJAX (sin la X, no se requiere XML para esto) probablemente sería la mejor manera (Todavía no es una muy buena manera, supongo).
Elva
Parece que el apoyo a los zócalos web está disminuyendo rápidamente ...
the_e
¿Quieres hacer un stand o un juego? Si quieres hacer un juego; no te molestes en html5.
@stefan: ¿por qué no ambos? ¡solo porque aún no está finalizado no significa que no pueda trabajar con él!
the_e

Respuestas:

12

Socket.IO ofrece un sistema construido sobre varias otras capas (incluyendo websockets, flash, técnicas de cometas) con una selección elegante.

Node.js es una opción para ejecutarlo en el lado del servidor.

Vincent Scheib
fuente
5

Ver esta respuesta :

Sin embargo, puede usar Flash cuando esté disponible para proporcionar un respaldo a su script hasta que WebSocket esté ampliamente disponible. Gimite de Web-socket-JS es un ejemplo libre de tal. Sin embargo, está sujeto a las mismas limitaciones que Flash Sockets, es decir, que su servidor debe poder escupir una política de dominio cruzado a petición del puerto del socket, y a menudo tendrá dificultades con los servidores proxy / firewalls. (Los enchufes Flash se hacen directamente; para alguien sin acceso directo de IP pública que solo puede salir de la red a través de un proxy HTTP, no funcionará).

Ricket
fuente
3

" Cometa " es probablemente un término general que podría utilizar aquí. Sin embargo, WebSockets será una opción más deseable (cuando estén felices de que sea seguro).

casr
fuente
3

Node.js es la respuesta. Lo he usado para desarrollar un juego de disparos multijugador en tiempo real, y me llevó aproximadamente 1 mes de principio a fin. Presentaba algunos desafíos únicos, por lo que necesitaba tener una latencia mínima, y ​​todos los jugadores deben estar sincronizados dentro de otro para que el concepto funcione.

El lado del cliente y el lado del servidor están escritos en javascript y comparten clases / lógica entre sí. Eso comienza a contar cuando intentas corregir errores, ya que no tienes que implementar todo dos veces.

El juego ha estado activo durante aproximadamente 2 meses, sin reiniciarlo y se han jugado miles de partidos.

Socket.io es una implicación de sockets y usa node.js, sin embargo, está demasiado hinchado en este punto para un juego. Hay otras implementaciones de websocket en github para node.js y también ejemplos de juegos que lo usan.

onedayitwillmake
fuente
2

Siempre puedes usar AJAX y algún tipo de cola de mensajes. ActiveMQ es un buen ejemplo. Ejecutas ActiveMQ en el servidor, luego tu JavaScript puede enviar y recibir mensajes. Simplemente haga que cada jugador tenga un nombre único y envíe mensajes al otro jugador.

Brendan Long
fuente
2

Podría intentar utilizar http://easywebsocket.org/ , es fácil de implementar y es una solución menos servidor basada en websocket :)

Pierre-Loic Doulcet
fuente
2

Hemos estado trabajando en una plataforma multijugador que puede resultarle interesante. Puede ver nuestro proyecto en www.16cubes.com : estamos proporcionando una capa simple de JavaScript para hacer una comunicación entre pares. Está algo basado en el principio Comet, y tenemos planes de pasar a usar websockets a medida que se vuelva un poco más estandarizado. Por otro lado, proporcionamos algunas características de la plataforma ... como la coincidencia automática de oponentes, el chat del juego, la invitación de un clic de amigos de Facebook, etc.

Tenemos un demo tic-tac-toe, probablemente pueda tener una mejor idea si lo ve. Y sí, también puedes jugar de forma anónima. No es necesario registrarse, si no lo desea. Hay menos de 10 API de JavaScript que necesita codificar, y está disponible en www.16cubes.com/documentation

Estamos buscando comentarios activamente, así que háganos saber lo bueno y lo malo


fuente