Estoy pensando en crear un juego web multijugador en Node.js. Esto significa que usaré el mismo idioma en el backend y en la interfaz. Sería en tiempo real y cerca de 20 personas máximo en cada habitación ', así que tengo algunas ideas:Juego multijugador con backend y frontend JavaScript. ¿Cuáles son las mejores prácticas?
¿Cómo compensar el retardo entre todos los usuarios, de modo que todo el mundo ve la misma cosa al mismo tiempo ? Estoy pensando en rastrear el tiempo promedio de ping de cada jugador, encontrar el más lento e informar a los otros clientes del tiempo (en milisegundos) que deben retrasarse para que todos estén tan sincronizados como sea posible.
Estoy pensando en ejecutar el código del juego tanto en el backend como en el frontend (ya que es JavaScript en ambos extremos) y tener un mecanismo de corrección de errores para sincronizar con el 'juego real' en el back-end . De esta forma, el juego debería funcionar sin problemas en la interfaz y con solo algunas fallas técnicas cuando ocurre la sincronización. También eso minimizaría el pirateo de JavaScript de frontend ya que los tramposos se sincronizarían hasta el juego de back-end.
Debería recibir acciones de jugador a través del socket (presionar teclas), informar a todos los demás clientes de las acciones de los otros jugadores y mientras tanto 'jugar' el juego en el backend y enviar información de sincronización a todos los jugadores estado de vez en cuando para sincronizarlos?
¿Qué opinas? ¿Hay más cosas que debería considerar o prestar atención?
Por favor, publique sus pensamientos o enlaces a la documentación o artículos sobre juegos multijugador.
EDIT: Estos son útiles:
- Gaffer on Games - Muy buenos artículos de Glenn Fiedler en redes juego de varios jugadores y la física
- The Quake3 Networking Model
Más sobre el modelo de redes sismo se puede encontrar aquí: http://www.bluesnews.com/abrash/chap70.shtml – jbochi