# Trate una semilla como entrada para un diseño reproducible

> 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.

- URL: https://oneshotgems.ai/es/topics/seeded-random-level-generation
- Categoría: Para desarrolladores de juegos
- Tipo: Guía
- Actualizado: 5 de octubre de 2026

Cuando una sala generada por procedimientos es injusta o imposible, la pregunta clave de depuración es si se puede construir la misma sala nuevamente. Una semilla le da a un generador aleatorio un punto de partida repetible, siempre que todas las opciones de generación utilicen ese generador en un orden consistente. Esta tarea difiere de juzgar si los resultados aleatorios parecen justos: aquí el objetivo es reproducir un diseño, inspeccionar su construcción y rechazarlo cuando viole las reglas estructurales del nivel.

## Pase un generador sembrado a través del generador de diseño

Cree un generador pseudoaleatorio inicializado y páselo a cada función de generación en lugar de llamar a Math.random a través de ayudantes no relacionados. MDN señala que el usuario no puede elegir ni restablecer la semilla inicial de Math.random, por lo que por sí solo no puede proporcionar una semilla reproducible. Guarde la semilla junto con un nivel generado o su informe de error. Si agrega o reordena sorteos aleatorios más adelante, la misma semilla puede producir un diseño diferente; versione el generador o registre el mapa generado cuando la reproducción exacta a largo plazo sea importante.

Separe las opciones por propósito cuando sea posible: una secuencia aleatoria para la forma de la habitación, otra para la decoración y otra para la ubicación del enemigo. Entonces, agregar un dibujo decorativo no cambiará automáticamente el patrón enemigo.

## Generar, validar y luego presentar

Después de construir una habitación, realice comprobaciones estructurales antes de mostrarla: la entrada y la salida existen, las llaves requeridas caben en los mosaicos transitables y un algoritmo de búsqueda de caminos puede llegar a la salida mientras recolecta los elementos obligatorios. Si el diseño falla, vuelva a intentarlo con un número limitado de semillas nuevas, luego use una sala de respaldo conocida o muestre una falla de generación clara. Registre la semilla rechazada y la invariante fallida para que se pueda reproducir localmente un diseño inesperado.

Pruebe un pequeño conjunto de semillas seleccionadas deliberadamente, incluidos valores similares a límites aceptados por su analizador de semillas, además de una muestra de semillas comunes. Esto no es una prueba de que todas las semillas posibles sean válidas. Es una forma práctica de ejercitar tanto la reproducción determinista como la ruta de rechazo del generador.

## Mantenga la semilla separada de las afirmaciones de dificultad.

Una sala reproducible no es automáticamente una sala justa. Juegue con ejemplos generados y pregunte si los peligros son visibles y si la ruta prevista deja suficiente tiempo para reaccionar. Mantenga esa revisión separada del análisis de distribución en una revisión de equidad. Cuando se encuentra un defecto, la semilla permite al equipo discutir un diseño exacto en lugar de describir un arreglo aproximado de memoria.

## Preguntas

**¿Puedo reproducir un nivel con Math.random y un número guardado?** No restableciendo el estado integrado de Math.random; MDN dice que su semilla inicial no se puede elegir ni restablecer. Utilice un generador sembrado bajo su control y enrute las opciones de generación a través de él.

**¿Una semilla garantiza que cada nivel generado tenga solución?** No. Una semilla reproduce una secuencia de elección; no valida el mapa resultante. Verifique la accesibilidad y las reglas de objetos requeridos, luego rechace o repare los diseños que fallan.

## Sigue tu curiosidad

- [Haga que la aleatoriedad se sienta justa en un juego](https://oneshotgems.ai/es/topics/fair-randomness-in-games): Elija qué controla la aleatoriedad, brinde a los jugadores suficiente información para responder y pruebe si los resultados se sienten variados sin parecer arbitrarios.
- [Haga que las pruebas de juegos de navegador sean repetibles](https://oneshotgems.ai/es/topics/deterministic-game-tests): 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.

## Más información

- [MDN Matemáticas.aleatorio](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/random)

---
Página canónica: https://oneshotgems.ai/es/topics/seeded-random-level-generation
