Ethnically Correct Population Growth - Improving Immersion [IMPLEMENTED]

Do you like the idea?


  • Total voters
    37
That's my thinking. This might become too much work compared to the gain. I won't stop anybody from trying though.


Yeah I'm always open to discuss or do xml structure changes.I have added plenty of new code in that area and we can do stuff vanilla could only dream of.
Well, I would love to understand how infoArrays work, or more specifically clear examples, and dreams, of what I can use them for. So maybe if you threw together the first part of an xml file related to this feature, I might get that much needed aha moment. I need clear patterns to understand how it should be done or I will remain a clueless dumb blond in lalala it seems.
 
Well, I would love to understand how infoArrays work, or more specifically clear examples, and dreams, of what I can use them for. So maybe if you threw together the first part of an xml file related to this feature, I might get that much needed aha moment.
Right now I'm finishing what is essentially a rewrite of EnumMap and a huge update to InfoArrays. This update improves performance and moves error detection from runtime to compile time. It does however change how to use those slightly.
My plan is as follows:
  1. finish the update
  2. merge into develop, then merge develop into Plains
  3. write wiki pages on how to use InfoArray and EnumMap using the updated interface
It will likely be on 3 pages with links to each other as in InfoArray(xml), InfoArray(C++) and EnumMap(C++). There is also the detail that EnumMap can't read xml, hence the explanation should also explain how to do data transfers like InfoArray(xml)->InfoArray(C++)->EnumMap(C++).

It's not as complex as it sounds once it's explained properly in a wiki with tables of what is going on. In fact the goal is to create a very simple and easy to use interface.

As something new there is support of an EnumMap of classes. EnumMap itself is a class and so is InfoArray. This unlocks all sorts of options I should likely write about as well.

I aim at having it done before next weekend.

Maybe I should also write a wiki page on how the internals work. It ended up somewhat complex due to class inheritance of specialized classes optimized for various tasks. For instance EnumMap<RouteTypes, char> will not use the same code as EnumMap<UnitTypes, char> because with 4 chars in the first, the actual array will be placed where the pointer to the array (also 4 bytes) will be placed in the one length of UnitTypes. The interface to all the specialized classes is however the same meaning C++ modders using EnumMap elsewhere will not have to care which case is used. This less likely be written before next weekend.
 
So the question is how was this issue viewed in America prior to the woi? Forever convict? Forever convert? Forever slave? Just the person in question or would it last for generations? I honestly don't know..

The most thorough answer to your question is probably "Caste" written by Isabel Wilkerson in 2020. It should still be in book stores and libraries. She uses several examples from the colonial period before the war of independence.

The answer for most people then, and still for a few today, does appear to be forever.
 
The answer for most people then ... does appear to be forever.
Absolutely correct.
In these days, you inherited the "social status" (or debts) from you parents.

If you were born by Slaves you were also a slave by law. "The Sins of the Fathers" was often used as argument to justify that.
Also children of "Indentured Servants" which died before having paid their debts inherited these debts and became also "Indentured Servants".

If you were born by a "mixed marriage" e.g. White Slave Owner and his Black Slave, the White Slave Owner could decide what to do.
He was allowed to give his child freedom and even adopt it if he dared to socially do so. But he could also declare it his property as slave.

And even children of Whites and (free) Natives (called "Mestizos" by the Spanish in these days) were usually not fully equal to Whites.
They often got the worst jobs, were treated poorly by society and thus often had to become "Indentured Servants" to survive.

All laws in that society were made to serve the powerful and rich and to protect and increase their wealth and property.
There was very little possibility to escape poverty and slavery unless a powerful and rich man decided that this is what he wanted.

The concept suggested is generally trying to match reality of 16th/17th century and thus be immersive and historically corrrect.
 
Last edited:
Hello. Reading this thread inspired me to sign up so i could ask questions about this wonderful mod. Currently im obsessed with the idea of growth in cities being the result of consumed food and maybe domestically sold products. Is this doable within the gamecode as is or is there something making this change completely impossible? The way i imagine this to work out would be that a counter (maybe use the hoverover popup for food needed for growth in the top left of the city screen) keeps track of all consumed food (and maybe also domestic sales) and just pops the unit like normal growth currently when the required amount is consumed. The balancing of growth between small and big cities would be apparent in amount consumed. Anyone have any ideas or thoughts regarding this idea of mine would be greatly appreciated.
 
