Maxim Gumin’s Wave Function Collapse (WFC) is a quite recent algorithm used for procedural content generation. The algorithm uses constraint solving and local similarity to generate outputs. However, the algorithm struggles to generate large complex outputs. We aim to generalize the original work to make the algorithm hierarchical. It is a promising option that could make the algorithm work in more challenging domains. We will analyze and discover many improvements to make the hierarchical version applicable.
WFCs are structured into layers. On top of each WFC shape, we can run multiple different WFCs. This algorithm provides us with much more controllability compared to a single WFC. It can also break up the homogeny because we can have different areas with different characteristics.
- Download the project
- Open it in Unity
- Open World Map scene or the Dungeon scene
- Experiment with the algorithm
- (Recommended) Run the application (enter play mode) and experiment with the generation
- It can also be used in the editor (open Hierarchical Controller and generate layers one by one
- Try modifying input to some WFC
- Unity WFC Package https://selfsame.itch.io/unitywfc
- WFC https://github.com/mxgmn/WaveFunctionCollapse