-
Notifications
You must be signed in to change notification settings - Fork 12
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Baby Littering and Global Goblin Growth #175
Comments
How about making people in active warbands be unable to have children instead? It'd give the player a reason to not always be in one |
In all honesty, there's also a problem of not having epidemics in the game. I think goblins having higher population pressure is fine but I agree that as is they're way too good at spreading |
Yes, this is an interesting problem, I think another way to solve it is to implement an option to get rid of unwanted goblin children in some way. In my opinion, if goblins are left unchecked and tolerated by their neighbors, they should eventually outcompete all other races. And i think that epidemics will make goblins (and still not implemented vermens) only stronger, because they are supposed to have high resistance to infections. Essentially, I think this problem will solve itself after development of race-specific laws which will allow tribes to target goblins and other dangerous races and keep their population in check or enslave them. Short-term solution like allowing pops to have children only when they are in their home province will work for now, but IMO this is quite an interesting emergent effect, which would be fun to have when other systems will be in place. |
Impact of disease is hard to predict. It's true that better disease resistance would help prevent high death tolls but higher population density would also mean more frequent disease outbreaks. I agree, though. We really need some kind of Stellaris-esque law system to allow controlling goblins by force. |
I feel like the point about literal Baby Littering is being overlooked. The goblins themselves wouldn't be as bad if their children were born in or travel to the parent's home. The problem is that mothers just don't care (keep track, pull along, feed, etc) about their kids and just drop the baby and walk off like it never happened. I don't think its really the goblins fault as much as it is just that one line of code with no follow-up leading to the problem. If the logic isn't too heavy I think traveling should grab the characters children that can't work and are not in their home province. Additionally, |
Nah, the problem is real, but the thing is that this Baby Littering is quite a fun consequence of that one line of code. But it's definitely way too common. Your suggestions are quite good and shouldn't be too hard to implement. We should track children anyway just for the sake of potential succession rules, so it's probably a good chance to implement it. |
So after investigating the fix with parents tracking children, the follow needs to be done
Is this a workable solution? And should the cutt-off for the children be Also while |
These sound reasonable. Wrt dead people, we have to cut the trees somewhere because otherwise the garbage collector will never free memory. That being said, the precise behavior of functions like |
What kind of kinship do you mean? Are we talking marriage and spouses like an additional table, or more like family units? |
I mean kinship as in anthropology: https://en.wikipedia.org/wiki/Kinship We are talking family units but the implementation will have to depend on the importance of the person at hand - we will need them for dynastic succession (see CK3 and Imperator), but storing a bunch of extra tables on every pop would be extremely wasteful, as you mentioned. |
So we are talking about tracking children, parents, and, spouse(s) at the least? Do we want to hold onto dead parents until all children are dead too to keep track of siblings or should there be another data structure to hold family units (potentially combining parents, children and spouses into a single class)? |
Could you make a PR? It'd be easier to me to analyze is that way. Another approach could be making goblins much weaker at combat and not letting them to just settle down in settlements that don't explicitly allow "non accepted" pops. Similar to how Vic2 handles migration for some government types. |
It looks like the real issue is that all races, cultures, and faiths intermingle without restriction that allows the traders and their warband to visit any province and start recruiting from it and/or letting their current multiracial army drop babies. With goblins only taking a couple of years to raise and get a job, the parent pulling stops working on more on them since labor becomes a bottleneck for everyone except goblins after just the first decade or so. Initial race distribution: |
In regards to #179, I also have an alternative option I have been playing with that doesn't even pull children yet and does a much better job at controlling warriors dropping babies here by simply randomly making some tribe intolerant and refuse to hire different race/culture/faith warriors or travel to their provinces (but not stop others from traveling to their provinces). These are tied to the culture and randomly assigned in the on world generation between hard refusal, general dislike, and ambivalence towards a other races, cultures and/or faiths; in any combination. |
That seems intriguing. I'll check it out after work today! |
I realized that my previous hard limit was probably not the best approach, so I attempted to implememnt it using a cultural trait system based off how character traits work. I have 5 traits: isolationist (malus to different race/culture/faith), racist (bonus or malus based on race), bigoted (bonus or malus based on difference from culture), fanatical (bonus or malus based on faith), and avarice (increased perceived value of money). These were then implemented in as flags in |
I merged in your MR. We should probably keep this issue open for now |
Yeah, while children tracking is helpful, I think it is only one part of the solution to goblins overtaking neighboring realms just by visiting and am still investigating a solution. I'm hesitant with both of the cultural restrictions with travel both because it restricts movement so heavily and touches on #145 (thus feels a little outside the scope) but I do like the added affect that the trait system has with restricting recruitment and hiring to make conditions less favorable for foreigners and fits nicely into the existing systems. Still, I am looking for a better solution that allows goblin traders to visit and maybe have some warriors put down roots but prevent goblins from gnobbling up all their neighbors. So with the merge, I did a rebase on my trait branch and ran a hundred years to see how the two worked together and did some digging. Initial world: The most interesting thing I noticed from this is that all the elves were employed while most of the goblins weren't. Second was the different in satisfaction and life needs. the elfs were between 75-100+ needs while the goblins were stuck around 20-50. This was probably explained by the racist elves not wanting to hire goblins or the bigoted goblins not wanting to work for coish (elf culture). Since the goblins would all have their home set somewhere else, the children won't take from province wealth (which is probably why most are at ~20 needs) so why are they still overtaking this province? Two simple counters could be done for this:
Regardless of these to idea, it also occurs to me that so simple neighbor targeting pop migration based on at least needs should be added to handle these pops that are living in harsh conditions. The calculations would also be useful for determining when an ai tribe would migrated, as I have now seen a few tribes generated alone in desert mountains and slowly dwindle instead of moving to nicer neighboring provinces. If you have any other thoughts or ideas on possible avenues of investigation, let me know. |
I noticed something interesting after watching the world play out for almost a century: eventually everyone was goblins. After some investigation I think is caused by a combinations of three things:
warband recruitment from current location leads to trader characters picking up all sorts of different race warriors
warriors being checked for reproduction in whatever province they are currently in
and finally, the population growth function that just drops the baby in the current province
https://github.com/Calandiel/SongsOfGPL/blob/dcde1b7008d88a7384993016851efebdd3fa0d02/sote/game/society/pop-growth.lua#L80
This is what I like to call Baby Littering, warriors will march around and provinces will check females for growth. If a baby is made it is just dropped at the current location as it's home even if it is different from the parent. Couple this with parents not keeping track of their children (only children keep track of their mother) and you effectively have tribes potentially picking up orphans from any traveler.
This wouldn't be much of a problem if all races reproduced similarly but Goblins have a rate of 4x humans (8x elves) so they end up over producing and eventually become the dominant race once they drop a couple of babies in a province and breed like rabbits forcing the province to uplift pops to notable characters, which more often then not is a goblin now; eventually squeezing out every other race from their own provinces. If the simulation was left running long enough, the whole world just becomes Goblins.
starting a new world and looking at race map mode
and then after about a single goblin's lifespan
The quick fix is probably just spawning the child in the parent's home province. Alternatively, if mothers tracked their children they could checked in the travel calculations to have the child move with their parent if the not in their home province, forcing the child to be dragged along with the mother until she returns home.
The quick fix also has an issue with using warbands to facilitate "migration" where you can go to other provinces to recruit warriors and bring them back to your home, remove funds from the warband and watch as the foreigners take up jobs in the province but never change their home province so any child born from these will teleport to wherever the parent was was born where the latter solution solves this but at either memory cost in a table or processing by looking for through province children when traveling from nonhome provinces.
The text was updated successfully, but these errors were encountered: