So today i’ve continued working on the building generation system. I’ve added a number of new building materials as well as adding outlines to some of the existing ones.
I’ve been experimenting with which combinations of blocks work well together for bringing out a good style for buildings. The next step is to continue to work on interiors. This will soon be possible once there are more furniture pieces in the game, and other features such as windows/stairs/ladders can be added aswell.
The idea is current rooms will be divided into sub-rooms, each room will be decorated according to its requirement. A bedroom will gain a bed and a bookshelf. A general area in a medieval house may have a table, a few crates, and a bit of general clutter in an attempt to make the building feel more alive.
How does it work?
The structure system works by pre-mapping out zones in random locations based on an algorithm. There are two features to this, and zones can also define sub-zones (infinitely recursive if needed). For example in the image below, I could choose to split the MainRoom into 2 subrooms for a kitchen and gathering area.
The system is only as good as the design. My current thought process is that each general style of house should be able to generate in a number of different ways. Though for houses which are quite different, they will need their own generators.
Currently you can also store temporary properties about a structure during generation, this can be for example the type of block used for the back wall. This is accessible by all zones and can be used to allow a few quick adjustments of style with minimal work.
Avoiding sameyness
This is the age-old problem when it comes to random gen, and this system definitely suffers from it. Finding the balance between style expectations for what a house should be, and what a house should have whilst allowing it to appear different is a tricky task.
In this game, We could generally define a few baseline styles of buildings, create generators based on those styles to add random variation as well.
House evolution
As our game has time as a mechanic, we definitely want to make use of this in our house generation. Houses will progressively upgrade themselves over time. Using the zone system, we can allocate which zones constitute part of the original structure, and which ones constitute parts of a newer structure.
NPCs will go and build up their houses when they have the resources to do so, you will be able to watch this in real time if you wanted. Quests could surround you helping NPCs gather resources in order to build houses, or actively helping in the construction process.
This has been quite a long dev log, though I am feeling really excited about the potential for this system!
Michael
Manta Games
2 comments