Andreu Playà
ES
← Todos los proyectos Archivo

Wave Function Collapse

Un generador de mapas al que le das unos cuantos tiles y las reglas de cuál puede tocar a cuál, y resuelve una distribución que no las rompe nunca.

EstadoArchivado
Hecho en2022
StackUnity3D · C#

Qué es

Resumen

El algoritmo arranca con cada celda conteniendo todas las posibilidades a la vez, escoge la que menos libertad le queda, la colapsa a un tile y propaga lo que eso obliga en sus vecinas. Y otra vez, hasta que no queda nada por decidir — o hasta que se contradice y hay que deshacer.

Lo escribí en Unity3D porque quería verlo resolver. Mirar cómo se asienta la rejilla es toda la gracia: no es colocar al azar, es un sistema de restricciones encontrando las únicas respuestas que encajan.

Qué dejó

Después

Es la misma forma de problema que secuenciar una máquina. Una estación no puede avanzar aquí porque ese eje está allí, esta pinza no puede cerrar hasta que la otra haya despejado: estás propagando restricciones hasta que solo quedan estados legales. No lo hice para aprender eso; me di cuenta después.

Se quedó en aplicación de prueba. Genera mapas, demuestra el algoritmo, y nunca le creció un propósito más allá.