Tileset

1 2 3 4 8

Constraint tiles

5 6 7

Wave function collapse algorithm

This algorithm works on simple basis. Each tile placed has a set of rules of what type of tile it can be placed next to. This leads to a cascade effect where each tile goes from having a nil value (tile 8) to possibly transforming into another depending on the surrounding circumstances. Some tiles have rotation and can be rotated for extra variety. Constraints are placed before generation begins but maintain there own ruleset forcing the algorithm to accommodate there presence. This is particularly useful for map generation where, for example, an exit and entrance point are required.

Map generation begin the top left-hand corner. But from then placement is entropy based. I would like to eventually explore which map generation method have the greatest speed for different task sets (like a standard Perlin noise function instead).