Skip to content
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

On slave generation #229

Open
Zemurin opened this issue Dec 7, 2022 · 2 comments
Open

On slave generation #229

Zemurin opened this issue Dec 7, 2022 · 2 comments
Labels
enhancement New feature or request

Comments

@Zemurin
Copy link
Member

Zemurin commented Dec 7, 2022

Elfangor567 — Today at 02:19
So, the system:
Convert what we have (mostly vanilla stuff), it will be treated similar to culture conversion, with vic3slave, eu4, eu4group, region and religion returning. The EU4 / EU4group will be the master culture(s) such as American, French, etc. Religion will be exclusive here, not inclusive. So religion = muslim, means that the slaves themselves cannot be muslim (to represent religious slavery, which was rare in Europe/Americas but common elsewhere)
The formula for population in the New World will be set in a configurables folder, but the numbers seem fine.

Now, for where we change it up a little. For every other culture, we auto-generate the slave cultures, and that auto-generation will change depending on where the master culture is from.
Europeans are easy, slaves will be African as is historical, and will be auto-generated as "Afro-Culture", whether that be "Afro-Russian" or "Afro-Franco-Swabian".
In European countries themselves, assuming slavery is not banned, a smaller number of those slaves should be added to the mainland. Exact formula to be in configurables like the other formula. (Essentially, Homeland vs. Colonial)
Now, it gets more tricky once we get other places involved. What do we do with a African or Asian nation that has colonized?
Elfangor567 — Today at 02:31
We may need to break it up by region. West/North Africans would use European slaves (Euro-Culture), Central/South Africa would use a combination of European and Middle Eastern Slaves, and East Africa would use a combination of Middle East and Indian slaves, etc. Should also likely be a configurable file. (We may need a slavery configurable folder at this point, since there at least 3 files here)

Like with Europe, small numbers of slaves would end up in the homeland, assuming the nation in question has slavery and owns colonies/trade companies on other continents.
Additionally, non-piratical nations that have not banned slavery, have raiding and own a coastline should start the game with a number of slave pops that represent captured peoples in raids.
This is a lot, so let's break it down by file:

  1. slave_culture_mapping: Maps pre-defined slave cultures based on master culture/religion and slave location
  2. slavery_population_formulas: Formulas that define the numbers of slaves that appear in specific regions (thus weighting the Indies much higher than mainland North America)
  3. slavery_region: Defines who gets what type of slaves, allowing for alt-history scenarios where non-European nations colonize.
    The hardest part I can think of is religion, as who knows what the religions of the world will look like by this point! You can say religion_group = muslim to exclude muslims easy, but what religion are those Europeans? Druidic? Catholic? Protestant?
    May be easiest(!?) to take a survey of Continent's religions, then either take the most populous or make each pop a random religion with the chances based upon the survey. (Fallback of animism and super-fallback of catholic in case animism is excluded since I cannot think of a scenario where both those religions would be excluded without serious interference by a player in the configurables, in which case they asked for it.)
@Zemurin
Copy link
Member Author

Zemurin commented Jan 19, 2023

Iohannes — Today at 01:24
These Afro- cultures are meant to represent the result of the slave trade triangle in the Americas, not for slaves in each and every part of the world (so they would apply only in the continent of America)
About random African culture as fallback for slaves... I am not sure how to restrict it. Maybe we could find the lowest ranked (civilized or decentralized) neighbour of the tag and thus use it as output (e.g. Slaves in English Lancashire are Tswana, because Tswana, neighbour of Britain, is the ranked #205 among all countries in the world; Russian Tver would have Circassian slaves, because Circassia, neighbour of Russia, is ranked #55)
This is because Africans do not always make sense for old world slaves
I know this is extremely complex as a proposal and is going to be a pain in the arse to implement with Vic3 deciding to overrule our pop scenario history
In the most absurd case the country has no neighbour, use primary culture of that country (Formosan Formosa has Formosan slaves because Formosa has no neighbours and Formosa is homeland to the Formosans only)

Summarized for slaves:

  1. Is it in the American continent? If yes:
    A. Is there a set African hybrid culture? Use it
    B. Is there none? Use other rules (In the future, dynamically generate it)
  2. Is the state they are in homeland to a culture discriminated by the owner? If yes, have slaves be of that culture
  3. What is the worst performing country (centralized or not) neighbour of the owner? Set slaves to the primary culture of said neighbour
  4. All of this failing, just use the owner's primary culture

When it comes to religion:
For points 1, 2, 4, same religion as the rest of the province; for point 3, use religion of said neighbour country (Sunni Circassian slaves in Russian Tver, Pagan Sudanese slaves in Egyptian Alexandria, etc.)

Iohannes — Today at 02:00
In the meanwhile, I add that Jewish minorities should not be output if Israel exists as tag in conversion and/or the state of Palestine is calculated to be homeland to Hebrews. The rationale of this is that the Jewish diaspora would have been thus already "reversed" and local Jewish minorities would be so small to be considered as negligible for gameplay (as Volga Germans are); if not, we may eventually decide to calculate their distribution because their diaspora is driven by anti-Semitic persecutions defining where they would settle and where not (easily seen by comparing a map of Jewish presence in Europe the 19th century and one of where Jews were authorized to live in the 16th century)

@Zemurin
Copy link
Member Author

Zemurin commented Jan 19, 2023

Then forget all I said about random slave generations
New ruleset:

  • If parent culture is an animal culture or the Aliens, kill all slaves
  • If parent culture has European heritage:
    -- If parent culture has a defined African hybrid, use it
    -- If not, generate it (in the future; extemporaneously, we'll just make them all Somali)
  • If parent culture has Middle Eastern heritage, set slaves to be the same culture as those found in Athens or Sicily
  • Otherwise, see above my thing about the lowest ranking neighbour and, failing this, primary culture
    The rationale about animal culture is that sentient animals having humans as slaves would be that the culture of such humans would be impossible to predict safely, if even considered human by the rest of the world; whereas for Aliens, well, why would aliens keep humans if they have phantasmagorical machines that can plough fields and extract ores?

MrKinich — Today at 15:16
Counterpoint for Aliens: you can keep organic slaves in Stellaris even if you have robots.

Iohannes — Today at 15:59
Hmm, then aliens are easy:

  • Set 75% of the state as slaves (EU4 cultures do not have aliens, so you'll have French slaves in France, Russian slaves in Russia, etc.)
  • Rewrite the remaining 25% to be aliens
    This, and also converting the country's primary culture to alien, is a hard-coded exception for the EU4 tag SYN that can be easily coded in then

@Zemurin Zemurin added the enhancement New feature or request label Apr 26, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant