Soo, a long time, little Progress due to a Lack of Creativity.
With the Announcement of OTG and and the new/improved things, I decided to redo my Village.
We can make it Better, Faste and more Awesome in General. Just Kidding.
While I didn´t go into much Detail in the previous version of the Villages, (What I definitely wanted, but the wasnt in the Mood) I will do that now:
First, a in depth guide on how Exactly I do my Semi-Random Structures:
The Most important first step while I plan a Structure is the overall Look I want. This doesnt include aesthethics like what Materials to use or something like that. Rather the rough layout.
Do I want a MazeLike structure, variieng size, how much Randomness, and stuff.
In case of the Village it is clear that I need a Structure that is as random as Possible and I need basically 2 kinds of Parts: Roads, and Houses.
The Next step in Planning is probably the Hardest, as Errors/Mistakes at this point can ruin the whole Structure, thats why this Step usually takes me the Longest:
I need to decide on the Size of the Actual Objects. To get a good Randomized structure with the Limited Possibilities of BO3s you will probably want to default to a Grid, which will make it easier to manage Branches.
In my Village I decided on 15x15 Blocks for Housing, and 7x7 for Roads. In this setting each object will overlap one Block with each other. That way I can easy outline/plan roads and align Houses along the Roads without running in problems that it just wont fit.
The last step in my PriorPlanning is then to decide how I want to Assemble the Object.
More Complex solutions give me better, and more finetuned results. Wile they take exponentially more work/thought in the actual building process.
This is also a carefull consideration, because to simple Structures might look good in some Specific circumstances. But might look very bad on some other Occasions. While to complex structures are just a pain to build and then Assemble.
I dont think anyone needs to be told on how to build something. But again, everytime I wanted to employ someone to help at this part. I never got really good results, because creating a Flexible Object is much harder and takes more work than creating a stunning static structure.
To get a Village, that wont look just pasted inside the world I decided to Split up each Object/Building in 4 parts:
1. The Foundation
2. The Object
4. Cave Parts
What takes away the most of Objects is when they dont fit the Terrain, and randomized structures suffer much from that. As you generally dont have much control over where exactly it spawns. It might Spawn right across large hole/drop and partially float. Or it might spawn halfway through a mountain. Neither looks good.
Thats why I need 4 Parts. With the "SourceBlock" settings I can finetune the SpawnConditions for each object.
The Foundation, will only Replace GRASS,DIRT,AIR and other PlantStuff on the Ground.
It consists of some simple construction below the Object, and acts as Foundation if the Object partially or Completely starts to float.
The Object itself will replace all blocks.
This contains the actual Object/House without Windows.
- The Detail will only Replace AIR and PlantStuff.
In normal Cases this part includes part of the Roof, and other stuff outside the Building to make it look better. While this wont Spawn if part of the House is inside the Terrain. Also Includes Windows.
- Cave Parts will act exactly the other way than Detail parts. They can only Spawn Inside terrain. And will act if an Object intersects with the Terrain. For Example that wont be placed on the Detailpart because they are inside the Terrain will be replaced with the Default wall.
Another thing are the Roads. The CavePart of the Roads act like a Tunnel. Basically this should let the Village Act dynamically different if the Houses are Floating, on Flat Terrain, Inside a Mountain, or even partially inside a Mountain/Floating.
Here are my Current Village Objects:
From Bottom to Top these are the Different Parts of each Object. So one Column is one Building.
I assembled some Buildings on makeshift Terrain, this is how it *should** look generated:
Note: I simply Removed the IronBlockPlaceholder and SpongePlaceholder, I didn´t add any other Replacements for other Blocks in that test
One of the more Annoying parts of this. TerrainControl cant do Random Structures with rules. (Some Branch Plugins might add Functionality, but I dont trust those)
What I mean by that, while you can add Weighted Branches, and Random Branches, you cant really say: "Okey, Generate ONE of this House and three of theese, also a grid of 20 Roads"
If you just put in random Branches for Houses you might get 10 Churches, or 10 Smithys, or none at all. (Not to mention that you cant really create a good random RoadNetwork.
That means we have to predetermine the City Layout.
But how do we get a Village as random as Possible if it needs to be Predetermined? The answer is easy:
Split the Village in Parts.
First, imagine this as the Whole Village as one Object:
Next we split it up: That means the First Village Object, spawns these 4 Quarter Villages.
Next we add Roads/Houses to each Quarter:
Now, we can create as many Quartes as we like, We just need to make sure they fit Together. Together with Variations of the Specific Houses, like two or three smithys, default Houses, Farms and other Special Houses we manage quite Random good looking Villages.
For my Personal Use (due to it beeing to Complicated to Explain how to configure and use it) I created a Tool that can read out PNG images and create finnished Objects with the actual Branches and only a little bit of tweaking left.
I considered making a Tool that creates a Layouts from Objects exportet from MineCraft, but due to the Limitations of BO3 (Max 32x32 Blocks) it wont make much Sense. Maybe I´ll do something some time. But thats not planned.
I hope this was an interesting Read, and give someone some Inspiration/know how.
I added the new WorldParts to my WorldGeneration, and I´m very pleased with the Result:
This is a General Overview of the Village. The RedstoneBlocks will be Replaced with Entities when OTG gets updated to 1.11.2.
The Dynamic Structure fits itself very nice into the Terrain. There are some very minor Errors due to a Wanky Order of Object Spawning. I should be able to fix that with Rearanging the Spawnorder of the Objects.
This Screenshot is from a bit further back near the Hill. Here it shows how the Structures work themselves Into the Hills, instead of just Overwriting it.
Overall, the more effort of Creating 4 Parts of each Object were definitely worth it.
Also, I´ve polished up my MineShafts, they now work like they are supposed to work:
They are probably from the size the Largest Structure on the Map, but on the same time, the Smallest. With only two Actual Structure Objects.
One MineShaft may Spawn at height 100 to 120 (127 is the Average GroundLevel).
From there they Spread out, and may go up several Layers. (I dont think I´ve put in a Limit) The Actual Limit would be the Surface, as MineShaft Objects wont generate where there is no Ground. (No Floating MineShafts Possible)