[Mod] True Culture Location and Territory Naming for the Giant Earth Map

I'll try to have a look at the starting position code if I can, to move them closer of "cradle of civilizations" territories, or on them with the "starting outpost" option, but no promise.

nomadic proto-cultures assigned to continents for the AIs to use after some turns instead of the Assyrians would be another possibility.

I also use settings with a relatively low starting number of players (6) allowing more to spawn later from evolving Independent People or splitting Empires.
 
My bad--for whatever reason, I had no selectable cultures for the first x turns despite era stars and an outpost. In the T20s, AI players began adopting the Assyrian culture en masse. At that point, I torched the tribal homeland and found I could be Assyrian too, though I had already trekked over to China.

For what it's worth, I don't mind choosing between the Assyrians and a trek to a major "cradle".

Nomadic proto-cultures would be a step up in complexity, though I'm not sure it really fits into your vision. The Expansionist Bantu would be a great default culture for Africa. Yamnaya and Afanasevo could round out western/eastern Siberia. As for the Americas, I had trouble finding good candidates for the Archaic period.

On a side note, I really enjoy how the Rockies are in Manchuria and the Central Chinese Plain borders Texas on my map.
 
another preview of the city map
Spoiler :
citymap north.jpg

citymap south.jpg
 
New alpha
Code:
- City Map: can import the XML from Civ6 YnAMP for the Giant Earth (City names based on real world position)
- set Continent Names when using the "Generate TCL on any Map" option
- bug fix: should not hang on loading screen when reloading/starting a new game without exiting
- bug fix: unlocking territory for Maasai should now be Kenya, not Corea

You'll need to extract the XML files from the attached CityMap.zip in the "..\Documents\Humankind\Community" folder for the City Map feature to be active. Note that they are the old YnAMP files with just a small typo fix, the schema may change, don't start doing huge change in it yet (but fell free to try if you want to change/fix names/positions)

I need to decide how to deploy the XML, maybe directly with the zipped map instead of a separated download. Could embed it in the DLL, or in an assetbundle, but I'd prefer to keep it accessible for everyone with just a text editor.

edit: outdated files removed
 
Last edited:
Now, 2 questions:

1/ do we want to have different names per era ?

2/ before answering yes to 1/, would you participate in creating the required file for the CityName DB ? :o

Technically, I can use the current list as backup when a fitting "per era" name is not available in a territory, so that "per era" list could be made gradually.
 
Is the plan to have them be culture-based? If so, then you could probably minimize the amount of things needed for era-based names, I'd imagine
 
Ho, yes, we can determine era based on culture. I'm still unsure on the naming rules and data formatting.
 
Now, 2 questions:

1/ do we want to have different names per era ?

2/ before answering yes to 1/, would you participate in creating the required file for the CityName DB ? :o

Technically, I can use the current list as backup when a fitting "per era" name is not available in a territory, so that "per era" list could be made gradually.

Would option 2 involve brainstorming sequences like Memphis-?-Fustat-Cairo or going through YnAMP files, for instance, to find/transfer city names?
 
Would option 2 involve brainstorming sequences like Memphis-?-Fustat-Cairo or going through YnAMP files, for instance, to find/transfer city names?
That's part of the question about the naming rules and data formatting.

