YnAMP sub-project: True location corresponding city names

I'll go for Greece, because there are less naming disputes (such as what to do about Egypt, which has both Cleopatra's Ancient/Ptolemaic Egypt and Saladin's Arabic Egypt starting there :crazyeye:).
yeah, we should probably move Arabia somewhere to the middle east at some point... I will add this to the to do list of the project status (post not done yet).

Since Greece's leaders are both from the classical era I'll go for classical Greek city names rather than modern ones - e.g. "Knossos" instead of "Heraklion". Also will use their English name rather than romanized Greek, so "Corinth", not "Korinthos", in keeping with Firaxis' naming logic (or in some cases apparent lack of :lol:).
About the english names: yes, that's the best approach for now. About the classical names: You can do that, but we are already working on civ-specific names. Right now we need to figure out the best approach to the coding so someone who is looking into the code will still make sense of it :lol:. I would suggest the following approach: If you really want to do the classic names first (I don't blame you, can't wait to play Romans with ancient named cities!) make a comment in the code so that we know that this part will need to be converted to our final approach of civ-specific city names. Also it would be great if you could still provide the todays names. Easiest way would be to place them in a comment at the end of the line. That way it will make it easier to refactor the code later.

The area I'll be working on is Greece and Aegean islands up to and including Y=32 latitude.
Can't wait to get my hands on that :smoke:
 
Yeah I can imagine. That's why I do not want to rush it. My biggest concern is to keep the code readable. For starters, I'd suggest to switch the civ-attribute behind the name.

So instead of:
Code:
        <Replace MapName="PlayEuropeAgain" X="50" Y="31" CityLocaleName="LOC_CITY_NAME_BARI" Area="0"/>
        <Replace MapName="PlayEuropeAgain" X="50" Y="31" Civilization="CIVILIZATION_GREECE" CityLocaleName="LOC_CITY_NAME_BARI_GR" Area="0" />
        <Replace MapName="PlayEuropeAgain" X="50" Y="31" Civilization="CIVILIZATION_ROME" CityLocaleName="LOC_CITY_NAME_BARI_RM" Area="0" />

write it down this way:

Code:
        <Replace MapName="PlayEuropeAgain" X="50" Y="31" CityLocaleName="LOC_CITY_NAME_BARI" Area="0"/>
        <Replace MapName="PlayEuropeAgain" X="50" Y="31" CityLocaleName="LOC_CITY_NAME_BARI_GR" Area="0" Civilization="CIVILIZATION_GREECE" />
        <Replace MapName="PlayEuropeAgain" X="50" Y="31" CityLocaleName="LOC_CITY_NAME_BARI_RM" Area="0" Civilization="CIVILIZATION_ROME" />

Also, you said something about splitting it up in different files. Like making a city map xml for every civ? so instead of having the three lines above in the map.xml, we would end up with the default mapping in the map xml and the _GR and _RM mappings in seperate files?
The result of my thinking : better use both methods, I'll adapt the code.

First method is the one already existing, using the <Civilization> tag in the <CityMap> table, the order of the attributes can be changed there without any problem. And yes, you can have separate files for each Civilization, they just need to be correctly referenced in the .modinfo file to update the database.

The main advantage of this method is to allow someone to create a CityMap for any Civilization he want (including custom civilizations) by just looking at the map coordinate without having to cross-reference with the default city name, which may not exist in some cases.

We can use any convention for city naming here like "LOC_CITY_NAME_BARI_GR" and "LOC_CITY_NAME_BARI_RM", but we may want to follow the naming of the other method.

The other method is to simply append the complete Civilization suffix to the "default" city name (in your example that would mean "LOC_CITY_NAME_BARI_GREECE") in a new translation entry in the localization table. But please let me test the code before, I don't know ATM if it could work as intended.

It's big advantage is that anyone knowing the standard CityMap can create a Civilization-specific CityMap relatively fast, and that if the city position has to be moved because of a change on the map or to correct a misplacement, only one entry will have to be modified.

yeah, we should probably move Arabia somewhere to the middle east at some point... I will add this to the to do list of the project status (post not done yet).
I've already moved Arabia TSL to Mecca in a previous update on GitHub, because Egypt hadn't enough room for a second city.
 
I've already moved Arabia TSL to Mecca in a previous update on GitHub, because Egypt hadn't enough room for a second city.
well, good that the code I was checking the start location was actually from a file I am not working on, otherwise my base would've been outdated :lol:

