Improving Region Borders


This weekend I continued working on the region border generation algorithm, and I managed to get it to a decent state. For reference, here's an image from the previous weekend showing how things where left of:

And here's where things are now:


Some of the things I did to get here where:

  • Soften area border expansion: Cells aren't just added if they have the correct biome, they can also be added, or rejected, if the neighborhood cells have the correct biome.
  • Micro-area inclusion: If an area bordering a region is too small to become a region of its own, then it will be added to the bordering region. This takes care of very small areas that fall between two or more different regions.

I also made improvements to border detection in general to make it faster and more consistent. Though there are still some quirks in the algorithm that produce weird border artifacts... The algorithm could still be improved in multiple ways, but I think I reached the point of diminishing returns. Too much effort for little gain. So it's time to move to the next step and start working on sub-region generation. Which will help me break up the larger regions into chunks that can be occupied by single tribes and can be defined as migration targets.

Get Worlds - History Simulator

Comments

Log in with itch.io to leave a comment.

(+1)

Good stuff, looks fantastic. The only major thing I'd say is really missing is the human aspect of regions/borders. Assuming the regions in-game are areas that are discovered, named,  categorized and outlined by the polities who discover them, it seems strange that they can map out an entire region far beyond not only the borders of their polity, but can even map out regions generally uninhabited/uninhabitable. I point this out not because its a huge flaw, but rather because it highlights some possibilities. 

For one, the region exploration system is not dynamic (as far as I know). Once a polity happens to touch a cell that is not contained within an already defined region, the algorithm outlines a new region, names it according to the language of the discovering polity (I think) and thats that. That region will never shift, never change, the name remains the same even as the people who inhabit it come and go and even as their understanding of the region in regards to the greater world increases, the region will always be the same. This does not reflect how human beings regard regions/territories in the real world. 

We define our regions according to a myriad of factors other than bio-geographic properties, for example we define regions by the culture of the people who live there in comparison to those around them, to the history of that region and for political reasons (often territorial claims or plain logistics (I.E regions that are absurdly large are difficult to manage at a certain technological ability)). All of these factors change through time, they are by nature dynamic, irrational, but also useful and interesting. 

I'm not saying you should create an advanced sociological model of human behavior before you alter how regions behave, but rather a  system should be put into place to account for the dynamic and changing nature of human borders put upon the world, and also the limitations of early human exploration. 

Regarding regions, when a region is first explored and settled by a polity, it should still of course be defined by bio-geography,  for this is what said polity will be worried about and therefore will be how they categorize the region. Then as the next phase of civilization begins, and small yet numerous polities start to compete for land, the focus of the people is now who lives where, for how long and what polity to they belong to.  As such the regions borders begin to shift (and in accordance with adjacent regions) to match cultural borders. This reflects the changing nature of peoples understanding of the regions in which they live. This change should be more gradual (not tens of thousands of years, but not a few months either). As tribes migrate to and from this region it may split, as the more ferocious tribes carve their corner of the region, over time the neighbors should consider it to be its own region, and should that ferocious tribe settle down and cooperate they and the land they live on once again reincorporate into the region. 

This dynamic behavior can be attributed to sub-regions with regions being a little more grounded in geography, however I do think sub-regions should be able to their own regions which can begin incorporating other sub-regions depending on certain factors. 

Whatever the specifics are, regions and sub-regions shouldn't  be a static backdrop as they reflect the understanding of the people who live within them, and their should be a basic exploration mechanic to reflect the time and organization needed to map out the world.

(+2)

There are a bunch of limitations that, for now, limit how much I can do with regions. For one, building regions is not a cheap operation to do, performance-wise. So I want to limit how often those operations happen. In that regard it's kinda difficult to make regions more dynamic, but not impossible.

I agree though that regions should be more tied to cultures. And that's one of the reasons I want to split big regions into smaller chunks. Since subregions could be defined in accordance to the explorative capabilities of the cultures that discover them. Nevertheless, biogeography probably plays the most important role in how regions are defined in our world. And I want the most basic types of regions to be defined in those terms too. Just to clarify though, regions are not the same thing as territories (at least not within the game). A territory is 100% defined by the polity that controls it. And it can overlap or cover one or more regions, or just parts of them. I think your definition of dynamic regions and borders more closely resemble what I hope to achieve with territories. Hopefully I will be able to match your expectations better with territories once I get to improve them.

One change I want to make in this release, for regions, is to allow for them to be renamed, or rather, to have multiple names. I want each culture that discovers, or rediscovers, a region to give it a unique name in their own language. And, in the case of a single region having multiple names, I want the name to be displayed, at any given time, to be the one given by the culture that is more prominent within the region.

Anyway, thanks a lot for your comments. They made me reconsider my understanding of regions a bit more.