Mantener las unidades visibles en el código
Elige una unidad de tiempo y úsala de forma coherente. Si la velocidad se expresa en píxeles por segundo y delta en segundos, la posición avanza según velocidad × delta. Una prueba manual útil consiste en mover durante diez segundos un marcador configurado a 80 píxeles por segundo: debería recorrer unos 800 píxeles del mundo, sin importar cuántas veces se haya dibujado.
No mezcles los milisegundos de performance.now() con una velocidad por segundo sin dividir por 1.000. Incluye las unidades en los nombres, como deltaSeconds o speedPixelsPerSecond, para que un ajuste posterior no convierta silenciosamente un movimiento pequeño en uno mil veces mayor.
Limitar el efecto de una pausa larga
En un juego de acción sencillo, limita delta a un máximo elegido deliberadamente y acepta que la simulación se ralentice brevemente bajo una carga intensa. Para una simulación física que requiera pasos repetibles, acumula el tiempo y avanza en incrementos fijos; limita la cantidad de actualizaciones para recuperar el tiempo y evitar que la recuperación monopolice la página. Cada enfoque tiene sus ventajas y costes: elige según la sensación y las reglas que necesita tu juego.
Prueba con una pausa artificial entre actualizaciones y compara un movimiento en línea recta con una colisión al final del recorrido. Si el objeto atraviesa un obstáculo delgado, quizá necesites subpasos más pequeños o una prueba de colisión barrida; cambiar solo la frecuencia de dibujo no resolverá ese problema de las reglas.
Preguntas sobre delta time en juegos
¿El tiempo delta hace que la física sea determinista?
No. Los intervalos de actualización variables aún pueden producir resultados de integración diferentes. Un paso de simulación fijo mejora la repetibilidad, aunque la sincronización de entrada y los detalles de punto flotante siguen siendo importantes.
¿Qué reloj debería proporcionar el tiempo transcurrido?
Usa la marca de tiempo del callback de animación o performance.now(); MDN describe ambas como fuentes de tiempo de alta resolución. No uses fechas del reloj civil para intervalos cortos entre fotogramas, porque los ajustes del reloj del sistema no guardan relación con el tiempo de simulación.
Más información
¿Has visto algo desactualizado? Notificar una corrección