Matriz de diagnóstico: Arquitectura del bucle de juego y comportamiento a altos FPS
Cuando los jugadores de PC con monitores de 144 Hz o 240 Hz ejecutan títulos antiguos o adaptaciones de consola, desbloquear la tasa de fotogramas suele provocar desastres: carretas volando en Skyrim, personajes que se mueven a cámara rápida en Dead Space o armas que se desgastan el doble de rápido en Dark Souls II.
| Arquitectura del bucle | Implementación del Timestep | Comportamiento a más de 144 FPS | Títulos de ejemplo | Solución moderna recomendada |
|---|---|---|---|---|
| Paso fijo no escalado | Constante rígida dt = 1/60 o 1/30 | El juego se acelera como un vídeo en avance rápido a 2.5x | Need for Speed Rivals, Okami HD | No se puede desbloquear limpiamente; fijar a 60 FPS o usar parches reductores |
| Físicas no desacopladas | Renderizado libre, pero físicas Havok calculadas a 60 Hz | Colisiones rotas; los objetos del escenario salen disparados matando al jugador | Skyrim, Fallout 4 (Vanilla) | Hook DLL en memoria (High FPS Physics Fix) que recalcula fMaxTime dinámicamente |
| Contadores por fotograma | El desgaste o la salud se calculan por fotograma renderizado, no por tiempo real | Las armas se rompen el doble de rápido a 60 FPS respecto a 30 FPS | Dark Souls II (Lanzamiento inicial de PC) | Parche oficial o mod interceptor de desgaste |
| Bucle con acumulador moderno | Físicas a paso fijo interpoladas con la tasa de refresco | Fluidez absoluta a cualquier tasa de refresco sin anomalías | Unreal Engine 5, Source 2 | Soporte nativo; no requiere modificaciones |
La base matemática: el problema de delta time
En la ecuación clásica de movimiento:
Posición = Posición + (Velocidad * dt)- Si el programador define
dtcomo un valor constante de0.01666(asumiendo 60 FPS fijos): a 120 FPS, la ecuación se procesa 120 veces en un segundo real, haciendo que el tiempo del juego avance el doble de rápido. - Si simplemente se hace
dtvariable según el tiempo real, una bajada brusca de FPS hace que el valor dedtse dispare, provocando que los objetos atraviesen paredes por falta de comprobaciones intermedias de colisión (tunneling).
Guía práctica para desbloquear FPS en motores Bethesda (Skyrim / Fallout 4)
Paso 1: Instalar High FPS Physics Fix
- Asegúrate de tener instalados SKSE64 y la versión correspondiente de Address Library.
- Instala High FPS Physics Fix mediante tu gestor de mods.
- Este mod inyecta código que recalcula en cada fotograma los valores
fMaxTimeyfMaxTimeComplexdel motor de físicas.
Paso 2: Ajuste del archivo de configuración (.ini)
Edita el archivo HighFPSPhysicsFix.ini:
DisableVSync = trueLimiter = trueFPSLimit = [Refresco del monitor - 3](ej. 141 FPS para monitores de 144 Hz con G-Sync/FreeSync).DynamicUpdateBudget = true