It is practically impossible to build an entire continent by hand, which is why we have decided to utilize a procedural world generation system. This system, however, is not universal and can only generate a specific shape of the continent based on the descriptions provided in the book. It relies on a number of predetermined constants and parameters to generate the continent as accurately as possible, but it is unable to generate anything else.
The procedural generation system uses a seed, essentially a random number, to create a slightly different version of the continent each time. If the same seed is used, the result will be exactly the same every time, but changing the seed slightly will still produce a continent that fits the description in the book, but with different locations for cities, hills, and trees. A new seed will be generated for each new game.
In this game, players have the ability to alter the terrain of the world in various ways, such as digging holes, building mines, flattening surfaces, and removing or planting vegetation. These modifications allow players to build houses and other structures, using a variety of building materials that are available in the game. Additionally, players can add decorative objects like carts and stands to their towns, giving each one a unique appearance and atmosphere.
There are also various industries in the game that require inputs and produce outputs, such as a blacksmith that requires iron ore to create weapons and armor. These industries allow non-player characters (NPCs) to occupy themselves and add an element of economic activity to the game. Players can potentially earn money by selling resources to these industries or by participating in the transportation of goods. However, the complexity of these systems is limited, so players should not expect a highly realistic or intricate economic simulation.
Let’s talk a little more about our procedural generator. It is nature-centric, meaning, if you use it to generate the world, it will generate only the surface (hills, rivers, canyons) and foliage (trees, grass, flowers) including the weather, day/night cycle and season cycle. No buildings, no paths, no grain fields. As if people and animals never existed. If you ask the generator: “Generate this portion of the map at these coordinates at this date”, the result is a beautiful natural scenery suitable for the Unreal Engine 5 level streaming.
But exploring that world would be boring. Therefore, it is possible to also include a history of modifications that you, the player, any NPC or animal has done to that portion of the map. Example: “Generate this portion of the map at these coordinates at this date, but take into account all trees have been cut at this date, then there has been hole dug at this date, the road has been paved at this date, this section was flattened at this date, …” By feeding it with all the information, the procedural generator can create a scene with all the modifications included. It still won’t include buildings, but it will try to simulate a “passage of time”. For example, if you pave the road in the spring and there won’t be any traffic during the summer, it will be overgrown by the autumn. If you plant barley seeds, they will start to grow.
To summarize, our procedural world generator not only generates the world but also simulates a passage of time as nature tries to take over every modification done by humans – we call it Beautiful decline procedural generator. Shout out to Abney Park.
It is important to note, that if you feed the generator the same input, it will always generate the same output – it is deterministic. After getting an output from the procedural generator, the buildings and other decorative objects are placed in the scene.
All the modifications will be stored in an octree structure, so it is possible to access them quickly for any specific world location. This octree structure, together with a dump of BMD database, will represent the full game state.
However, there are limits to the number of modifications that can be made to a region of the world. Some modifications, such as flattening the surface or removing all foliage, can be grouped together, but more complex surface changes, such as creating new mountains or islands, are not possible due to the high amount of computing power required. You will be able to dig long holes and caves, and even uncover hidden underground dungeons, but you won't be able to significantly alter the shape of the land.