Implementar la compensación del retraso de la red es difícil, ¿cómo evitarlo?
¿Tal vez es posible usar trucos y construir mecánicas de juego de tal manera que el retraso se perciba como un juego no crítico o incluso natural?
¿Cuáles son esas técnicas y hay algún juego existente (MMORPG, Estrategias, ...) que use tales técnicas?
ACTUALIZAR:
Los juegos basados en turnos no requieren compensación de retraso, pero sería interesante ver enfoques para el tiempo real (o simplemente una impresión del tiempo real, la parte importante: el usuario no debe ser bloqueado y obligado a esperar).
La razón principal para evitar la compensación de retraso es la simplicidad.
Respuestas:
Es común que el cliente implemente algún tipo de retroalimentación para informar al jugador de inmediato que su acción elegida ha sido registrada, por ejemplo:
Esto puede tener lugar mientras la información viaja al servidor para que el jugador no se dé cuenta de que su acción aún no ha comenzado. Mientras el servidor responda con prontitud y la acción comience pronto, el jugador puede no notar la demora.
Estos trucos funcionan en juegos en los que las entradas de los jugadores son poco frecuentes y, por lo tanto, la cantidad de tiempo que pasas esperando que una entrada surta efecto es una proporción relativamente pequeña del tiempo total dedicado a jugar. Por lo tanto, querrás encontrar formas de estructurar el juego para que el jugador haga menos entradas. Esto probablemente significa hacer que las acciones de los jugadores sean más abstractas y que el juego implemente el comportamiento de bajo nivel. Ejemplos:
fuente
Pensamientos aleatorios:
Así que sí, engaña mucho.
fuente
La respuesta es bastante simple: solo crea juegos que no tengan secciones de tiempo crítico. Estás buscando evitar implementar este tipo de interpolaciones por una razón específica, lo que significa que no te preocupa el juego nervioso y rápido. Esto es perfectamente accesible para muchos juegos, incluido Civilization (que es un juego de estrategia). Sin embargo, comprenda que esto NO es aceptable para un juego de estrategia en TIEMPO REAL en el que necesita pasar una gran cantidad de datos a través de la red en tiempos variables. Si desea diseñar un juego alrededor de una red de latencia muy alta, considere lo siguiente:
Espero que esto ayude al menos un poco; sin conocer tus ideas exactas del juego es difícil. Supongo que tiene sus razones para querer crear su juego en torno a ese patrón (simplicidad, ahorro de ancho de banda, complejidad de red reducida)
fuente
También podrías hacer que el retraso sea parte de tu juego por el bien del "realismo". Digamos que sus jugadores están destinados a controlar algunos robots desde la distancia, podría forzar el retraso de al menos 500 ms o 1 s (tendría que implementar un sistema dinámico de relleno de retraso).
fuente
También es un buen truco simplemente ocultar las acciones de los jugadores. Muchos juegos de FPS hacen exactamente esto. No muestran imágenes de la mayoría de las balas, solo se reproducen sonidos y obtienes el resultado en forma de daño infligido a los jugadores.
He jugado algunos juegos de FPS donde las armas de alta precisión (francotiradores y demás) tuvieron efectos visuales muy claros, y en realidad se podía ver que el otro jugador disparó detrás de ti, pero debido a la compensación por retraso te mataron.
fuente