The main advantage of this method is to allow someone to create a CityMap for any Civilization he want (including custom civilizations) by just looking at the map coordinate without having to cross-reference with the default city name, which may not exist in some cases.
yeah, really good point!

And yes, you can have separate files for each Civilization, they just need to be correctly referenced in the .modinfo file to update the database.
ok, i like the idea of getting the civ-specifics into seperate files. so we might want to adapt the file structure here? from "-master\Gameplay\" to for example "-master\Gameplay\Map_PlayEuropeAgain\CityMap_Romans.xml". Is it ok for the file to just containing the CityMap tag and leaving everything else about the map outside (so you don't have to correct start position in 10 files if this happens for example)?

The other method is to simply append the complete Civilization suffix to the "default" city name (in your example that would mean "LOC_CITY_NAME_BARI_GREECE") in a new translation entry in the localization table. But please let me test the code before, I don't know ATM if it could work as intended.
yeah, that was my first thought. crossing fingers that this method works :)

First method is the one already existing, using the <Civilization> tag in the <CityMap> table, the order of the attributes can be changed there without any problem.
ok so if the method you want to test doesn't work we have this fallback. And, if I understand it correctly, this part with the civilzation can actually be moved into a seperate file. so we don't end up having like probably four or five lines for the same tile in the map xml.
 
Huh? None, this is how the original minimap looks like... Does yours look differently?
Huh, weird. Mine looks awful:
Spoiler :
minimap.png

I guess it is just another reminder that my graphics card is 5 years old and still prefers Civ V...
 
yeah, we should probably move Arabia somewhere to the middle east at some point... I will add this to the to do list of the project status (post not done yet).
I've already moved Arabia TSL to Mecca in a previous update on GitHub, because Egypt hadn't enough room for a second city.
Mecca is a pretty inhospitable location for a civ to start on, and is still very close to Egypt. I was going to suggest Damascus once we have the true name locations for that area, as that way Arabia can go north into eastern Anatolia, which is a pretty empty area otherwise.
 
Last edited:
I have completed Greece and Aegean (including some surrounding areas) for the modern real names and also Classical era Greek names. See files attached.

Let me know if anything is incorrect, I've done two playtests, one for modern names and one for the classical names. It seems to work :)

modern names:

upload_2016-11-24_23-39-13.png




classical greece
upload_2016-11-24_23-42-3.png
 

Attachments

  • Classical_Greece_Text.xml
    4.4 KB · Views: 201
  • Classical_Greece_XY.xml
    9.4 KB · Views: 215
  • Modern_Greece_Text.xml
    5 KB · Views: 201
  • Modern_Greece_XY.xml
    9.4 KB · Views: 196
That looks pretty good, brick623! Might I suggest that we implement the modern name-set as the default, and use the ancient names for the Greek civ? Obviously we cannot use both simultaneously...
 
Mecca is a pretty inhospitable location for a civ to start on, and is still very close to Egypt. I was going to suggest Damascus once we have the true name locations for that area, as that way Arabia can go north into eastern Anatolia, which is a pretty empty area otherwise.
I like the Damascus idea. You gonna end up with Egypt and Sumer around you and you can expand into Anatolia as you mentioned... How about that: Go do a 150 turns game on a decent level (King or above) with those starting locations. You can edit the starting location of Arabia in the "Map_PlayEuropeAgain.xml", its pretty much right at the top of the file. Just adjust the X and Y values for a place that fits damascus and then run a real game for 150 turns. If you feel like it's acceptable to play there (enough resources, enough fresh water, enough space to found more that 2 cities before the AI spams the area, then I think we can switch Arabia to this location. According to my quick research on Saladins history, he actually went for Damascus after taking reign over Egypt. So even from a historic point it's not that devious to place him in Damascus.

That looks pretty good, brick623! Might I suggest that we implement the modern name-set as the default, and use the ancient names for the Greek civ? Obviously we cannot use both simultaneously...
Yeah, Gedemon is figuring out the best approach on the civ-specific names. I think we will have a solid statement about how to proceed on this so we can get the civ-specific names in soon.

I have completed Greece and Aegean (including some surrounding areas) for the modern real names and also Classical era Greek names. See files attached.

