¿Dónde iría la lógica?
Publicado por alejandro (1 intervención) el 06/07/2022 17:52:03
Buenos días foro. Me encuentro estudiante desarrollo web y aplicaciones y actualmente estoy trabajando en un pequeño proyecto propio. Tengo una parte muy básica de la lógica para un juego web de estrategia, estilo juegos de mesa como axies & allies, tal vez mas parecido a Advance Wars, en donde cada jugador tiene una serie de unidades y los mueve por un mapa grilla cuadrada hecha con DIVs posicionados con css flexbox. Hasta ahora vengo muy bien en dado que ya logré un pequeño sistema de pathfinding y cálculo de costos de movimiento. Las unidades son instancias de un class "unidad" con un metodo que calcula en cada frame la posisión para "dibujarla" en la grilla. El tema es que ahora estoy implementando el principio para el multijugador con node.js y la librería websockets, donde el servidor "escucha" los movimientos que ocurren en el cliente y "emite" los cambios para todos los otros clientes.
La duda es si estoy encarándolo correctamente ya que toda la lógica del movimiento de las unidades ocurre del lado del cliente con javascript. Mi pregunta es: ¿Debería ser calculado el movimiento y las acciones de las unidades del lado del servidor y enviar los datos ya procesados al front, donde solo se dibuje la posición de las unidades? ¿Sería mala práctica que cada cliente se encargue de hacer los calculos de costos, manejar los clicks, el combate, etc. y que el lado del server solo refleje lo que pasa en un cliente para actualizar los datos del resto?
No se si loro hacerme entender.
Desde ya gracias por la ayuda.
La duda es si estoy encarándolo correctamente ya que toda la lógica del movimiento de las unidades ocurre del lado del cliente con javascript. Mi pregunta es: ¿Debería ser calculado el movimiento y las acciones de las unidades del lado del servidor y enviar los datos ya procesados al front, donde solo se dibuje la posición de las unidades? ¿Sería mala práctica que cada cliente se encargue de hacer los calculos de costos, manejar los clicks, el combate, etc. y que el lado del server solo refleje lo que pasa en un cliente para actualizar los datos del resto?
No se si loro hacerme entender.
Desde ya gracias por la ayuda.
Valora esta pregunta


0