stringtranslate.com

Predicción del lado del cliente

La predicción del lado del cliente es una técnica de programación de redes que se utiliza en los videojuegos para ocultar los efectos negativos de las conexiones de alta latencia . La técnica intenta hacer que la entrada del jugador parezca más instantánea mientras controla las acciones del jugador en un servidor remoto .

El proceso de predicción del lado del cliente se refiere a que el cliente reaccione localmente a la entrada del usuario antes de que el servidor haya reconocido la entrada y actualizado el estado del juego. [1] Entonces, en lugar de que el cliente solo envíe la entrada de control al servidor y espere a cambio un estado actualizado del juego, el cliente también, en paralelo con esto, predice el estado del juego localmente y le da retroalimentación al usuario sin esperar un estado actualizado del juego del servidor.

La predicción del lado del cliente reduce los problemas de latencia, ya que ya no habrá un retraso entre la entrada y la retroalimentación visual del lado del cliente debido a los tiempos de ping de la red. Sin embargo, también introduce una desincronización de los estados del juego del cliente y del servidor, que debe manejarse para mantener el juego jugable. [1] Por lo general, la desincronización se corrige cuando el cliente recibe el estado del juego actualizado, pero como la corrección instantánea provocaría un "ajuste", normalmente hay algunos algoritmos de "suavizado" involucrados. Por ejemplo, un algoritmo de suavizado común sería verificar la ubicación del lado del cliente de cada objeto visible para ver si está dentro de algún error épsilon de su ubicación del lado del servidor. Si no, la información del lado del cliente se actualiza directamente al lado del servidor (se ajusta debido a demasiada desincronización). Sin embargo, si la ubicación del lado del cliente no está demasiado lejos, se interpola una nueva posición entre el lado del cliente y el lado del servidor; Esta posición se establece para estar dentro de un pequeño delta de paso desde la ubicación del lado del cliente, que generalmente se considera "lo suficientemente pequeña" para no ser intrusiva para el usuario.

Otra solución al problema de desincronización, que se utiliza habitualmente junto con la predicción del lado del cliente, se denomina reconciliación del servidor . [2] El cliente incluye un número de secuencia en cada entrada enviada al servidor y conserva una copia local. Cuando el servidor envía una actualización autorizada a un cliente, incluye el número de secuencia de la última entrada procesada para ese cliente. El cliente acepta el nuevo estado y vuelve a aplicar las entradas que aún no ha procesado el servidor, eliminando por completo los problemas de desincronización visibles en la mayoría de los casos.

El primer juego de disparos en primera persona conocido que utiliza la predicción del lado del cliente es Duke Nukem 3D , que la tenía incorporada desde el lanzamiento de shareware del 29 de enero de 1996. [3] [4] La técnica también fue una característica destacada de QuakeWorld , el popular complemento de Quake . Si bien el juego en red estaba incluido en el juego Quake original , estaba optimizado principalmente para el juego LAN . Al tener conexiones domésticas de alta velocidad (una rareza en ese momento), los diseñadores de Quake pasaron por alto sus suposiciones de alto ancho de banda y tiempos de ping bajos que hacían que jugar en línea fuera frustrante para los usuarios de acceso telefónico . [5] Después de una serie de experimentos en una larga beta privada, id Software lanzó QuakeWorld con un nuevo modelo predictivo que resultó popular entre los jugadores de latencia alta y baja.

Véase también

Referencias

  1. ^ ab Bernier, Yahn W. (2001). "Métodos de compensación de latencia en el diseño y optimización de protocolos de juego cliente/servidor" (PDF) . Consultado el 19 de diciembre de 2008 .
  2. ^ Gabriel Gambetta, Predicción del lado del cliente y reconciliación del servidor
  3. ^ Dransfield, Ian (14 de julio de 2018). "The Engine Room: Build". Retro Gamer (182). Reino Unido: Future plc : 62–67. ISSN  1742-3155 . Consultado el 24 de noviembre de 2018 .
  4. ^ Código fuente de Duke Nukem 3D (versión en CD v1.5): lanzamiento el 1 de abril de 2003. Véase domovethings(), fakedomovethings() y fakedomovethingscorrect(), Video Game Preservation, 2019-05-15 , consultado el 2019-05-15{{citation}}: Mantenimiento de CS1: otros ( enlace )
  5. ^ John Carmack, plan de QuakeWorld