Let me know if anything is incorrect, I've done two playtests, one for modern names and one for the classical names. It seems to work :)
Nice, looks pretty cool! Thx for the work on the classical and modern names. One think I'd like to ask you for: Could you check if you can give the most "important" citites of greece a few more tiles (as far as i see you have all tiles with 0 range and most cities have only 1 tile). For example: Heraklea and Larissa are next to each other, would it be viable to sacrifice Larissa for 1 more Heraklea tile? You know, just check for some cities that you could imagine a player might be more delight to found on a specific tile. Geography is important, but it shouldn't be the one and only rule in city name placing. Keep the future players of this mod in mind. (Or is it for example that there is definetly no Herakleia after the river makes a turn, so it would be definetly weird to have Herakleia on the Larissa tile). I don't telling you to change anything, just to check it with an other perspective in mind. Perhaps there are a few tiles you would think of it's a good idea to adjust and give it up to more "important" cities.

We are figuring out the best approach for the civ-specific names right now. We already have an option how to get them in but Gedemon is testing some stuff the next days and can give us clarification on that issue. Until then, you can check in the modern names into the files for Gedemon to add them to the source code master (check the manual in this thread on how to do so). Our defaults are the modern names for every tile. Soon, we will add the civ-specific names (like your classical greek names). There is already stuff from tomaltachpaulson waiting for being added. He made ancient roman and greek names for Italy. Gonna add up perfectly with your classical Greece names.
 
I will merge brick623's work into the mod tonight and then change the file structure, if you have any change pending, I'd suggest to push it before I start moving files around.
 
Nice, looks pretty cool! Thx for the work on the classical and modern names. One think I'd like to ask you for: Could you check if you can give the most "important" citites of greece a few more tiles (as far as i see you have all tiles with 0 range and most cities have only 1 tile). For example: Heraklea and Larissa are next to each other, would it be viable to sacrifice Larissa for 1 more Heraklea tile? You know, just check for some cities that you could imagine a player might be more delight to found on a specific tile. Geography is important, but it shouldn't be the one and only rule in city name placing. Keep the future players of this mod in mind. (Or is it for example that there is definetly no Herakleia after the river makes a turn, so it would be definetly weird to have Herakleia on the Larissa tile). I don't telling you to change anything, just to check it with an other perspective in mind. Perhaps there are a few tiles you would think of it's a good idea to adjust and give it up to more "important" cities.

The method I used was to assign every tile a city name, so in the XY code range=0 for all entries. Greece is small and dense enough to do this, I certainly wouldn't use this method in Russia! The important cities have multiple entries, so for example Sparta has 3, Athens has 2 (otherwise the geography looks weird), Thessalonica 2, etc.

We are figuring out the best approach for the civ-specific names right now. We already have an option how to get them in but Gedemon is testing some stuff the next days and can give us clarification on that issue. Until then, you can check in the modern names into the files for Gedemon to add them to the source code master (check the manual in this thread on how to do so). Our defaults are the modern names for every tile. Soon, we will add the civ-specific names (like your classical greek names). There is already stuff from tomaltachpaulson waiting for being added. He made ancient roman and greek names for Italy. Gonna add up perfectly with your classical Greece names.

Understood, its best to use same logic, I will focus on modern names in other areas. I just felt compelled to add the classical names in this case :).

I will merge brick623's work into the mod tonight and then change the file structure, if you have any change pending, I'd suggest to push it before I start moving files around.

Please do, I haven't figured out how to merge it myself yet.

I will start on another area. I was thinking the Balkans north of Greece up to (and including) Y=42 between Adriatic Sea and the Danube Delta.
 
The method I used was to assign every tile a city name, so in the XY code range=0 for all entries. Greece is small and dense enough to do this, I certainly wouldn't use this method in Russia! The important cities have multiple entries, so for example Sparta has 3, Athens has 2 (otherwise the geography looks weird), Thessalonica 2, etc.
ok, thx for the insight :) and yeah, the few greek tiles really makes it a lot 0 range names. Kinda like in Italy and partially in England. So far I was able to use 1 range tiles mostly Spain, France, Germany and Scandinavia.

Understood, its best to use same logic, I will focus on modern names in other areas. I just felt compelled to add the classical names in this case :).
I totally get you. I would have added earlier era names myself, but my first priority was to get the mapping up and running. now that it starts to roll, we can take care of all the really fancy stuff :thumbsup:
modern names are gonna be our defaults, and the civ-specifics will go into seperate files I guess (gonna wait for Gedemon to refactor the code).

Please do, I haven't figured out how to merge it myself yet.
but I made a manual on that :undecide: (it will most likely gonna change a little bit once I see the new file structure)

