MINECRAFT TERRAIN AND LANDSCAPE GENERATOR
Noise Generation and Tool Creation
I created a Minecraft terrain generator using Perlin noise to generate a height map, then used recursion to build up the map. Rather than storing the block data into an array, blocks stored references to their neighbors on each of their faces (if applicable). This allowed me to optimize performance by performing an initial check to see if the block would be visible to the player. If the block had neighbors on all six sides, it would be determined to be unviewable to the player, and thus collision and rendering would be disabled on the occlusion pass.
I decided I'd build up on that base by creating a landscape generator to populate the terrain and create custom editors for both. To populate the terrain, I created a blue noise generator that ensured only peaks (1) and lows (0) were generated. It would also ensure that each peak had a minimum buffer area to the next nearest peak, preventing unsightly overlaps. This ensured random, but even, distribution of objects that felt natural. Additionally, I created generation constraints so that only certain types of blocks would be created at specified elevations and that objects would only spawn within certain thresholds.