# Controlar las variables que hacen que una prueba de juego sea repetible

> Controla los valores aleatorios, el tiempo y las condiciones iniciales para que las pruebas del juego produzcan resultados comparables y las fallas sean más fáciles de diagnosticar.

- URL: https://oneshotgems.ai/es/topics/deterministic-game-tests
- Categoría: Para desarrolladores de juegos
- Tipo: Guía
- Actualizado: 5 de octubre de 2026

Una prueba que falla solo cuando aparece un enemigo junto al jugador no es una señal fiable. Las pruebas deterministas controlan las variaciones importantes para que la misma configuración recorra las reglas del mismo modo. No se trata de eliminar el azar del juego real, sino de hacer predecibles las condiciones iniciales de una prueba para descubrir si un cambio de código o de prompt alteró el comportamiento.

## Identificar entradas no controladas

Enumera todo lo que puede variar entre partidas: posiciones aleatorias de enemigos, tiempo transcurrido, frecuencia de los fotogramas, puntuación máxima guardada, tamaño del área visible y orden de las entradas del jugador. Decide cuáles de esas variables afectan el comportamiento que estás probando. Para comprobar colisiones, fija la posición del enemigo y el punto de inicio del jugador. Para comprobar un patrón de aparición, controla la secuencia aleatoria y prueba varias semillas para que una sola configuración no oculte un patrón defectuoso.

## Controla el tiempo sin congelar la conducta del jugador.

Para probar un temporizador, fija la hora de inicio y comprueba qué ocurre en límites significativos, como cuando quedan tres segundos y cuando llega exactamente a cero. Para el movimiento basado en fotogramas, compara el mismo tiempo transcurrido, no la misma cantidad de fotogramas renderizados. MDN indica que la frecuencia de las llamadas a requestAnimationFrame suele seguir la frecuencia de actualización de la pantalla y que la mayoría de los navegadores las pausa en pestañas ocultas. Por eso, el código de animación debe usar la marca de tiempo de la llamada u otra fuente temporal para calcular el progreso.

## Preguntas

**¿Las pruebas deterministas significan eliminar el juego aleatorio?** No. Significa controlar la aleatoriedad en pruebas seleccionadas para comparar comportamientos. Aún puedes realizar pruebas exploratorias separadas en diversas semillas para inspeccionar el alcance del juego.

**¿Por qué una prueba puede pasar localmente y fallar en la ejecución de un navegador?** Diferentes tiempos, ventanas gráficas, estados guardados o secuencias aleatorias pueden alterar la configuración. Registra esas condiciones y controle las relevantes para el comportamiento que se está verificando.

## Sigue tu curiosidad

- [Pruebas de regresión para juegos pequeños](https://oneshotgems.ai/es/topics/game-regression-testing): Protege el funcionamiento de un juego después de cada revisión con una lista breve de pruebas centrada en la mecánica, la puntuación, el reinicio y los límites cercanos.
- [Prueba los límites de un juego de navegador](https://oneshotgems.ai/es/topics/testing-game-boundaries): Encuentra fallos en los casos extremos probando límites de movimiento, sincronización, bordes de la pantalla, contadores de puntuación y entradas repetidas en un pequeño juego de navegador.
- [Genere niveles aleatorios reproducibles](https://oneshotgems.ai/es/topics/seeded-random-level-generation): Utilice una semilla almacenada para recrear diseños de juegos procedimentales, separar la generación de la validación y mantener un nivel fallido fácil de reproducir.

## Más información

- [MDN: temporización de requestAnimationFrame](https://developer.mozilla.org/en-US/docs/Web/API/Window/requestAnimationFrame)

---
Página canónica: https://oneshotgems.ai/es/topics/deterministic-game-tests
