stringtranslate.com

Predicción del lado del cliente

La predicción del lado del cliente es una técnica de programación de red utilizada en videojuegos destinada a ocultar los efectos negativos de las conexiones de alta latencia . La técnica intenta hacer que la entrada del jugador se sienta más instantánea mientras gobierna las acciones del jugador en un servidor remoto .

El proceso de predicción del lado del cliente se refiere a hacer que el cliente reaccione localmente a la entrada del usuario antes de que el servidor reconozca la entrada y actualice el estado del juego. [1] Entonces, en lugar de que el cliente solo envíe entradas de control al servidor y espere a cambio un estado del juego actualizado, el cliente también, en paralelo con esto, predice el estado del juego localmente y brinda retroalimentación al usuario sin esperar una respuesta actualizada. estado del juego desde el 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 que el juego siga siendo jugable. [1] Por lo general, la desincronización se corrige cuando el cliente recibe el estado actualizado del juego, pero como la corrección instantánea provocaría un "ajuste", generalmente 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. De lo contrario, la información del lado del cliente se actualiza directamente en el lado del servidor (se corta 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 está configurada 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" como para no ser intrusiva para el usuario.

Otra solución al problema de la desincronización, comúnmente utilizada junto con la predicción del lado del cliente, se llama reconciliación del servidor . [2] El cliente incluye un número de secuencia en cada entrada enviada al servidor y guarda 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 han sido procesadas por el servidor, eliminando por completo los problemas visibles de desincronización en la mayoría de los casos.

El primer juego de disparos en primera persona conocido que utilizó la predicción del lado del cliente es Duke Nukem 3D , que lo tenía integrado desde la versión 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 se incluyó en el juego Quake original , se optimizó principalmente para el juego LAN . Habiendo tenido conexiones domésticas de alta velocidad (una rareza en ese momento), los diseñadores de Quake pasaron por alto sus suposiciones de un ancho de banda alto 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 alta y baja latencia.

Ver también

Referencias

  1. ^ ab Bernier, Yahn W. (2001). "Métodos de compensación de latencia en el diseño y optimización del protocolo cliente/servidor en el juego" (PDF) . Consultado el 19 de diciembre de 2008 .
  2. ^ Gabriel Gambetta, Predicción del lado del cliente y conciliación del servidor
  3. ^ Dransfield, Ian (14 de julio de 2018). "La sala de máquinas: construir". Jugador retro (182). Reino Unido: Future plc : 62–67. ISSN  1742-3155 . Consultado el 24 de noviembre de 2018 .
  4. ^ Lanzamiento del código fuente de Duke Nukem 3D (versión CD v1.5): 1 de abril de 2003, consulte domovethings(), fakedomovethings() y fakedomovethingscorrect(), Video Game Preservation, 2019-05-15 , consultado el 15 de mayo de 2019.{{citation}}: Mantenimiento CS1: otros ( enlace )
  5. ^ John Carmack, QuakeWorld.plan