Navegador / Caso práctico interactivo / 16 min de lectura

Dino: ¿por qué el juego va cada vez más rápido?

Usa REA para investigar un juego del dinosaurio derivado de Chromium. Recupera su regla de aceleración, añade un control de velocidad y prueba un caso límite de coma flotante.

En esta página

01. Probar antes de desmontar

Pulsa Jugar y salta el obstáculo. Arrastra el control de velocidad de 3 a 12: el obstáculo se mueve más rápido de inmediato. Vuelve a activar la aceleración automática y observa cómo el número aumenta lentamente desde 6.000.

El experimento de velocidadJUGAR / OBSERVAR / EXPLICAR
VELOCIDAD 6.000SUPERADOS 0
Un juego conocido. Una regla por investigar.

Pulsa Jugar y después Saltar. Cambiar el control deslizante selecciona una velocidad fija.

Juego didáctico nuevo. Solo la regla de aceleración sigue la investigación documentada.

Qué vas a construir

Un experimento jugable y una función de velocidad comprobada con cinco cantidades de actualizaciones.

Antes de la investigación

El laboratorio se ejecuta aquí. Para investigar necesitas REA conectado a tu agente, Chrome y la versión HTTP pública del juego. Si REA no está conectado, empieza por nuestra guía de instalación. Configurar REA →

02. Conectar con la versión que puedes inspeccionar

Abre el t-rex-runner público de wayou en un perfil de depuración independiente de Chrome. El comando siguiente es para macOS; en Windows o Linux, usa tu ejecutable de Chrome con las mismas opciones. Mantén abiertos este navegador y la terminal durante la investigación.

Este tutorial se centra en una página HTTP, no en chrome://dino. Si la página ha cambiado, guarda el script que hayas leído y registra su resumen criptográfico antes de compararlo con los resultados históricos siguientes.

Terminal
"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" \
  --remote-debugging-address=127.0.0.1 \
  --remote-debugging-port=9222 \
  --user-data-dir="$(mktemp -d /tmp/rea-dino.XXXXXX)" \
  https://wayou.github.io/t-rex-runner/
Copiar esta instrucción de investigación
Usa REA para ejecutar list_browser_targets en http://127.0.0.1:9222. Selecciona la página de t-rex-runner por su URL y después ejecuta inspect_web_page con include_script_sources activado. Lee el index.js cargado. Encuentra la velocidad inicial, el incremento de aceleración, la condición de actualización y el umbral de velocidad. Cita las ubicaciones en el código. Aún no reconstruyas el juego.

03. Averiguar qué significa realmente una «actualización»

Un ajuste llamado ACCELERATION es una pista, no la explicación completa. Sigue dónde se utiliza. ¿Se ejecuta en cada renderizado, solo durante la partida o solo cuando no hay colisión? Pide al agente que incluya la condición que lo rodea para que la respuesta también cubra casos distintos del ideal.

La versión documentada empieza en 6 y añade 0.001 en cada actualización que cumple las condiciones si la velocidad actual es inferior a 13. Eso no significa «0.001 por segundo». Nuestro juego didáctico utiliza 60 actualizaciones lógicas fijas por segundo; el dibujo es independiente de la frecuencia de actualización de tu pantalla.

  • Registra el valor antes y después de una sola actualización.
  • Encuentra la condición de colisión o estado de juego que rodea el incremento.
  • Comprueba si el umbral se evalúa antes o después de sumar.
  • Mantén separado el tiempo de los fotogramas de la aritmética recuperada.

04. Añadir un control de velocidad sin perder la regla

Construye el juego más pequeño que permita observar la regla. Usa un personaje sencillo, un obstáculo, un botón de salto y un indicador de velocidad. El control deslizante debe activar la velocidad fija; activar el modo automático debe recuperar el valor inicial documentado.

No sustituyas sin indicarlo la condición por un límite estricto de 13. Puede parecer una simplificación inocua, pero cambia el resultado en el límite. Mantén fiel la primera implementación y realiza después los cambios deliberados en un modo separado.

Copiar esta instrucción de investigación
Crea un minijuego independiente de navegador con Jugar/Pausa, Saltar y Reiniciar. Reproduce únicamente la regla de actualización de velocidad documentada. Añade un control de velocidad fija de 2 a 18 y un modo automático que empiece en 6. Usa un paso de tiempo lógico fijo, pausa fuera de pantalla y permite controles de teclado y táctiles. Identifica los nuevos gráficos, colisiones y saltos como código didáctico. Prueba la función de velocidad importada, no una segunda copia de ella.

05. Investigar el 0.001 adicional

Ejecuta repetidamente la función de velocidad sin colisiones. Compara los puntos de comprobación siguientes y conserva el valor sin redondear en el resultado guardado. El sorprendente valor final es lo útil de este ejercicio: la comparación se realiza antes de sumar y los incrementos sucesivos de coma flotante no tienen por qué alcanzar exactamente un umbral decimal.

Si obtienes 13.000 a las 10000 actualizaciones, comprueba si hay un límite estricto o redondeo decimal dentro del bucle. Si el resultado varía con la frecuencia de actualización de la pantalla, comprueba si la simulación avanza una vez por fotograma renderizado.

Copiar esta instrucción de investigación
Ejecuta la función real de aceleración durante 0, 1000, 4000, 7000 y 10000 actualizaciones desde una velocidad de 6. Devuelve los valores con precisión completa y mostrados con tres decimales. Compara con el informe original, explica las diferencias e identifica si ejecutaste nuestra sustitución o el juego original. No consideres la lectura del código como una prueba de ejecución del juego original.

06. Comparar resultados conocidos

Úsalos como puntos de comprobación explícitos. Coincidir con ellos respalda esta pequeña regla; no demuestra compatibilidad con toda la aplicación.

ActualizacionesValor esperado en pantallaPregunta resuelta
06.000Valor inicial
10007.000Incremento por actualización
400010.000Acumulación
700013.000El redondeo puede ocultar el caso límite
1000013.001Comparar antes de sumar

Guarda ambos archivos en la misma carpeta. Ejecuta las comprobaciones con Node.js; no es necesario instalar paquetes.

Terminal
node check-case-labs.mjs

07. ¿Qué se verificó realmente?

El informe de REA contiene ejecuciones controladas del juego HTTP original. Este sitio comprueba su propio módulo de velocidad frente a esos puntos registrados; no repetimos la inspección del juego original. Los gráficos, los saltos, las colisiones y la separación entre obstáculos de arriba son código didáctico nuevo. Solo se reconstruye la regla de aceleración.

Consultar los resultados numéricos de pruebas registrados por este sitio →

Fuentes: Pruebas de la calculadora y el dinosaurio de REA · Rama de actualización del juego en una versión fijada. Tutorial, ilustraciones y experimentos de navegador de autoría independiente.

Siguiente experimento¿Cómo saben 16 balas dónde estás? →

¿Acabas de conocer la herramienta? ¿Qué es REA? · Cómo revisamos nuestras guías