Lawlzee / UnityMapGenerator

5 stars 0 forks source link

Procedural Stages

Procedural Stages replaces conventional static terrains with procedurally generated environments, offering a fresh and varied experience with each stage while striving to maintain the familiar feel of vanilla stages.

Changelog

Features

Stages

Each stage is randomly generated, featuring unique terrain types and themes:

Screenshots

screenshot Temple map with the plains theme

screenshot Twisted canyons map with the desert theme

screenshot Open cave map with the void theme

screenshot Basalt isle map with the snow theme

screenshot Block maze map with the mushroom theme

screenshot Twisted canyons map with the snow theme

screenshot Tunnel cave map with the mushroom theme

screenshot Temple map with the snow theme

screenshot Islands map with the mushroom theme

screenshot Basalt isle map with the desert theme

screenshot Twisted canyons map with the plains theme

screenshot Tunnel cave map with the void theme

screenshot Tunnel cave map with the snow theme

screenshot Islands map with the void theme

screenshot Open cave map with the snow theme

screenshot Block maze map with the void theme

More screenshots are available here.

Videos

Below are several videos that demonstrate the mod in action:

Configuration

You can edit the configuration in Settings > Mod Options > ProceduralStages. All configurations can be adjusted at any time, even in the middle of a run. In multiplayer, the host's configuration is used.

Category Name Default value Description
Configuration Infinite map scaling Disabled If enabled, the stage size scaling will not be reset every loop. Exercise caution when utilizing this feature, as it may lead to increased map generation time and a decrease in framerate.
Performance Occlusion culling frame delay 6 The number of frames between each occlusion culling check impacts performance. A shorter delay decreases FPS, while a longer delay causes decorations to flicker more when moving quickly. The game operates at 60 frames per second. Any changes to this configuration will take effect at the start of the next stage.
Themes <Theme> spawn rate See table below Specifies the percentage of stages that will be generated with the \"{theme.GetName()}\" theme.
All Stages <Terrain type> map spawn rate Varied Sets the overall percentage of stages that will feature the <Terrain type> terrain type. Adjusting this value will automatically update the spawn rates for this terrain type in each individual stage.
Stage [1,5] <Terrain type> map spawn rate See table below Specifies the percentage of maps that will be generated with the <Terrain type> for stage 1. If the total percentage for stage X is less than 15% , normal stages may also spawn. If the total percentage for stage X is 0%, only normal stages will spawn.
Debug Stage seed Specifies the stage seed. If left blank, a random seed will be used.

Themes

Theme Default spawn rate
Desert 18 %
Snow 18 %
Void 18 %
Plains 18 %
Mushroom 18 %
Legacy Random 10 %

Terrain types

Here are the default spawn rates for all terrain types:

Stage Open Caves Tunnel Caves Lonely Island Twisted Canyons Basalt Isle Temple Block maze
Stage 1 5% 5% 25% 10% 25% 25% 5%
Stage 2 25% 25% 5% 10% 5% 5% 25%
Stage 3 10% 10% 15% 25% 10% 15% 15%
Stage 4 15% 5% 20% 10% 10% 20% 20%
Stage 5 15% 25% 5% 20% 25% 5% 5%

Troubleshooting

If you encounter any issues with the stage not loading or not loading properly, try creating a new, fresh profile with the same mods. This solution has resolved the issue for multiple users.

Alternatively, you can create a new profile with only procedural stages installed and then add your other mods one by one. This method can help identify any compatibility issues.

Report an issue

If you encounter any issues, feel free to reach out to me on Discord (@Lawlzee) or create a GitHub issue. Please include your log file; it is really useful for troubleshooting.

Credits stuff

Stage number Interactable credits Monster credit
1 225 150
2 300 180
3 375 210
4 425 240
5 500 270

Algorithms used

This section includes the algorithms utilized for implementing procedural terrain generation. If you are not a programmer, feel free to skip this section.