Hello. Reading this thread inspired me to sign up so i could ask questions about this wonderful mod. Currently im obsessed with the idea of growth in cities being the result of consumed food and maybe domestically sold products. Is this doable within the gamecode as is or is there something making this change completely impossible? The way i imagine this to work out would be that a counter (maybe use the hoverover popup for food needed for growth in the top left of the city screen) keeps track of all consumed food (and maybe also domestic sales) and just pops the unit like normal growth currently when the required amount is consumed. The balancing of growth between small and big cities would be apparent in amount consumed. Anyone have any ideas or thoughts regarding this idea of mine would be greatly appreciated.
I think it's brilliant of course, and completely doable as far as I can see. It just takes a little time to emancipate the food yield from its unholy marriage to the ever nullifying cycles of the abusive population growth thresholds and send her out into the market to be traded; and then create a new yield (perhaps called 'growth') which is dependent on the city food consumption and whatever else.
 
I detest this idea UNLESS demographic info was added to all colonists. The idea is ruined in my mind by the fact that if, for instance, a converted native is educated or learns by doing and becomes a professional colonist, then has kids with another converted native, those kids are magically half white. So long as every professional colonists is European in this calculation the concept is nonsensical to me.
 
I detest this idea UNLESS demographic info was added to all colonists.
So the current implementation of all Colonists being born in the New World being white and free is better? :confused:
See, I am not saying that the current concept is perfect ... but I believe it would be better than what we currently have. :think:

Basically all I want is that the demographics of a colony (Slaves, Free Colonists, Indentured Workers, ...) are somehow also reflected in growth. :dunno:

Also I want to create something that does not go nightmare considering effort to implement and maintain.
(So yes, it most likely needs to simplify a lot of stuff, e.g. like "Experts are European".)

Edit:
The concept is not really about "nationality".
It is more about "born free" vs "born unfree".
 
So the current implementation of all Colonists being born in the New World being white and free is better? :confused:
See, I am not saying that the current concept is perfect ... but I believe it would be better than what we currently have. :think:

Basically all I want is that the demographics of a colony (Slaves, Free Colonists, Indentured Workers, ...) are somehow also reflected in growth. :dunno:

Also I want to create something that does not go nightmare considering effort to implement and maintain.
(So yes, it most likely needs to simplify a lot of stuff, e.g. like "Experts are European".)

Edit:
The concept is not really about "nationality".
It is more about "born free" vs "born unfree".

I would definitely be pro if it was simply talking about free vs unfree. If a colony has a lot of Slaves there should be plenty of Slaves being born. But why make it so that a converted native having kids with a converted native that got educated would create a Mestizo colonist? I might support a complete ethnicity implementation but not a half-done one. The free vs unfree pop creation makes perfect sense - as is I interpret a free colonist as just being any colonist born free regardless of their parents background. Sure the model is white but that's not necessarily the case.
 
Absolutely correct.
In these days, you inherited the "social status" (or debts) from you parents.

If you were born by Slaves you were also a slave by law. "The Sins of the Fathers" was often used as argument to justify that.
Also children of "Indentured Servants" which died before having paid their debts inherited these debts and became also "Indentured Servants".

If you were born by a "mixed marriage" e.g. White Slave Owner and his Black Slave, the White Slave Owner could decide what to do.
He was allowed to give his child freedom and even adopt it if he dared to socially do so. But he could also declare it his property as slave.

And even children of Whites and (free) Natives (called "Mestizos" by the Spanish in these days) were usually not fully equal to Whites.
They often got the worst jobs, were treated poorly by society and thus often had to become "Indentured Servants" to survive.

All laws in that society were made to serve the powerful and rich and to protect and increase their wealth and property.
There was very little possibility to escape poverty and slavery unless a powerful and rich man decided that this is what he wanted.

The concept suggested is generally trying to match reality of 16th/17th century and thus be immersive and historically corrrect.
This seems to heavily focus on the English model of colonization. Spanish, Portuguese and French colonies had a lot less rigid rules and mixing was a lot more common there.

