Estoy trabajando en un proyecto para aprender node.js, y estaba buscando sugerencias sobre cómo manejar la sincronización de datos de usuario en tiempo real .Sugerencias de patrones de diseño para sincronizar datos de múltiples usuarios en un juego en línea en tiempo real
Digamos que tiene un mapa rectangular en 2D (aproximadamente 600x400), con un número de jugadores ocupando las posiciones x, y en ese mapa. Cada usuario puede navegar con las teclas de flecha e interactuar con los demás de una manera básica. Dado que esto se jugaría a través de HTTP, ¿cuál sería el mejor patrón de diseño en términos de manejo y sincronización de los datos del usuario para brindar la experiencia más fluida y fluida?
puedo pensar en varias opciones, pero agradecería un poco más las ideas/aclaraciones:
El cliente envía los datos de posición al servidor, el servidor distribuye a todas las posiciones de todos los clientes, la pantalla se representa con el resultado. Repetir. La desventaja sería que el lado del cliente está rezagado por el tiempo que lleva un viaje de ida y vuelta de datos, pero lo bueno es que se sincronizan con todos los usuarios.
Cliente representa donde cree que está constantemente, envía datos posicionales al servidor, el servidor distribuye todas las posiciones a todos los clientes, y luego la representación de la pantalla de los datos del cliente se corrige con los datos del servidor. Upside es una respuesta más ágil, la desventaja es una ligera pérdida de sincronización.
Una mezcla de las dos, pero en lugar de usar (x, y) las coordenadas utilizamos un vector de [x/y anterior, x/y actual, sugirieron x/y en el intervalo de tiempo ] que luego se puede usar para dibujar trayectorias de proyectiles que cambian constantemente. Parece que esto sería complicado de implementar.
¿Alguna sugerencia?
use socket.io para la comunicación – Alfred