Skip to content

La generación procedural solo funciona cuando algo la comprueba

Un generador que puede producir un nivel imposible de jugar lo producirá, a otra persona, el día del lanzamiento. Las reglas que rechazan lo que sale mal no son fontanería. Son el diseño, puesto por escrito.

Publicado el 2026-08-18 · Game design

Read this page in English

El generador es la mitad fácil

Cualquiera puede escribir un generador de mazmorras en una tarde. Esparce unas salas, conéctalas con pasillos, suelta enemigos y tesoros. Funciona, produce mazmorras, y durante unos diez minutos parece magia.

Luego juegas cuarenta. Dos tienen la salida sellada tras una puerta cerrada cuya llave apareció dentro de la zona cerrada. Una pone a quien juega en una sala con seis enemigos a quemarropa en el primer fotograma. Varias aburren de una forma que no sabes expresar de inmediato. Una es buenísima de verdad, lo que es peor de lo que suena, porque ahora sabes que el buen nivel fue suerte y no tienes forma de hacer que vuelva a pasar.

Esa distancia entre un generador que funciona y uno que publicarías es el trabajo de verdad, y va casi entera de restricciones y comprobaciones. La generación es la parte barata. Esto se cumple tanto si el generador es un programa que escribiste como si es un modelo produciendo resultados, y es la fase más saltada de todo el tema.

Imposible de ganar es el estado por defecto

Si se deja a su aire, una disposición aleatoria de cosas suele estar rota. No en lo estético. En lo funcional.

El generador de Spelunky lo resuelve de la forma más directa posible. Antes de hacer nada, excava un camino garantizado de la entrada a la salida. Elige una ruta por la cuadrícula de salas y marca esas celdas como parte del camino. Todo lo demás se rellena alrededor de una ruta que se sabe que existe. La garantía es estructural. No se comprueba después, se construye primero, y nada posterior puede romperla.

Buscaminas resuelve una versión más pequeña del mismo problema haciendo que el primer clic siempre sea seguro, generando el tablero después de que hayas hecho clic. Un juego en el que puedes perder antes de tomar una decisión no es un juego, y el arreglo es generar bajo una restricción en lugar de cruzar los dedos.

Las dependencias de llaves y puertas son donde más muerde esto, porque el fallo es silencioso. Todo parece bien. Quien juega deambula veinte minutos antes de concluir que el juego está roto, y tiene razón. Cualquier generador que coloque contenido bloqueado necesita razonar sobre el orden, lo que normalmente significa generar primero el grafo de dependencias y después la geometría, no al revés.

Un validador es un documento de diseño que se puede ejecutar

El replanteamiento útil es que las comprobaciones no son un control de calidad atornillado al final. Son la afirmación más clara que escribirás nunca de lo que se supone que son tus niveles.

Cuando te sientas a escribir un validador te ves obligado a frases como estas. Quien juega nunca debe empezar a menos de tres metros de un enemigo. Debe haber al menos una ruta a la salida que no requiera el doble salto. Ninguna sala puede tener más de dos salidas en la misma pared. El primer tesoro debe verse desde la entrada. Cada una es una decisión de diseño que antes vivía de forma vaga en tu cabeza.

Escribirlas como código hace dos cosas. Las hace ciertas para todos los niveles y no solo para los que resultaste mirar, y las hace discutibles. Una regla que puedes señalar es una regla que puedes decidir quitar, y la mitad de ajustar un generador es descubrir cuáles de tus reglas eran supersticiones.

La parte satisfactoria es que un validador mejora de una forma que un prompt no. Cada mal nivel que encuentras se convierte en una regla, y esa regla es permanente. Al cabo de unas semanas los fallos que atrapas son sutiles, porque los obvios ya no se pueden producir.

Las semillas son cómo depuras algo que cambia cada vez

No puedes arreglar lo que no puedes reproducir, y un generador sin semillas es una máquina de producir errores que desaparecen cuando los miras.

Haz visible la semilla desde el principio. Imprímela, regístrala con cada fallo y haz que se pueda fijar. El flujo que esto desbloquea es toda la gracia: alguien que prueba informa de un nivel roto, escribes la semilla y estás en el mismo nivel roto.

Lo segundo que desbloquean las semillas es el volumen. En cuanto la generación es reproducible y la validación es código, puedes ejecutar diez mil semillas sin nadie delante y contar los fallos. Es el momento en que un generador deja de ser un juguete. Ya no preguntas si este nivel es bueno. Preguntas qué fracción de todos los niveles incumple una regla, que es una pregunta con respuesta.

Cuenta con los descartes. Generar, comprobar, descartar y reintentar es un ciclo completamente normal, y un generador que tira ocho de cada diez intentos está bien si generar es barato. Lo que no está bien es publicar los ocho.

La variedad en los datos no es variedad en el juego

La otra forma en que decepcionan los generadores no tiene nada que ver con la corrección. Cada nivel es válido, jugable y distinto, y el juego sigue siendo monótono.