Now sorry I'm not in position to check by myself but have you implemented a slave emancipation process in the first place? Last time I played the game, slaves still served very little gameplay purpose. They produce less than specialists, they constantly flee and there's no way to improve them. As a result, I never use them and when events give me some, I immediately destroy them as they aren't worth the effort.

If other players do use them as they are, then maybe adding such mechanism as proposed in this thread would make sense, but if players don't, then maybe slavery would require being rethought first.
 
Last edited:
... have you implemented a slave emancipation process in the first place?
Yes, we did that years ago already in RaR.
Slaves can become free over time by "Learning by Doing"-SubFeature.
(Through working long enough in a Profession.)

There is e.g. the "Freed Slave" (mechanically like "Free Colonist") which still preserves some of his bonusses for raw materials.
The "Freed Slave" can also become an Expert by LbD just like "Free Colonist".

... slaves serve very little gameplay purpose as it is.
It is a matter of gamestyle and if you know how to exploit the mechanic in terms of scaling.
Slaves are very cheap labour. You could e.g. have 8 Slaves for the price of one normal worker.

Also Slaves have bonusses on raw materials which normal workers (Free Colonists) do not.
So they are often even better workers. Only real experts are better.

Summary:
Slave Strategy can be very very efficient if you play it right simply by the sheer amount of workers you can have.
Also they are better workers than "normal colonists". Only Experts are better for raw materials.

Yes it is annoying that they run away, but the "scaling effect" if you play large is really strong.
Also you can prevent them from running away and they are also going to become free eventually.

----

But yes, there are also strong cons.

1) Slaves Running away to be caught again. --> low XP when recaptured (capped)
2) Slaves Revolting so they have to be destroyed. --> normal XP when destroyed (not capped)

But as I said, these can be countered.
(And might even create XP for your troops.)

----

In other words:
It is about game style and knowing how to use "Slave Strategy".
The "Slave Strategy" has strong pros but also strong cons.

It is a strategy that produces enormous outputs of raw materials.
But you also constantly need to manage and pay attention to it.

"Slave Strategy" is not a beginner strategy or casual player strategy.
It is more of a hard-core role player strategy that wants to min-max.

----

WTP offers many different game strategies.
It is up to you which ones you like or do not like.
But all of them are valid if you know how to use them.

----

Personally I use "Slave Strategy" and have benefited from it.
But I do not focus on it, but use it "opportunistic", when it is offered.
 
Last edited:
Yes, we did that years ago already in RaR.
Slaves can become free over time by "Learning by Doing"-SubFeature.
(Through working long enough in a Profession.)
But does it work? Considering that they constantly flee, doesn't that reinitialize their "LbD" points?


It is a matter of gamestyle and if you know how to exploit the mechanic in terms of scaling.
Slaves are very cheap labour. You could e.g. have 8 Slaves for the price of one normal worker.

Also Slaves have bonusses on raw materials which normal workers (Free Colonists) do not.
So they are often even better workers. Only real experts are better.

Summary:
Slave Strategy can be very very efficient if you play it right simply by the sheer amount of workers you can have.
Also they are better workers than "normal colonists". Only Experts are better for raw materials.

Yes it is annoying that they run away, but the "scaling effect" if you play large is really strong.
Also you can prevent them from running away and they are also going to become free eventually.

----

In other words:
It is about game style and knowing how to use them.
The "Slave Strategy" has strong pros but also strong cons.
Sorry for this very utilitarist conversation, but 8 slaves cost 8 food and require 8 plantations being built to make them work. It takes less time to visit a native village and get a specialist from there. Considering the massive amount of yields produced by a single specialist in a single tile, that's usually already enough to make work all your allowed craftsmen producing manufactured goods in low-level buidlings. And when you get a factory, you usually have the education infrastructure to produce easily new specialists.

Not to mention that having 8 slaves probably mean constantly chasing them. How many guards do you need to keep them in the colony? Don't they cause unrest in a city if they are too numerous?
 
... doesn't that reinitialize their "LbD" points?
Yes, but you can heavily reduce their chances to run away. (e.g. with Traits or Happiness System)
Also "Slave Hunters" will get a promotion to further reduce chances to run away. (New Unit in internal build.)

