Sincronización delta
El tiempo delta o tiempo delta es un concepto utilizado entre los programadores en relación con la capacidad de respuesta del hardware y la red.[1] En la programación de gráficos, el término se usa generalmente para actualizar escenarios de forma variable en función del tiempo transcurrido desde la última actualización del juego,[2] (es decir, el " cuadro " anterior), que variará según la velocidad de la computadora y cuánto trabajo. debe hacerse en el programa en un momento dado. Esto también permite que los gráficos se calculen por separado si los gráficos son de subprocesos múltiples.
En la programación de redes, debido a la naturaleza impredecible de las conexiones a Internet, la temporización delta se utiliza de manera similar para actualizar de forma variable la información de movimiento recibida a través de la red informática, independientemente del tiempo que se tarde en recibir el siguiente paquete de datos de información de movimiento.[3]
Se realiza llamando a un temporizador cada cuadro por segundo que mantiene el tiempo entre ahora y la última llamada en milisegundos .[1] A partir de entonces, el número resultante (tiempo delta) se utiliza para calcular la distancia, por ejemplo, que habría viajado un personaje de videojuego durante ese tiempo. Esto da como resultado que el personaje tome la misma cantidad de tiempo real para moverse por la pantalla, independientemente de la velocidad de actualización, y si la demora se debe a la falta de capacidad de procesamiento o a una conexión a Internet lenta.
En la programación de gráficos, esto evita que el juego se ralentice o se acelere dependiendo de la complejidad de lo que sucede en un momento dado, lo que generaría una experiencia inconsistente y discordante (por ejemplo, el tiempo se ralentiza a medida que más personajes caminan en la pantalla o corren). Demasiado rápido porque solo hay un personaje en la pantalla). En la programación de red, esto mantiene el mundo del juego de cada computadora sincronizado con los demás, asegurándose de que cada cliente finalmente vea la misma actividad al mismo tiempo, incluso si ha pasado más tiempo desde la última actualización para algunos clientes que para otros.
Los retrasos suficientemente grandes eventualmente afectarán negativamente la experiencia de juego, pero el uso de Delta Time mantiene el juego constante siempre que la computadora y la conexión a Internet cumplan con los requisitos mínimos de hardware del juego.
La sincronización delta también se utiliza en los deportes de motor . El uso del cronometraje delta en los deportes de motor permite a los conductores ver cuánto tiempo han ganado o perdido.[cita requerida]
Medición de tiempo delta en el programa
editarMedición del tiempo necesario para comprobar si un número es primo.
Python3
editar# time() is a function that will return second since epoch in float format (included millisecond)
from time import time
# define is_prime(x)
def is_prime(x):
for i in range(2,x):
if (x%i) == 0:
print(x, 'is not prime')
return
print(x, 'is prime')
# main program
t0 = time() # start of measurement
is_prime(13) # call function
t1 = time() # end of measurement
deltaTime = t1 - t0
print('is_prime(13) takes time:', deltaTime, 'second to execute!')
C#
editarstatic void is_prime(int x) {
for (int i = 2; i < x; i++) {
if (x % i == 0) {
Console.WriteLine(x + " is not prime");
return;
}
}
Console.WriteLine(
Delta-time y frame rate
editarEl tiempo delta y la velocidad de fotogramas no siempre están relacionados. Los videojuegos se dividen en una de dos categorías con respecto a la velocidad de fotogramas: dependiente de la velocidad de fotogramas o independiente de la velocidad de fotogramas. Velocidad de fotogramas Los juegos dependientes tienen una velocidad de fotogramas que varía según la computadora que ejecuta el software. Por ejemplo, si un juego que depende de la velocidad de fotogramas se ejecuta a 300 fotogramas por segundo (fps) en una computadora con una frecuencia de actualización de 120 hercios (Hz), entonces se ejecutará a 150 fps en una computadora con una frecuencia de actualización de 60 Hz. Una expresión de tiempo delta estándar puede crear pantallas de pausa y efectos de cámara lenta intencionales en juegos que dependen de la velocidad de fotogramas. Las fórmulas de tiempo delta estándar rara vez se usan para el juego estándar porque el tiempo delta entre fotogramas varía mucho según la frecuencia de actualización de la computadora en la que se ejecuta.
Si un juego es independiente de la velocidad de fotogramas, la velocidad de fotogramas está predeterminada y se ejecuta de manera idéntica en todas las computadoras, independientemente de sus especificaciones. La independencia de la velocidad de fotogramas limita la calidad máxima de los gráficos para que el juego esté disponible para más consumidores. La independencia de la velocidad de fotogramas es particularmente popular en los juegos móviles y los juegos optimizados para computadoras de gama baja como las Chromebooks. En los juegos independientes de la velocidad de fotogramas, el tiempo delta entre fotogramas es constante en todo el juego. Esta estandarización significa que una expresión de tiempo delta puede crear una velocidad de fotogramas consistente para todos los usuarios en todos los tipos de computadoras.[4]
Cuándo usar el tiempo delta
editarLa sincronización delta puede sobresalir en cualquier momento en que la velocidad de fotogramas de un juego deba ser independiente de su hardware. Un ejemplo de esto podrían ser los juegos que necesitan ejecutarse en dispositivos móviles o computadoras de gama baja. En algunos casos, los desarrolladores de videojuegos utilizan la sincronización delta para estandarizar la velocidad de movimiento de un objeto en la pantalla. Por ejemplo, si un personaje se mueve por la pantalla a una velocidad constante, la sincronización delta puede garantizar que esta velocidad de movimiento sea constante y no fluctúe. El uso del tiempo delta para el movimiento es particularmente útil para los usuarios que poseen hardware de computadora de gama baja o Internet inconsistente. Este método también puede regular el movimiento de los objetos en pantalla.
Una desventaja de usar la sincronización delta para el movimiento es que puede ser complicado para los juegos que incorporan una amplia variedad de movimientos y velocidades de movimiento. Por ejemplo, un juego podría tener una velocidad específica para caminar y una velocidad de carrera para todos los personajes; sin embargo, los personajes también pueden conducir automóviles, barcos, aviones y otros vehículos. Si el desarrollador quiere que cada una de estas velocidades de movimiento sea diferente (para que el juego sea lo más realista posible), necesitaría una expresión de tiempo delta separada para cada velocidad de movimiento (eso suponiendo que estos movimientos ocurran a una velocidad constante). Si los movimientos no ocurren a una velocidad constante, las expresiones de sincronización delta se vuelven ineficaces.[5]
Véase también
editarReferencias
editar- ↑ a b «Game Making Software - Construct 3 ★★★★★».
- ↑ «Time-based Animation with HTML 5 Canvas and JavaScript | Viget».
- ↑ Cook, Shane (28 de diciembre de 2012). CUDA Programming: A Developer's Guide to Parallel Computing with GPUs (en inglés). Newnes. ISBN 978-0-12-415988-4.
- ↑ Ashley (26 de septiembre de 2017). «Delta-Time and Framerate Independence». Construct.net. Unknown. Consultado el 5 de febrero de 2022.
- ↑ Drew Campbell (24 de julio de 2019). «Understanding Delta Time». Medium.com. Unknown. Consultado el 5 de febrero de 2022.