Base architecture

The world is generated via chunks. Chunks are 25x25 CU squares which can have any Z-axis vertical size. Each chunk is designed in a way so that it can connect to any other chunk at Z=0 =no matter the rotation and mirroring of the chunk. For more info on how to design chunks look at Level Design and Art Style

These chunks are placed on a grid, randomly rotated by 90 degrees and sometimes mirrored on an axis that is not the Z-axis

What chunk is placed is determined via the Biome placement system. For more info look at Biome generation [REFACTOR PLAN]

Zone system

Every chunk has hand-selected Zones that represent the different rooms the chunk has. To avoid performance issues with real-time zone generation this will be done manually in edit-time. Zones are represented via a 2D 25x25 grid. Each grid cell can have an index associated with it, which represents the index of the zone. Any connected cells with the same index are considered a part of one.

This is stored in a 2D array. The max value of that array is the amount of rooms or Zones a chunk has.

When a chunk is generated these zone indices are associated with a random Zone Definition , which is a set of attributes that define what will generate in the room (Eg: What props, what kind of lighting, etc). After they are associated the Feature systems [REWORK PLAN] will adjust themselves to generate the required props when they go through the zone

Props

This system handles the Architectural part of the world generation, creating empty rooms to be filled with stuff. The props are managed by the Feature systems [REWORK PLAN] via Features