StrangeLoopGames / EcoIssues

131 stars 24 forks source link

WorldGenerator not behaving as expected #20033

Open jamesyoung79 opened 3 years ago

jamesyoung79 commented 3 years ago

I have noticed some issues with the WorldGenerator. Below are links to two WorldGenerator.eco files to help demonstrate the issues, both identical with specified seeds except for the changes and issues detailed below. When trying to use the terrain editor tool in the windows server I have noticed that the order the WorldGenerator processes stuff does not line up with expectations. If heightmaps, rain, temperature are altered to change biomes and/or ocean locations it does not function as expected. The block placement volumes seems to take place during the Eco.WorldGenerator.VoronoiModule processing. This makes any changes or use of the terrain editor only superficial at best.

The VoronoiModule's outputs are output index 0 Height, 1 Water, 2 Rainfall, 4 Temperature. Normally the respective outputs are routed directly to the HeightmapModule, WaterModule, RainfallModule, and TemperatureModule. When placing modules between them (using the terrain editor by hand is too tedious due to indexing of block depths is in the same file ) the block noise patterns and deposit have already been determined using the TerrainModule. This can be seen using the two WorldGenerator.eco settings files below.

Due to the inability to load I have used some terrain generation tools which generate height maps, water, rainfall, and temperature images. Not having the ability to load is understandable that it is out of scope. When not using the VoronoiModule but importing from bitmap those layers. The world generates but is made of impenetrable blocks with the exception of cliff faces and water. Most other layers are not created, like CanopySpace, etc.. When generating a new world that includes the VoronoiModule but alters the output with bitmap imports the terrain has issues with empty blocks behind cliffs, depth blocks consisting of sand, and incorrect blocks under biomes. This is due to the block composition determined before the VoronoiModule output.

If the VoronoiModule had 4 optional inputs to take in a Heightmap, Watermap, Rainfallmap, and Temperaturemap then it would function as expected. Otherwise an alternative module that uses inputs of those layers to generate the rest of the layers and block composition from the TerrainModule could also work.

WorldGenerator.eco default settings with specified seed WorldGenerator.eco altered The changes to the altered WorldGenerator.eco are as follows:

Issues visable:

IcedForge commented 3 years ago

There is some interesting applications for these issues and solving them but im not sure how much of a refactor / fix this would be. Maybe you guys can post some thoughts on this issue.