One of the goals with the new world generator was to create a system that makes it possible for anyone to create their own worlds. And with anyone I really mean anyone.
If I would have released an api that would let you modify or create your own version of the current realistic world you would have to be an experienced programmer with a deep understanding of procedural generation including different noise generators and the math behind iso surfaces. You don’t need many fingers to count the people who fits that description and also plays my game.
So after many iterations I finally came up with a flexible and robust way to take block models built inside the game (or using a tool made by the community) and use them as building parts for entire worlds. The first versions of this system were very limited in how the building parts could be placed and how they worked with the lod system. The building parts were very easy to spot because they all looked like giant Minecraft blocks in the distance. The current version I’m working on right now lets me have any detail I want at any lod level and it is even possible to offset the building parts in different ways to push them of the grid. In the Blockscape world that will be available in the next update all the building parts I have created are laid out using a bunch of procedural algorithms. If you are a programmer you could do this in a mod as well but if you know nothing about programming you could simply create a world map were each cell points to the building part you want. This world map is just a simple text file with coordinates and building part names. In the future I’m going to add functionality to Blockscape that will let you edit such maps in the game using block building methods.
So in the end the building parts and the map that lays out the building parts will all be built inside the game.
No post is complete without some images so here we go…
This is the world I use when creating building parts. Here I’m building a tree trunk (the material doesn’t matter here as it can be change dynamically in the world map/generator):
The tree trunk was saved as a block model and is now used in the world generator:Tweet