La expresión de Kate Compton para esto es exacta: diez mil cuencos de avena. Cada cuenco tiene una disposición de copos matemáticamente única. Para quien se los come, hay un cuenco de avena.

La razón es que la variedad solo se percibe cuando cambia lo que hace quien juega. Un generador que varía la textura de las paredes, el tamaño de las salas y el número de enemigos produce niveles que se ven distintos y se juegan igual, porque nada de eso cambia tu plan. Un generador que varía si la sala tiene coberturas, si los enemigos están entre tú y la salida, o si puedes llegar primero al terreno alto, produce niveles que se sienten distintos con mucha menos variación. Cada una de esas cosas cambia una decisión.

Así que la pregunta más afilada que se le puede hacer a cualquier variación generada es: ¿qué hace quien juega de otra forma por esto? Si no hay respuesta, esa dimensión es decoración, y añadir más no ayudará.

Qué generar y qué colocar a mano

La generación no sirve para las partes de un juego que tienen que ocurrir en un orden concreto a alguien que nunca lo ha jugado.

Sobre todo la primera hora. Enseñar depende de la secuencia: mostrar la mecánica sin peligro, luego con una presión suave, luego en combinación. Un generador no puede garantizar esa secuencia porque no sabe qué ha entendido ya quien juega. Casi todos los roguelikes con un buen arranque lo tienen hecho a mano.

Los combates contra jefes, los momentos de historia y cualquier momento del que quieras que la gente hable después. Su valor es que son concretos, y lo concreto es lo contrario de lo que hace un generador.

Para lo que sí sirve la generación es para el medio: el material, la disposición, la variación de partida a partida que mantiene vivo un juego más allá del décimo intento. Y sirve para todo lo que necesitas en un volumen que ninguna persona produciría, que es la razón honesta de que la mayoría de sistemas de terreno y botín sean procedurales.

La mezcla que se repite en los buenos ejemplos es unidades de autor en disposiciones generadas. Hades genera la secuencia de salas hechas a mano. Diablo monta tiles de autor. La persona hace bien la cosa pequeña y la máquina hace las combinaciones, porque el criterio es caro por metro cuadrado y barato por regla.

Dónde cae esto en una herramienta de escritorio de este tipo

Un generador en ejecución es código, así que en una herramienta de escritorio de este tipo es código que escribe el asistente. Describes el generador que quieres y el GDScript llega a tu proyecto, que es un proyecto de Godot de verdad, así que el generador es un archivo que puedes abrir, leer y ajustar. Eso importa aquí más que casi en ningún otro sitio, porque un generador es por definición algo que ajustarás durante el resto del proyecto.

Pide el validador a la vez que el generador. Es un trabajo del mismo tamaño y es la mitad que compensa, y describir tus reglas en voz alta es útil incluso antes de que exista código.

El material de partida también se genera, en el lado 3D. El terreno sale de la generación, incluidos datos reales de elevación detrás de una masa de tierra, y los assets individuales se producen de uno en uno a partir de una descripción.

Un proyecto plano empieza por el otro extremo y no genera nada de eso. Crear un proyecto pregunta 2D o 3D antes que nada, y elegir 2D abre algo que ya se puede jugar: un cielo, una franja de paisaje en el horizonte, suelo con un saliente recortado, una plataforma a un lado y una persona que camina, cae y salta. Ahí el suelo es una capa de tiles que amplías arrastrando sobre las celdas que quieres cubrir. Así que el generador que escribes está encima de un nivel que ya podías recorrer, que es mejor sitio desde el que escribir uno que una escena vacía.

Construir necesita conexión en los dos casos, porque la ayuda con el código, la generación y los datos del mundo llegan por la red. Jugar lo que construiste, no: el juego corre en local sobre la copia de Godot que incluye la app.

Luego haces lo que ninguna comprobación automática puede hacer. Juegas treinta partidas y notas que los niveles son técnicamente válidos y un poco sosos, que es un juicio sobre la experiencia que ningún validador hará nunca por ti. Esa decisión es de quien crea, y es la que decide si mereció la pena construir el generador.

La versión corta

Escribe la restricción antes que el generador. Garantiza el camino crítico de forma estructural en lugar de comprobarlo después. Pon semilla a todo desde el primer día. Ejecuta miles de niveles sin interfaz y cuenta fallos en lugar de mirar cinco a ojo. Haz a mano el arranque y los momentos que importan. Pregunta a cada dimensión que varía qué hace quien juega de otra forma por ella.

Haz eso y un generador modesto sostendrá un juego durante años. Sáltatelo y el generador más sofisticado que puedas construir producirá avena infinita, correctamente, para siempre.

Descarga Flockbay

La palabra generación cubre dos herramientas distintas con fallos distintos. Así sabes cuál quiere un trabajo.

Lee otra nota sobre IA y herramientas

Sigue leyendo