but 8 slaves cost 8 food and require 8 plantations being built to make them work.
I was talking about the gold to buy them. Not their food upkeep.
But they e.g. also get a bonus on Food production.

Don't they cause unrest in a city if they are too numerous?
No, not directly but they may influence "Happiness" if you have too many in a single City, but there are traits to counter it,
so that your Citizens hardly care about the Slaves anymore.
E.g. Spanish are more tolerant to having Slaves around and there is also a Founding Father for that.

----

Trust me please:
The "Slave Strategy" works, even though it is annoying - which is it supposed to be.
You can generate lots of raw materials with it, but you simply need to work hard for it.

----

"Slave Strategy" is a "mass low quality strategy" that requires lots of effort to play it.
It is not a "convenient high quality strategy" ... and never was supposed to be that.

It is simply not a beginner strategy or casual player strategy.
It is a strategy that needs attention and knowledge how to use it.
 
Last edited:
Trust me please:
The "Slave Strategy" works, even though it is annoying - which is it supposed to be.
You can generate lots of raw materials with it, but you simply need to work hard for it.

----

"Slave Strategy" is a "mass low quality strategy" that requires lots of effort to play it.
It is not a "convenient high quality strategy" ... and never was supposed to be that.
So you keep your slaves untill revolution? At that point I usually end up with over 1000 colonists, and there's no way I would bother about chasing slaves at such a scale. Managing the 10 or so free colonists being generated by city growth at each turn is already enough work as it is.

To go back to the thread topic, slaves already require efforts as you admit yourself, if city growth would generate them instead of free colonists, that would make it even harder to go for that strategy. So gameplay-wise we can interpret that new feature as an extra-deterrent to get slaves. At the very least, you should go for a more "Latin" way and accept all mixed unit as freedman, rather than the "pure blood" English way. Another idea would be to determine this through labor civics, if you still have as project to import them to the game?
 
So you keep your slaves untill revolution?
Yes, a few of them usually.

DLL-Diplo-Events, some Python Events and also defended Native Raids give them or conquerings Natives as well.
But there is of course also Immigration of "Petty Criminals" and "Indentured Servants".

But as I said, I do not focus on them either to play "Slave Strategy" large scale.
If I e.g. have 1000 Colonists in the end, I tend to have about 50 of them to be "Unfree" (Slaves / Criminals / Servants).

Usually I tend to expand "outwards", so my inner large and old cities are "perfected", while my outer small and new Cities are still "in work".
So also my "Slaves" will be found only in my outer small and new Cities, where I also do not mind putting more effort into.

-----

So there is always some of my Colonists not yet "perfected".
(Some "Unfree" have not yet become free and some new ones have arrived.)

What else should I do?
That is normal gameplay in the mod.

For me it is also part of "role playing".
That is something I consider to be fun.

-----

And I still do not understand the problem actually. :dunno:

The mod is not intended to be "casual" all the time.
It is intended to challenge the player and keep him busy.

At the very least, you should go for a more "Latin" way and accept all mixed unit as freedman, rather than the "pure blood" English way.
There already is a difference in the game between those 3 categories:

1) Unfree (African Slaves, Native Slaves, and Petty Criminals)
2) Deprived (Indentured Servants and in the future possibly Mestizos)
3) Free (Free Colonists, Freed Slaves, Converted Natives, ...)

The rest is simply balancing. :)

A feature is never good or bad in general.
Balancing will make the differerence between interesting and annoying.

Also, what I consider fun and interesting, somebody else may consider annoying.
Thus there are the values in "GlobalDefinesAlt.xml" so everybody may balance on his own. :thumbsup:
(e.g. You could strongly reduce the chances of running way or revolting and increase the chances of becoming free.)
 
Last edited:
Yes, a few of them usually.

DLL-Diplo-Events, some Python Events and also defended Native Raids give them or conquerings Natives as well.
But there is of course also Immigration of "Petty Criminals" and "Indentured Servants".

But as I said, I do not focus on them either to play "Slave Strategy" large scale.
If I e.g. have 1000 Colonists in the end, I tend to have about 50 of them to be "Unfree" (Slaves / Criminals / Servants).

