Estoy haciendo un pequeño juego usando node.js para el servidor y un archivo .js incrustado en un lienzo HTML5 para los clientes. Cada jugador tiene un objeto que puede mover con las teclas de flecha.Preguntas sobre la actualización de mi juego node.js
Ahora he hecho 2 formas diferentes de actualizar el juego, una fue el envío de la nueva posición del jugador cada vez que cambia. Funcionó, pero mi servidor tuvo que procesar alrededor de 60 pares x/y por segundo (la tasa de actualización del cliente es de 30/seg y había 2 jugadores que se movían sin parar). El segundo método consistía en enviar solamente una nueva posición y velocidad/dirección del objeto del jugador cuando cambiaban su velocidad de dirección, así que básicamente en los otros clientes el movimiento del jugador se interpolaba utilizando la dirección/velocidad de la última actualización. Mi servidor solo tuvo que procesar muy pocos paquetes x/y7speed/direction, sin embargo, mis clientes experimentaron un pequeño retraso cuando llegaron los paquetes, ya que la posición interpolada estaba a menudo un poco lejos de la posición real escrita en el paquete.
Ahora mis preguntas son: ¿Qué método recomendarías? ¿Y cómo debo hacer mi compensación de retraso por cualquiera de los métodos?
el artículo parece ser un buen punto de partida para resolver el problema, pero todavía no entiendo nada de la solución :)) – mihai
@mihai La fuente de la biblioteca EPIC es clara si usted comprende C++. Solo dos archivos con comentarios (Extrapolator.h y Extrapolator.cpp) Si no dominas C++, puedo esforzarte para explicarlo o implementarlo. – rromeroar
nah está bien. No miré el código fuente, simplemente lea el artículo que señaló. La descripción del algoritmo es bastante corta, y estaba teniendo problemas para entenderlo, pero estoy seguro de que tiene sentido. – mihai