Doom Wiki
Advertisement
Doom Wiki


En el motor Vanilla Doom, los proyectiles guiados disparados por los Revenants harán que las demostraciones internas se desincronicen.

Explicación[]

El juego determina si un misil de Revenant estará dirigido o no cuadro por cuadro utilizando el gametic actual, que es un temporizador que comienza en 0 tan pronto como se emite la primera llamada a TryRunTics desde el bucle principal del juego. y se incrementa en uno por cada tic, incluso durante las pantallas estáticas como los títulos, los intermedios entre niveles y los finales de episodios.

Al grabar una demo, el inicio del nivel siempre coincide exactamente con el gametic 0. Normalmente, al reproducir una demo mediante el uso del parámetro de línea de comandos -playdemo, el inicio del nivel durante la reproducción también coincidirá con el gametic 0. Esto significa que tales demos que contienen Revenants se comportan normalmente. Sin embargo, cuando se inician las demos internas, es decir, las que se reproducen durante el bucle de demostración de la pantalla de títulos, como el lump DEMO1, el gametic puede estar en cualquier valor arbitrario dependiendo de cuánto tiempo se haya estado ejecutando el juego.

Esta discrepancia hará que el comportamiento de búsqueda de blancos de las bolas de fuego Revenant difiera cuando se reproduzcan como demos internas, en comparación con el comportamiento que tuvieron durante la grabación. Esto asegura que cualquier demo interna que contenga Revenants prácticamente siempre se desincronizará tan pronto como disparen cualquier proyectil.

Reparación[]

Este problema fue reconocido por la comunidad de Doom ya en 1996. Lee Killough lo reparó por primera vez en la portación de Boom al recodificar la decisión de búsqueda de las bolas de fuego Revenant para que dependiera de una nueva variable llamada basetic, que sigue el ritmo de gametic pero se ajusta de manera inteligente para que se comporte de la misma manera durante la grabación y reproducción.

El comportamiento especial de esta variable permite que las demos se sincronicen, ya sea que se reproduzcan interna o externamente, sin alterar la sincronización de las demos grabadas con el ejecutable original. Este enfoque ha sido adoptado por prácticamente todos los source ports avanzados.

Véase también[]

Advertisement