Usually I tend to expand "outwards", so my inner large and old cities are "perfected", while my outer small and new Cities are still "in work".
So also my "Slaves" will be found only in my outer small and new Cities, where I also do not mind putting more effort into.
Yeah that's pretty much the same for me and I guess most players considering the massive size of the expeditionary force you need to defeat for independence. The only difference is that I have no slave any longer as I usually destroy them, considering them more as a burden than anything else.

I have a similar problem with treasure chests that are staying in my cities forever because they are worth less than a normal cargo, so it's never interesting to ship them to Europe. Maybe this could be solved in getting rid of the treasure cargo limit on galleons, but maybe that would make treasures too advantageous in early game. It's difficult to say.


There already is a difference in the game between those 3 categories:

1) Unfree (African Slaves, Native Slaves, and Petty Criminals)
2) Deprived (Indentured Servants and in the future possibly Mestizos)
3) Free (Free Colonists, Freed Slaves, Converted Natives, ...)

The rest is simply balancing. :)
Indeed, and gameplay balance was my only concern. The idea that you would grow slaves if you make work slaves sounds logical from a historical point of view. Yet in the game, compared to the current situation in which you only grow free colonists that you can educate as specialists, that's an exra handicap. Personally I don't play the slave strategy so it's not necessarily my concern, I just want to help dig into the idea. :)
 
Indeed, and gameplay balance was my only concern.
Why should there be a problem? :confused:

Most features are optional more or less.
And balancing can always be customized.

Personally I like a bit of "immersion" and also like that the game keeps me busy.
If you just want to play casual empire building without "annoyances" that is of course fine as well.

Everybody could go into GlobalDefinesAlt.xml and balance or even deactivate what he wants.
Nobody forces you to play "default" settings - instead simply configure your own playstyle. :thumbsup:
 
Why should there be a problem? :confused:
All features are optional more or less.

Personally I like a bit of "immersion" and also like that the game keeps me busy.
If you just want to play casual empire building without "annoyances" that is of course fine as well.
What made you think that I would like to play the game "casual"? I've already given you the solution to get rid of the "extra difficulty" about the concept you propose to implement: destroy your slaves to grow free colonists in your cities instead. That's what it risks encouraging the player to do.

Everybody could go into GlobalDefinesAlt.xml and balance or even deactivate what he wants.
Nobody forces you to play "default" settings - configure your own playstyle. :thumbsup:
Thanks for the tip but this won't help solving the issue of the proposed concept.
 
Last edited:
Thanks for the tip but this won't help solving the issue of the proposed concept.
Like always, modding comes down to personal taste and gamestyle. :)

Where you see issues, I see intentional design.
Where you see annoyance I see a bit of diversion and challenge.

Maybe you also have a wrong impression of the current state of "Slavery", since a lot of changes were implemented since RaR.
It is now a more engaging feature than it was in early RaR and also more tied in with systems like e.g. Traits and "Happiness".
(So if you really try to, you can keep the rate of Slaves running away on a reasonable level.)

At the moment there is nobody working on this anyways.
So let us see what will actually get implemented, once somebody decides to invest his effort.
(The person implementing this will also be responsible for the design and first balancing.)

---

Otherwise:
I will be busy for the next months working on "Yields" and even before that we would still have to publish "Plains".
And even once that is done there are still several features that I give much higher priority than this.
(To be honest I have no idea if this feature will actually ever be implemented or not.)
 
Like always, modding comes down to personal taste and gamestyle. :)

Where you see issues, I see intentional design.
Where you see annoyance I see a bit of diversion and challenge.
A drastic change that would make the game both more challenging and more immersive would be that native villages would no longer teach planting experts (sugar, cotton, tobacco, cocoa and coffee). This would incite the player to use slaves for those tasks. And maybe later in the game, specialists could come either after a certain threshold of the ressource being produced triggers an event or another similar mechanism. The production bonus from slaves would then become more attractive as it wouldn't be in competition with specialists from start. Then, your growth mechanism would become a necessary evil for the player.

I'm posting this without being convinced myself it's necessarily a good idea. Probably it would be better to make of it a checkbox option at game start (unchecked by default).
 
Last edited:
Top Bottom