If we change the algorithm or tweak a variable, the generative space changes.
Check out the gallery for examples of what Chunky can do Downloads. For example, here is the mesh you would get using this approach on a 8x8x8 solid region: The time complexity of this method is linear in the number of voxels. The generative space of a procedural content generator (like Minecraft's world generator) is the set of all the things it can generate. Chunky is a Minecraft rendering tool that uses Path Tracing to create realistic images of your Minecraft worlds. I mean, yes, minecraft uses 3D perlin noise but not every game that does random cities or terrain does, no way, you don't need that advanced math to do random generation of objects based on some criteria. The absolute dumbest way to generate a Minecraft mesh is to just iterate over each voxel and generate one 6-sided cube per solid voxel. You may or may not use perlin noise, it's not really necessary in my opinion. After making a grid-like map of walls, this algorithm starts from a random place on the map. Start with the largest (biomes and islands) and end at the smallest (trees and individual resources on tiles) units that you are randomly adding. The algorithm in this tutorial comes from the Random Walk Algorithm, one of the simplest solutions for map generation.
If the level is already generated, use an NBT editor like NBTExplorer. I think that the best way to do this in a 2d Minecraft-ish game would be to generate the world block by block, with perlin noise (take a look at this tutorial). Change generator-settings in server.properties if the level is generated by server. and then at the end trees, grass, whatever else that is per tile. The exact formula that Minecraft uses to generate terrain is a secret, as stated in this blog post by Notch.
I think you should do it more per-object, not just throw random over am ap.Īs in: start with all water/flatland, then pick biomes, square or whatever concave (let's not complicate) shape, then start adding things, a circle/elipse for island (it'll sort of be like rasterizing a shape onto a bitmap), objects like towns or whatevers, etc.