Procedural Generation - Orhu/Summer2023Project GitHub Wiki
Overview
The procedural generation will use a flavor of wavefunction collapse that takes in room templates and uses them to determine the rules of the generation, though the rules can also be manually edited by designers. To clarify, room templates will not appear in the game, they are just to allow the generation to figure out the generation rules. Each room will only be generated as the player is entering a room, the layers and number of doors in that room will be determined by the remaining tiles needed to spawn on the current floor. The special layer will only spawn in dead ends, and the boss layers will only spawn in dead ends after all tiles have been spawned.
Tile Data:
Number Per Floor
The number per floor will determine how often the player will see a given object on any floor. This will also determine the overall size of the floor as once all of the card tiles have spawned the boss room will spawn. This will be determined by the sum of card effects in the player's deck as they enter a room.
Layer Point Cost
Each layer in each room will have a point pool, and each tile will cost a certain amount of points to spawn. This will be determined by designer input per tile type.
Layer
Each tile will have a layer that will determine what tiles it shares a point pool with. This will be determined by the rules of the generation.
Room Compatible Tiles
A list of tiles that this tile can spawn in the same room. This will be determined by the rules of the generation.
Relative Locations To Compatible Tiles
A map of relative location to what tiles can spawn in them. This will be determined by the rules of the generation.
Room Data
Layers
What layers will spawn in this room. Determined by the layout generation
Floor Data
Points per Layer
How large the point pools will be for each layer. This will be determined by designer input per floor.
Boss layers
The layers that will be added to the boss room. This will be determined by designer input per floor.