The basic rules would be
  1. if it exists for that culture, use culture-based name
  2. else if exists use era-based name (but the culture's era, the game's era or the player's era if he has transcended ?)
  3. else use generic (modern) name (basically the current YnAMP file, minus civ-related name embedded in the local name)
Now that SeelingCat reminded me, we can use a culture-based name for another culture at check 2.

Then no need to fill data for era-based name when a culture-based name exists, as it would be the same in most cases... but how to determine the name if a city had a different name in the same era for two different cultures, and it's a third unrelated culture that settles the plot ?
 
Then there are era-changing and capture rules.
 
Now thinking of a settlement made on modern Kaliningrad position with Teutons, Poles, Germans, Russians, Soviets cultures and imagining another culture settling/capturing that position in various eras.
 
The basic rules would be
  1. if it exists for that culture, use culture-based name
  2. else if exists use era-based name (but the culture's era, the game's era or the player's era if he has transcended ?)
  3. else use generic (modern) name (basically the current YnAMP file, minus civ-related name embedded in the local name)

First off, happy to help, whatever ends up being required here.

If the culture transcends, my sense is it would continue to use Rule 1. I suppose Rule 2 exists to stop modern names from popping up before their time.

Then no need to fill data for era-based name when a culture-based name exists, as it would be the same in most cases... but how to determine the name if a city had a different name in the same era for two different cultures, and it's a third unrelated culture that settles the plot ?

Perhaps this defaults to a colonial model: if a culture settles outside of its cultural territory (where Rule 1 applies), then it can default to some form of colonial name generation like the Phoenicians, Greeks, or modern colonial powers. It could be taking the word "New" from the target culture's language and then referencing an existing city.
 
rule 1 would always take precedence over the other, if we're looking at era, it would be for a territory outside the culture's own city list.

I was wondering if an ancient era culture that has transcended up to medieval should use a medieval name or an ancient name when rule 1 can't apply.

but thinking of it again, I should use the latest possible era (to prevent strange renaming on capture when rule 1 can't apply)

combined name is a good idea but technically more difficult as the game refers to the locale name key in the city information, not the translated names (ie what's stored in the saved game is "LOC_CITY_NAME_ROME", not "Rome" or a custom name)
 
Ah, OK. Yes, I think whatever era the transcending culture is in would determine the era of the Rule 2 name.

And yes, I more or less intuited as much afterwards, as I ran some confusing mental calculations for how the game would determine gender in other languages...

In that case, how would you feel about a separate colonial list? I'm a bit wary at the thought of producing a list of colonies for every culture and then names for those colonies were they to be taken over by any other culture for whom that territory did not fall under Rule 1. But I do like the idea of artificial names (e.g. New York) signifying expansion beyond Rule 1, at least under some circumstances.

A question that occurred to me: would the name follow from the culture that occupies it, or the cultural identity of the territory, e.g. Port-Artur vs. Dàlián?
 
In that case, how would you feel about a separate colonial list? I'm a bit wary at the thought of producing a list of colonies for every culture and then names for those colonies were they to be taken over by any other culture for whom that territory did not fall under Rule 1. But I do like the idea of artificial names (e.g. New York) signifying expansion beyond Rule 1, at least under some circumstances.
I don't understand, how would that list work?

A question that occurred to me: would the name follow from the culture that occupies it, or the cultural identity of the territory, e.g. Port-Artur vs. Dàlián?
occupies, as per rule 1. (edit: or maybe I've not understood that one too)
 
@SeelingCat I should still be able to use the localization trick for culture naming ("LOC_CITY_NAME_ROME" -> "LOC_CITY_NAME_ROME_AncientGreece"/"LOC_CITY_NAME_ROME_RomanEmpire"/"LOC_CITY_NAME_ROME_Italy") and also determine eras name based on that (cross referencing the culture definition).

Problem being that we currently have "LOC_CITY_NAME_ROME_GREECE"/"LOC_CITY_NAME_ROME_ROME"

So I don't know what's best for formatting

1/
Code:
<Data>
    <Map Name="GiantEarth" MapTerritoryHash="-819807177,-288044546" LoadOrder="1"/>
    <CityMap>
        <Row LocaleName="LOC_CITY_NAME_ROME" X="20" Y="58" />
    </CityMap>
    <LocalizedText>
        <Row Text="Rome"   Tag="LOC_CITY_NAME_ROME"             />
        <Row Text="Rómi"   Tag="LOC_CITY_NAME_ROME_AncientGreece"             />
        <Row Text="Rómi"   Tag="LOC_CITY_NAME_ROME_MycenaeanCivilization"             />
        <Row Text="Roma"   Tag="LOC_CITY_NAME_ROME_RomanEmpire"             />
        <Row Text="Roma"   Tag="LOC_CITY_NAME_ROME_Italy"             />
    </LocalizedText>
</Data>

2/
Code:
<Data>
    <Map Name="GiantEarth" MapTerritoryHash="-819807177,-288044546" LoadOrder="1"/>
    <CityMap>
        <Row LocaleName="LOC_CITY_NAME_ROME" X="20" Y="58" />
        <Row LocaleName="LOC_CITY_NAME_ROMA" X="20" Y="58" Civilizations="Civilization_Era2_RomanEmpire, Civilization_Era5_Italy"/>
        <Row LocaleName="LOC_CITY_NAME_ROMI" X="20" Y="58" Civilizations="Civilization_Era2_AncientGreece, Civilization_Era1_MycenaeanCivilization"/>
    </CityMap>
    <LocalizedText>
        <Row Text="Rome"   Tag="LOC_CITY_NAME_ROME"             />
        <Row Text="Rómi"   Tag="LOC_CITY_NAME_ROMI"             />
        <Row Text="Roma"   Tag="LOC_CITY_NAME_ROMA"             />
    </LocalizedText>
</Data>
 
Now let say a classical culture that is none of the already defined culture for Rome settle on that position, what available name should it use ?
 
I don't understand, how would that list work?


occupies, as per rule 1. (edit: or maybe I've not understood that one too)

Imagine the scenario where the Mauryans somehow are the first to settle X="20" Y="58" way beyond where Rule 1 applies for them. We could give them an artificial name like "New Mathurā" to signify they are out-of-place. This would require an "out-of-place" city list for each culture, which is what I meant by a colonial list.

I think you catch the meaning, but to apply it to this scenario: If the Romans had settled Roma, and the Persians occupied the city in war, but the city retained Roman culture, would it default to a Persian name for Rome or keep Roma?
 
I'd say just have it use a standard or "base" form of the name for those without culture-defined names, which I suppose could either be the English name or the local form (Rome v Roma).

I think the first one of your options looks preferable Gedemon, it seems easier to automate its creation potentially.
 
Imagine the scenario where the Mauryans somehow are the first to settle X="20" Y="58" way beyond where Rule 1 applies for them. We could give them an artificial name like "New Mathurā" to signify they are out-of-place. This would require an "out-of-place" city list for each culture, which is what I meant by a colonial list.
I'd prefer to avoid names unrelated to the position for that mod's scope.

But culture-related doesn't mean "culture territories" related, if I understand correctly what you call colonial list could be the culture-related names that are already in the YnAMP's list for cities that have never been under control of a civilization, but for which "what if" were added.

for example, from YnAMP's list:
Spoiler :

Code:
<Replace Tag="LOC_CITY_NAME_CADIZ_JAPAN" Text="Kadisu" Language="en_US" />
<Replace Tag="LOC_CITY_NAME_LISBOA_JAPAN" Text="Risubon" Language="en_US" />
<Replace Tag="LOC_CITY_NAME_MADRID_JAPAN" Text="Madorido" Language="en_US" />
<Replace Tag="LOC_CITY_NAME_PARIS_JAPAN" Text="Pari" Language="en_US" />
<Replace Tag="LOC_CITY_NAME_ROME_JAPAN" Text="Rōma" Language="en_US" />
<Replace Tag="LOC_CITY_NAME_ABERDEEN_JAPAN" Text="Abadin" Language="en_US" />
<Replace Tag="LOC_CITY_NAME_BIRMINGHAM_JAPAN" Text="Bamingamu" Language="en_US" />
<Replace Tag="LOC_CITY_NAME_BRIGHTON_JAPAN" Text="Buraiton" Language="en_US" />
<Replace Tag="LOC_CITY_NAME_BRISTOL_JAPAN" Text="Burisutoru" Language="en_US" />
<Replace Tag="LOC_CITY_NAME_CAERNARFON_JAPAN" Text="Kanavuon" Language="en_US" />
<Replace Tag="LOC_CITY_NAME_CAMBRIDGE_JAPAN" Text="Kemburijji" Language="en_US" />
<Replace Tag="LOC_CITY_NAME_CANTERBURY_JAPAN" Text="Kantaberi" Language="en_US" />
<Replace Tag="LOC_CITY_NAME_CARDIFF_JAPAN" Text="Kadifu" Language="en_US" />
<Replace Tag="LOC_CITY_NAME_CARLISLE_JAPAN" Text="Karairu" Language="en_US" />
<Replace Tag="LOC_CITY_NAME_CARMARTHEN_JAPAN" Text="Kamazen" Language="en_US" />
<Replace Tag="LOC_CITY_NAME_DUMFRIES_JAPAN" Text="Danfurizu" Language="en_US" />
<Replace Tag="LOC_CITY_NAME_DUNDEE_JAPAN" Text="Dandi" Language="en_US" />
<Replace Tag="LOC_CITY_NAME_EDINBURGH_JAPAN" Text="Edinbara" Language="en_US" />
<Replace Tag="LOC_CITY_NAME_EXETER_JAPAN" Text="Ekuseta" Language="en_US" />
<Replace Tag="LOC_CITY_NAME_GLASGOW_JAPAN" Text="Gurasugo" Language="en_US" />
<Replace Tag="LOC_CITY_NAME_GLOUCESTER_JAPAN" Text="Gorusuta" Language="en_US" />
<Replace Tag="LOC_CITY_NAME_INVERNESS_JAPAN" Text="Invuanesu" Language="en_US" />
<Replace Tag="LOC_CITY_NAME_LANCASTER_JAPAN" Text="Rankasuta" Language="en_US" />
<Replace Tag="LOC_CITY_NAME_LERWICK_JAPAN" Text="Rauikku" Language="en_US" />
<Replace Tag="LOC_CITY_NAME_LINCOLN_JAPAN" Text="Rinkan" Language="en_US" />
<Replace Tag="LOC_CITY_NAME_LIVERPOOL_JAPAN" Text="Ribapuru" Language="en_US" />
<Replace Tag="LOC_CITY_NAME_LONDON_JAPAN" Text="Rondon" Language="en_US" />
<Replace Tag="LOC_CITY_NAME_MANCHESTER_JAPAN" Text="Manchesuta" Language="en_US" />
<Replace Tag="LOC_CITY_NAME_NEWCASTLE_UPON_TYNE_JAPAN" Text="Nyukassuru" Language="en_US" />
<Replace Tag="LOC_CITY_NAME_NORWICH_JAPAN" Text="Noritchi" Language="en_US" />
<Replace Tag="LOC_CITY_NAME_NOTTINGHAM_JAPAN" Text="Nottingamu" Language="en_US" />
<Replace Tag="LOC_CITY_NAME_OXFORD_JAPAN" Text="Okkusufodo" Language="en_US" />
<Replace Tag="LOC_CITY_NAME_PLYMOUTH_JAPAN" Text="Purimasu" Language="en_US" />
<Replace Tag="LOC_CITY_NAME_READING_JAPAN" Text="Redingu" Language="en_US" />
<Replace Tag="LOC_CITY_NAME_SALISBURY_JAPAN" Text="Soruzuberi" Language="en_US" />
<Replace Tag="LOC_CITY_NAME_SOUTHAMPTON_JAPAN" Text="Sausanputon" Language="en_US" />
<Replace Tag="LOC_CITY_NAME_WORCESTER_JAPAN" Text="Usuta" Language="en_US" />
<Replace Tag="LOC_CITY_NAME_YORK_JAPAN" Text="Yoku" Language="en_US" />
<Replace Tag="LOC_CITY_NAME_BELFAST_JAPAN" Text="Berufasuto" Language="en_US" />
<Replace Tag="LOC_CITY_NAME_DUBLIN_JAPAN" Text="Daburin" Language="en_US" />
<Replace Tag="LOC_CITY_NAME_REYKJAVIK_JAPAN" Text="Reikyabiku" Language="en_US" />
<Replace Tag="LOC_CITY_NAME_GOETEBORG_JAPAN" Text="Ietebori" Language="en_US" />
<Replace Tag="LOC_CITY_NAME_STOCKHOLM_JAPAN" Text="Sutokkuhorumu" Language="en_US" />
<Replace Tag="LOC_CITY_NAME_AMSTERDAM_JAPAN" Text="Amusuterudamu" Language="en_US" />
<Replace Tag="LOC_CITY_NAME_BERLIN_JAPAN" Text="Berurin" Language="en_US" />
<Replace Tag="LOC_CITY_NAME_ZURICH_JAPAN" Text="Churihi" Language="en_US" />
<Replace Tag="LOC_CITY_NAME_ATHENS_JAPAN" Text="Atene" Language="en_US" />
<Replace Tag="LOC_CITY_NAME_ISTANBUL_JAPAN" Text="Isutamburu" Language="en_US" />
<Replace Tag="LOC_CITY_NAME_KIEV_JAPAN" Text="Kiu" Language="en_US" />
<Replace Tag="LOC_CITY_NAME_MOSCOW_JAPAN" Text="Mosukuwa" Language="en_US" />
<Replace Tag="LOC_CITY_NAME_ST_PETERSBURG_JAPAN" Text="Sankuto Peteruburuku" Language="en_US" />
<Replace Tag="LOC_CITY_NAME_JERUSALEM_JAPAN" Text="Erusaremu" Language="en_US" />
<Replace Tag="LOC_CITY_NAME_MECCA_JAPAN" Text="Mekka" Language="en_US" />
<Replace Tag="LOC_CITY_NAME_MUSCAT_JAPAN" Text="Masukatto" Language="en_US" />
<Replace Tag="LOC_CITY_NAME_RIYADH_JAPAN" Text="Riyado" Language="en_US" />

I think you catch the meaning, but to apply it to this scenario: If the Romans had settled Roma, and the Persians occupied the city in war, but the city retained Roman culture, would it default to a Persian name for Rome or keep Roma?
Yep, that the kind of question we need to answer if the code logic doesn't give us something we want.

In case of capture, renaming would be done after the war's resolution, and the mod would use owner, not culture influence (when renaming the mod will look at the best name for that position and that owner, without knowing who was the ancient owner, ie applying rules 1-2-3 in order)

I'd say just have it use a standard or "base" form of the name for those without culture-defined names, which I suppose could either be the English name or the local form (Rome v Roma).

I think the first one of your options looks preferable Gedemon, it seems easier to automate its creation potentially.
By local, you mean historical territory ?

I think for rule #2 I will cross-check with the territory list of known Cultures for TCL anyway, I can see strange stuff happening else.

I'll use the first formatting then.

What about aliases, for sharing list ? A rules 1.1, if no direct culture-related name is found, try to found one from a list of other cultures before moving to rules 2-3 ?

For example "Civilization_Era4_TokugawaShogunate" could share the "_JAPAN" tag from the list above with "Civilization_Era6_Japan"

Then if "Edo Japan" settle in Novogardia, the mod will find the locale key "LOC_CITY_NAME_ST_PETERSBURG" and try to apply the rules:
  1. check if "LOC_CITY_NAME_ST_PETERSBURG_TokugawaShogunate" exists
    1. 1 else check if "LOC_CITY_NAME_ST_PETERSBURG_JAPAN" exists
  2. else loop potential names for other cultures and select "LOC_CITY_NAME_ST_PETERSBURG_RussianEmpire" ("Sankt-Peterburg") closest match fitting Era/Territory rule (territory check here would prevent using "San Petersburgo" from HK Spain that match "Edo Japan" era)
 
Last edited:
Back
Top Bottom