I will start on another area. I was thinking the Balkans north of Greece up to (and including) Y=42 between Adriatic Sea and the Danube Delta.
ok, go for it! thx for your contribution!
 
So, I'd like to hear the communitys oppinion on the following issue: So far the german city names are the modern one. But even if it's not about the Roman names for some cities (like Mainz and Cologne for example), over the hundrets of years the names slightly changed. There was a time where Cologne was not being written "Köln" but "Cölln" for example. Now I'm not sure... should I do a historic nameset for Germany? I mean, Romans and Greeks is pretty straight forward but the civs with medieval leaders, how would you approach those? This issue is not only for Germany. Take France, England, Spain... basically every other civ except for Egypt, the US and Sumer I guess :lol:
 
I have a table structure already there (see CityNameByEra.xml)

Code:
<GameData>
    <CityNameByEra>
        <!-- FRANCE -->
        <Row>
            <CityLocaleName>LOC_CITY_NAME_PARIS</CityLocaleName>
            <Era>ERA_ANCIENT</Era>
            <CityEraName>LOC_CITY_NAME_PARISI</CityEraName>          
        </Row>
        <Row>
            <CityLocaleName>LOC_CITY_NAME_PARIS</CityLocaleName>
            <Era>ERA_CLASSICAL</Era>
            <CityEraName>LOC_CITY_NAME_LUTECE</CityEraName>          
        </Row>
        <Row>
            <CityLocaleName>LOC_CITY_NAME_PARIS</CityLocaleName>
            <Era>ERA_MEDIEVAL</Era>
            <CityEraName>LOC_CITY_NAME_PARIS</CityEraName>          
        </Row>
    </CityNameByEra>
</GameData>

Just lack a bit of lua coding... and thousands of lines of data.
 
Last edited:
intresting. how does this table work? will it found the city according to the active era and then keep the name or does it replace the names of already founded cities when you go through the eras?
 
Set the name depending on the era and change the name when changing era.

The later could maybe done depending of a setting option.
 
Latest version on GitHub, all files related to a map are now in a subfolder of the "Maps" folder.

In ..\Mods\Yet (not) Another Maps Pack\Maps\PlayEuropeAgain\ I've split the Map_PlayEuropeAgain.xml in two files:
Map.xml with the TSL and other positional data for the map
CityMap.xml with the modern names for Greece (in it's own <CityMap></CityMap> section, I find this useful to fold/unfold large part of code in files using an advanced text editor)

and added
CityMap_Greece.xml with the classical names for Greece

In ..\Mods\Yet (not) Another Maps Pack\Gameplay\ I've split GamePlayText.xml in 3 files:
GamePlayText.xml with all <en_US> translation, including the modern and classical names for Greece in their own <LocalizedText> section
GamePlayText_fr_FR.xml
GamePlayText_de_DE.xml


No change to the naming code on the Lua side yet
 
so as far as I can see, the code to declare a civ-specific city is by adding a "Civilization" attribute to the replace tag, right? we won't do the suffux in the name tag.
 
The later could maybe done depending of a setting option.
+1 for this approach. might otherwise be a little bit "confusing" to people if their city names change withouth their willing :lol:

also about the era change: when there are only a few eras declared, will it then just stop or fall back to modern names? like i have a medieval city name but no rennaissance city name. now i move forward to renaissance: city name will stay medieval?
 
so as far as I can see, the code to declare a civ-specific city is by adding a "Civilization" attribute to the replace tag, right? we won't do the suffux in the name tag.
That was needing a code change on the Lua side, it's done (and uploaded)

You can set a specific name for a (existing and with a map position) city to a Civilization by adding the civilization name as a suffix, for example adding this in GamePlayText.xml :
Code:
<Replace Tag="LOC_CITY_NAME_LONDON_FRANCE" Text="Londres" Language="en_US" />

is enough to tell the mod that if "CIVILIZATION_FRANCE" is founding a city at the position of a city whose generic name is "LOC_CITY_NAME_LONDON", then this city should be named "Londres"

+1 for this approach. might otherwise be a little bit "confusing" to people if their city names change withouth their willing :lol:

also about the era change: when there are only a few eras declared, will it then just stop or fall back to modern names? like i have a medieval city name but no rennaissance city name. now i move forward to renaissance: city name will stay medieval?
Exact, I'd like to code it this way. And if you set a name at ERA_ATOMIC, it would change again at that era.

edit: edited my previous post to reflect that "LOC_CITY_NAME..." could (and should) be used for Era Name.
 
Last edited:
Top Bottom