It's clear there are several feedback loops: most notably that the city growth rate is affected by the overall tech level of the hegemony. This provides a significant obstacle to small starting cities, but gives a boost to established empires. The loops keep things interesting. In addition, many of these links involve some randomness, which means that things will generally tend in the same direction each time I run the whole simulation, but it's never going to be exactly the same.
Desirability is a value, expressed as a percentage, which describes how desirable a piece of land is for settlement. Each race prefers a different arrangement of terrain and weather. The desirability value will affect how large a settlement can arise in a hex, and also captures the number of resources available there (whether or not they are being totally utilized). Because the resource allotment code adds complexity and time to the history simulation, the desirability is used as an approximation of resources in the battle simulator (since a settlement with access to more physical resources will have an inevitable edge over their adversary). Raw desirability is the desirability in the absence of civilization; it is mixed with infrastructure to obtain a measure of desirability for city expansion, when an existing settlement sends out settlers.
Infrastructure is an integer which describes the effect of settlements on surrounding terrain. Although the Tao only uses elevation to limit the spread of infrastructure, I also include local effects such as forest or desert. I also make infrastructure "flow" downriver easier than upstream. A high enough infrastructure (over 400, for now) changes a forested hex into plains or grassland, depending on the local climate (which is a feedback element encouraging a more efficient infrastructure spread). A higher infrastructure implies a better training mechanism for soldiers. Infrastructure spreads from every settlement in a hegemony and stops at the border.
Hexes with infrastructure but no settlement are the hinterlands; they are prime candidates for future settlements. Since the hinterlands are populated (however sparse), reinforcements can be press-ganged. Generally, however, their population is very low. The rural population of any hex with an infrastructure value is an exponential function of that infrastructure number.
If the effect of a hegemony's capital (measured in % of total infrastructure in a hex) drops too low, and a city's self-generated infrastructure is high enough (100), then a rebellion is possible.
Available resources (which are fed into the market system, not shown) are acquired by cross-referencing the available resources (which is somewhat determined by terrain) with the resource definitions. Certain resources cannot be extracted by low-tech cultures, but may become available as the hegemony grows.
The Long-awaited GitLab. There is no README yet: I've been working on this for two years now, and so the code is a garbled mess in places and cleaner in others. Eventually I'll get around to some housekeeping. Enter at your own risk.
Thanks! Time to spend my Sunday perusing the code!
ReplyDeleteThx for all of your work. I stumbled over here earlier this month from Tao. I've read virtually everything over there (including the Higher Path.) Also spent hours on Azgaars. And Worldspinner. And read about 90% of your posts ... and comments. Understand the theory, if not the math (which, thx to Wolfram Alpha I don't necessarily HAVE to understand.)
ReplyDeleteBut here's where I'm lost. Where/how do I start? And then what? Starting a new campaign soon. Would LOVE to incorporate the trade and infrastructure system in my worldbuilding but have now idea how to start. This flowchart is "handy" but by necessity there's a lot of recursion.
Is this off base: Establish terrain then assign available resources based on lowest tech level. Use that to calculate desirability and carrying capacity. Then plop down settlements and expand infrastructure. As city grows so does (probably) Tech level, providing more resources?
Then there's the whole 'trade network" on top of that. Tao seems to have that market cornered (pardon the joke) but it's spread all over a half-dozen years of posts and his wiki isn't updated on that section yet.
Wrote this to organize my thoughts as much as anything else. Your input (and that of your followers) appreciated.
(lightbulb moment?) I'm thinking pre-gen maps are problematic because they are providing an already developed economy. I need to use good starting geography, pick my main settlement, and expand outward on my own to get a feel for how the system works, rather than trying to impose this system on a pre-gen map
I think you're on the right track. There is a lot of recursion, because that's how the real world works, with lots of feedback loops and things like that. Better food production leads to more people which leads to better technology which leads to better food production.
DeleteI'm in a bit of a dry spell but I have been trying to think through how to historically build up that feedback. Right now the trade network model and the historical model are not connected - it creates a huge amount of lag to recalculate the trade network each time a new city is added, for example.
I've also struggled with how one would start a campaign with a system like this that's never "finished."
But the best thing, I think, is to get more brains thinking about the problem. So looks like we're off to a good start!
it's been about six weeks ... and I had a lightbulb moment late last week. Don't let the perfect be the enemy of the good. So I just jumped. I can do the Infrastructure stuff. It's "easy." But the trade/econ system is what had me flummoxed. So I ditched the tech and Dev levels. Went by population using S. John Ross's "support value" and John Josten's Grain into Gold (along with a handful of other sources.) Started with the 13 cities in my "home country" and used the "zones" concept for the rest of the world. Assigned 3-4 resources to each city based on size/geography and a few more based on size and a random roll. Same for zones. Calculated the transport distances. Working my way through recipes now .... tinkering with recipes and production now.
Deletesuggestion: a newly found city might not be a node on the network right off. Can you set stepped growth? No trade at first, then only with a neighboring burg ... connecting to more nodes as it grows?
Gotta admit I'm not convinced I understand completely what you're doing! Or rather, why you're doing it. What, specifically, is your "end point?"
I'd very much enjoy seeing more of your work!
DeleteTao's wiki has rules for how many routes can connect to a city based on its size.
There is no end point. What I want is a fully deterministic trade/climate/historical machine, such that I can generate a locale with full detail consistent with the place's history and place in the world. Easy!
Thanks for the GitLab!
ReplyDeleteWhat sort of map did you start with? That would definitely be interesting to see.
ReplyDeleteNot sure if you're asking Shelby or me .... but MY answer would start here: https://dmsescritoire.blogspot.com/2021/08/in-which-we-tear-it-up-and-start-over.html
ReplyDeleteand I'll be happy to answer any questions you have
Thanks, will take a look. Questions very likely!
ReplyDeletee.g. you had something that can build a basic world map for you? Different to what donjon has?
ReplyDeleteAt the time, I drew it by had in Inkscape. In those days I was doing more physical drawing too, and importing it into a digital form.
Delete