Solo estoy investigando un poco sobre tecnología para usar en un juego móvil de jugadores múltiples.
Es más un experimento en este momento, por lo que, por el momento, lo único que los jugadores deben tener en cuenta son los otros jugadores.
Si se tratara de una aplicación web típica y no un juego, solo tendría solicitudes HTTP activadas todo el tiempo, pero como se trata de un juego, el rendimiento y la precisión serán un problema.
Debido a que el juego está dirigido a múltiples plataformas telefónicas, digamos que el cliente se escribirá en JavaScript o en un marco basado en JavaScript. La tecnología del servidor es totalmente abierta.
Cada jugador necesitará hacer el equivalente de una publicación HTTP y solo usar un protocolo más rápido. La razón por la que el modo multijugador se basa en la web es porque el modo multijugador a través de Bluetooth u otra red local sería demasiado diverso en todas las plataformas y podría causar problemas.
Entonces, la pregunta se reduce a cuál es un buen protocolo / tecnología para usar en el modo multijugador de JavaScript. ¿Algún consejo sobre el lado del servidor o es importante? ¿Alguna razón por la que debería abandonar esta arquitectura de dos niveles e ir con una conexión directa de teléfono a teléfono?
fuente
Tanto la pregunta como la respuesta aceptada se publicaron en 2011, y los tiempos han cambiado bastante desde :)
Websockets es bastante frecuente, pero una tecnología aún mejor es WebRTC que permite flujos UDP poco confiables. Estos son mucho, mucho mejores para los juegos.
Además de la comunicación, hay muchos otros obstáculos que superar al escribir juegos multijugador, como la reconciliación del estado del juego, la predicción del lado del cliente, la serialización y muchos otros.
<shameless self promotion>
Soy uno de los desarrolladores originales de lance.gg , un servidor / biblioteca de juegos multijugador basado en node.js donde hemos resuelto muchos de los problemas mencionados (¡y muchos otros!). Nuestro objetivo es facilitar el desarrollo de juegos multijugador para los desarrolladores de juegos JavasScript. Te invito calurosamente a usarlo como punto de partida para hacer tu juego.
</shameless self promotion>
fuente
Mira esto:
fuente