YnAMP sub-project: True location corresponding city names

yeah i can do that. i will do the "quick fix" by adding suffix names in the text xml for that. i won't start a roman civ name layer. (edit: not true, i added the civ-specific maps aswell)
I have just been looking through the GitHub page, and it's good to see the changes uploaded. I'm pleased to discover that you have found a way to take the last civilization checks out of the CityMap.xml file—putting them on a separate layer like Greece is a brilliant idea. However, the CityMap.xml has not been updated for Iberia—my mistake, as I forgot to mention that I had made locational changes there. I have attached an updated xml file (without the civ checks) for Iberia so that it can be added in with the next merge.
 

Attachments

"What if the Romans migrated to Serbia and created a pan-Balkan various-slavic-language-speaking-empire that survived into the 1500s?"
They would have historically-grounded Latin names for (nearly) all their cities!

Joking aside, I have finished all the Roman names for the Balkans. The files are attached so that they can be added at the same time as the Iberia fix. The main changes are to the GamePlayText.xml file, but there are also minor changes to the CityMap.xml and CityMap_Romans.xml files. (Speaking of which, shouldn't it be CityMap_Rome for consistency?) In addition to the Roman names there are also a smattering of Greek names and a fairly decent coverage of German and Turkish names, the latter of which are under Arabia despite the fact that the are not Arabic—when Firaxis eventually releases an Ottoman civ they will have to be changed over.
 

Attachments

Personally, I am still a little unsure how practical the name by era system is going to be—won't it overlap with the civ-specific naming too much? For example, in Iberia many of the cities were founded by Carthaginians, renamed by Romans, renamed by Moors, then renamed again by the Spaniards. At the present the system is set up to assign the Latin, Arabic, and Spanish name by civilization rather than era, a pattern which will doubtless be extended to Carthage with their eventual inclusion. How then can the era system be implemented here? Wouldn't it just end up overriding the civ-specific naming system?
Well, I don't know the code so I just assume that it works as the following (@Gedemon will need to clarify this to us): I think that the code is prioritizing the civ-specific layer over the default names layer. So when a city is being founded, the code first look up the civ-specific ma as if there is no default map present. If it finds a tile at the coords, it gives the name tag for this coords. If it doesn't find a civ-specific tile, it checks the default mapping. Should it not find a name there (that should not happen once the whole map is default named), it goes for the generic civ list (the basic programming done by firaxis).

The era kicks in on the name tag level, AFTER the code has decided which name tag to give it (LOC_CITY_NAME...). Name tags are unique (at least they should be... we might need a system that checks for double tag names at some point to prevent this. @Gedemon you have any experiences in automated tests? could we make gitHub do an integration test for a pull request for example?). So with the era names based on tags, you can enrich the default mapping as well as the civ-specific mapping independently and since the code is prioritizing civ over default, it will name a city with a civ-mapping by its civ counterpart. So the city will then move through the eras using all available naming for this civ-specific name tag. The default era names will be ignored. And vice versa for a city named by the default mapping.

Lets take Cologne as an example:

LOC_CITY_NAME_COLOGNE <-- default mapping (and civ-specific mapping for Germans)
LOC_CITY_NAME_COLONIA_CLAUDIA_ARA_AGRIPPINENSIUM <-- civ-specific mapping for Romans
LOC_CITY_NAME_COLOGNE_ROME <-- civ-specific NAMING (not mapping!!) of the default map for Romans if there is no Colonia Claudia MAPPING.

Question is, how does the code handle this? Clearly, COLOGNE and COLONIA_CLAUDIA... are unique and you can have 2 complete different era namings for them. So Romans won't have a "Köln" in modern era. However, will COLOGNE_ROME also progress through the eras with the COLOGNE set? Or do I have to declare it myself, so even in modern era it would still be "Colonia Claudia..." for Romans?

Btw, how does it work if the city is being captured? I think the city would keep the name tage of ARA. I don't think that the code is reevaulating the city name when a city is captured (@Gedemon is that correct?). However, does the system for the civ suffix kick in? Means that LOC_CITY_NAME_COLONIA_CLAUDIA_ARA_AGRIPPINENSIUM_GERMANY could have "Köln" in modern era if we declare the eras and the era code is suffix-sensitive. You could enrich this even further for example by adding the french suffix, so you will get "Cologne" if you capture the roman Colonia Claudia.

I kinda feel we need some more thinking on the era progression feature.

In regards to the Deserts, the other option is just to disable settling there outside the name radius…
I'm sure it can be done, but I guess it will require a deep insight, probably up to the core dll. Don't think that this is possible as long as we don't get the SDK (with an open core dll).

I think the separate overlay set is an excellent solution for Mesopotamia, as the geography there has changed so much.
Well, at some point every civ should get it's own overlay.

Clearly there are only going to be a few Roman names (Ctesiphon, Palmyra, et cetera), so should I keep to the current "suffix" system in the GamePlayText.xml file? Same question with Greece, except that in Greece there will be many more Roman names—there it might be possible to do a more or less complete Roman version of the separate Ancient Greece list.
The suffix system works best for the default mapping. As long as there is no default mapping for a region, you can't use the suffix effectively. The question here is how far should civ-specific mapping reach from the starting position? For example, I already have a "Palmyra" tile for default mapping, the city (or actually it's ruins) are on Google Maps, so I was able to find it for default mapping already. However, there is nothing wrong with adding a "Palmyra" in the civ-specific mapping for Romans aswell. Both maps can use the same name tag btw.

What about the dotted "I" and the dotless "I" in Turkish? They are distinct letters.
I'm sure UTF-8 can distinguish it.

I have just been looking through the GitHub page, and it's good to see the changes uploaded.
I did some really small adjustments to default Italy btw, I wanted to get your work into the mod asap, so I didn't talk to you prior to that. I hope, you're OK with that. I gave Florence 2 tiles north and south to the Arno, so there is a greater chance of founding this city. Also I gave 1 Mantoa tile to Bologna for the same reason (it can now end up adjacent to the Po but not that far as in the early day screenshots). However, the chances for getting it are pretty low if you found Pisa, Florence or Venice. Everything else is changed according to your work.

However, the CityMap.xml has not been updated for Iberia—my mistake, as I forgot to mention that I had made locational changes there. I have attached an updated xml file (without the civ checks) for Iberia so that it can be added in with the next merge.

The files are attached so that they can be added at the same time as the Iberia fix. The main changes are to the GamePlayText.xml file, but there are also minor changes to the CityMap.xml and CityMap_Romans.xml files. (Speaking of which, shouldn't it be CityMap_Rome for consistency?)
I'll take care of that during this week. And yes, I will rename the file to "Rome".

In addition to the Roman names there are also a smattering of Greek names and a fairly decent coverage of German and Turkish names, the latter of which are under Arabia despite the fact that the are not Arabic
Well, that depends how far we want to make Arabia mapping expanding. Basically every civ. Kinda the same issue as with you Palmyra example. There are a lot of overlaying civs in some areas... What worries me about this is actually not the work on all the stuff. Given enough time, everything can be mapped. It's more about maintenance...

when Firaxis eventually releases an Ottoman civ they will have to be changed over.
Yeah, that's an example of what I meant by maintenance :D


FYI, I am moving wednsday. So this week I am mostly busy with packing and unpacking my stuff. Also I start a new job on thursday. So this week, I won't add any new commitments to the code, but I will merge the stuff from tomaltachpaulson as well as updating the manual. Also I will check the forum and keep the conversation running if there is something to discuss.
 
Central and Eastern Europe update for Play Europe is almost ready. However, i cannot do a playtest yet because city names are not being loaded (i.e. they are at the pre-CityMap.xml setting where Germany always settles Berlin first, then Aachen, etc. regardless of tile geography). I deleted the mod and deleted cache, reinstalled from GitHub (without adding my new names), same problem. Anyone else getting this?
 
Hi, I just read about this project and loved YnAEMP back in V, so I'd like to contribute.

I downloaded the mod and had a quick test as France on the Play Europe map. I noticed some irregularities regarding the city names. I'm not quite sure if this is intended or I made some kind of mistake:

I settled my first few cities after Paris in "mainland" France and they were all renamed to their geographicly correct name.

Spoiler :

njK0Qp3.jpg



However, when I sent some settlers to RL Germany and Poland, their cities were not renamed. I checked the XMLs and, according to their coordinates, they actually had city names attached to these tiles. E. g., Bordeaux in this picture should have been renamed to Kiel.

Spoiler :

LpupKFu.jpg



I tried this with the location of Calvi, Corsica, but this city was not renamed, too.

Spoiler :

j5Ox2ee.jpg



I wondered if this had to do with the cities being connected by my (French) tiles or the placement inside of France's historical borders or the game didn't load the names for cities not included in the vanilla list (like Kiel and Calvi) or this just randomly happened.

However, what I came here for in the first place was to help complete the map and I'd be ready to do the Caucasus region/region between Black and Caspian Sea.
I really like this project and the much effort everyone here puts into it, so please, keep up the great work!
 
Well, I don't know the code so I just assume that it works as the following (@Gedemon will need to clarify this to us): I think that the code is prioritizing the civ-specific layer over the default names layer. So when a city is being founded, the code first look up the civ-specific ma as if there is no default map present. If it finds a tile at the coords, it gives the name tag for this coords. If it doesn't find a civ-specific tile, it checks the default mapping. Should it not find a name there (that should not happen once the whole map is default named), it goes for the generic civ list (the basic programming done by firaxis).
It (should) works exactly like that :D

The era kicks in on the name tag level, AFTER the code has decided which name tag to give it (LOC_CITY_NAME...). Name tags are unique (at least they should be... we might need a system that checks for double tag names at some point to prevent this. @Gedemon you have any experiences in automated tests? could we make gitHub do an integration test for a pull request for example?). So with the era names based on tags, you can enrich the default mapping as well as the civ-specific mapping independently and since the code is prioritizing civ over default, it will name a city with a civ-mapping by its civ counterpart. So the city will then move through the eras using all available naming for this civ-specific name tag. The default era names will be ignored. And vice versa for a city named by the default mapping.

Lets take Cologne as an example:

LOC_CITY_NAME_COLOGNE <-- default mapping (and civ-specific mapping for Germans)
LOC_CITY_NAME_COLONIA_CLAUDIA_ARA_AGRIPPINENSIUM <-- civ-specific mapping for Romans
LOC_CITY_NAME_COLOGNE_ROME <-- civ-specific NAMING (not mapping!!) of the default map for Romans if there is no Colonia Claudia MAPPING.

Question is, how does the code handle this? Clearly, COLOGNE and COLONIA_CLAUDIA... are unique and you can have 2 complete different era namings for them. So Romans won't have a "Köln" in modern era. However, will COLOGNE_ROME also progress through the eras with the COLOGNE set? Or do I have to declare it myself, so even in modern era it would still be "Colonia Claudia..." for Romans?

Btw, how does it work if the city is being captured? I think the city would keep the name tage of ARA. I don't think that the code is reevaulating the city name when a city is captured (@Gedemon is that correct?). However, does the system for the civ suffix kick in? Means that LOC_CITY_NAME_COLONIA_CLAUDIA_ARA_AGRIPPINENSIUM_GERMANY could have "Köln" in modern era if we declare the eras and the era code is suffix-sensitive. You could enrich this even further for example by adding the french suffix, so you will get "Cologne" if you capture the roman Colonia Claudia.

I kinda feel we need some more thinking on the era progression feature.
I don't have any experiences in automated tests, but one of the reason I use <Replace> instead of <Rows> is that the code won't crash if we try to add twice an unique tags (but yes, better avoid them, could be frustrating to try to change one tag value and found after a few tries that it's another one set 1500 lines below that is used in the game...), which should not happens in the case of an unique mod, but is useful for values that could be set by multiple mods, when you can set a specific load order...

Now we could use <Row> in the texts files, a whole file may fail to load, but the database.log would then point us to the duplicate tag.

The Era naming code is not written, but yes, it will be called after the city mapping cade and will use an exact LOC_NAME... for reference, meaning it will not change a civ-specific name to an era-specific name if the city name for that civ does not have a corresponding era name.

The code for capture renaming is also not written but it could simply use the exact same mechanism as for a new city, looking for a specific name for the capturing civ, then default, and if any is found then Era (and no renaming if there is no default name)

I suppose that we can have some options/check to customize the naming rules.

The suffix system works best for the default mapping. As long as there is no default mapping for a region, you can't use the suffix effectively. The question here is how far should civ-specific mapping reach from the starting position? For example, I already have a "Palmyra" tile for default mapping, the city (or actually it's ruins) are on Google Maps, so I was able to find it for default mapping already. However, there is nothing wrong with adding a "Palmyra" in the civ-specific mapping for Romans aswell. Both maps can use the same name tag btw.
As far as we want, for Settlers Map...

It's long term for the mod, but we could have 3 or 4 city name positioned on America for some European civs, and once that part is coded, the AI would send it's settlers to it's specific cities potential position first.

Central and Eastern Europe update for Play Europe is almost ready. However, i cannot do a playtest yet because city names are not being loaded (i.e. they are at the pre-CityMap.xml setting where Germany always settles Berlin first, then Aachen, etc. regardless of tile geography). I deleted the mod and deleted cache, reinstalled from GitHub (without adding my new names), same problem. Anyone else getting this?
I'll have to check that, but I'm currently debugging another mod, can you have a look at database.log and modding.log in
"..\Documents\my games\Sid Meier's Civilization VI\Logs" ? (and post them here)
 
Central and Eastern Europe update for Play Europe is almost ready. However, i cannot do a playtest yet because city names are not being loaded (i.e. they are at the pre-CityMap.xml setting where Germany always settles Berlin first, then Aachen, etc. regardless of tile geography). I deleted the mod and deleted cache, reinstalled from GitHub (without adding my new names), same problem. Anyone else getting this?
I'll have to check that, but I'm currently debugging another mod, can you have a look at database.log and modding.log in
"..\Documents\my games\Sid Meier's Civilization VI\Logs" ? (and post them here)
However, when I sent some settlers to RL Germany and Poland, their cities were not renamed. I checked the XMLs and, according to their coordinates, they actually had city names attached to these tiles. E. g., Bordeaux in this picture should have been renamed to Kiel.
Yes, I've found something in the code. There are 3 lines that have Area="0" 2x in there. I removed the doubled attributes and it worked fine again. I've already created a pull request on gitHub, so when Gedemon merged it, you can get a fixed master. But if you want, you can also fix it manually: Open -master\Maps\PlayEuropeAgain\CityMap.xml, check the lines 216-218, you wil find the Area="0" attribute there twice. Remove one of them for each line, save and restart. Cities should work again.
Spoiler :
20161128195712_1-jpg.459941


Let us know if it worked for you.

Also niklas, polish names are not in there yet, brick is working on them right now as far as I know.

However, what I came here for in the first place was to help complete the map and I'd be ready to do the Caucasus region/region between Black and Caspian Sea.
Ok, go for it. I've updated the map in the status post not sure if it exactly the area, but I can adjust it once you've done the work. Let us know if you need anything. Check out the manual (2nd post in this thread) aswell.

I really like this project and the much effort everyone here puts into it, so please, keep up the great work!
thx and welcome aboard :)

It (should) works exactly like that :D
more like: it SHOULD (omg pls, pls, pls) works exactly like that :p

Now we could use <Row> in the texts files, a whole file may fail to load, but the database.log would then point us to the duplicate tag.
when it fails to load, the cities would end up with LOC_CITY_NAME names, right? so it would be clear from the beginning that something is wrong? however, I can't estimate the impact on this change, so at least I am ok with every procedure here.

It's long term for the mod, but we could have 3 or 4 city name positioned on America for some European civs, and once that part is coded, the AI would send it's settlers to it's specific cities potential position first.
cool, sounds really interesting.
 

Attachments

  • 20161128195712_1.jpg
    20161128195712_1.jpg
    539.7 KB · Views: 1,106
I'll have to check that, but I'm currently debugging another mod, can you have a look at database.log and modding.log in
"..\Documents\my games\Sid Meier's Civilization VI\Logs" ? (and post them here)

Pull request #18 seems to have fixed this issue, I just did an info era start as Germany, settled Stettin and other cities in correct position. I'll test central and eastern europe update this evening, there's a lot of XML lines so I'm expecting at least one error :lol:
 
Worked for me too, thanks for the quick answer and fix!

When I started the Caucasus cities, I noticed that working with google maps can be a real pain, especially for the regions all the way east. Firstly there seems to be an offset by ~ 30° and secondly the proportions of the landmasses do not match the Google ones. Do you have any information on what map projection was used when creating the Play Europe Map?
 
Yes, I've always found difficult to work in this area for all maps (large, projection deformation, no coast line or mountain range for reference...)

When we manage to duplicate a good river map, it's a bit easier
 
When I started the Caucasus cities, I noticed that working with google maps can be a real pain, especially for the regions all the way east. Firstly there seems to be an offset by ~ 30° and secondly the proportions of the landmasses do not match the Google ones. Do you have any information on what map projection was used when creating the Play Europe Map?

Try Google Earth, it will allow you to adjust the angle.
 
when it fails to load, the cities would end up with LOC_CITY_NAME names, right? so it would be clear from the beginning that something is wrong? however, I can't estimate the impact on this change, so at least I am ok with every procedure here.
It will display LOC_CITY... in case of an error for a translation file for a city map, but will just fail to find the specific name in case of using the suffix method.

With the scale of this project, I think the <Row> syntax should be used, we just need a look at the database.log after launching a game to see if there is a duplicate.

I could also add a check at game start to output a warning if a LOC_CITY... (for a city map) does not have a translation in the text files.
 
I could also add a check at game start to output a warning if a LOC_CITY... (for a city map) does not have a translation in the text files.
like that idea very much!

When I started the Caucasus cities, I noticed that working with google maps can be a real pain, especially for the regions all the way east. Firstly there seems to be an offset by ~ 30° and secondly the proportions of the landmasses do not match the Google ones. Do you have any information on what map projection was used when creating the Play Europe Map?
well, basically there is always a chance that a region is not very well projected. I ran into this while mapping Scottland and Scandinavia for example. I take already placed or important spots into consideration and work from there. That can lead to that straight lines in Google Maps ending up being bended in the game or vice versa. Also it can be that even small cities get for example a whole 1 range tile (with no overlay) for themselves, just because there is so much space to fill and literally nothing else there.

We don't need absolute geographical accuracy, just make it that it feels as realistic as possible and don't forget the gameplay aspect. sometimes, more 1 range tiles is better than having the map spammed with 0 range cities noone ever heard of :lol:
 
I've finished testing my next tranche of names for Central and Eastern Europe. Pull request sent to Supreme Lord Gedemon.

Screenshot time!

Spoiler Poland :
upload_2016-11-29_15-53-4.png


Spoiler Carpathian Region :
upload_2016-11-29_15-49-54.png


Spoiler Belarus-Ukraine :
upload_2016-11-29_15-50-35.png
 

Attachments

  • upload_2016-11-29_15-49-13.png
    upload_2016-11-29_15-49-13.png
    4.3 MB · Views: 326
rock_and_ride - my next update will be to Iceland and the Baltic region as shown here, please update the status map.

Spoiler status update :
upload_2016-11-29_16-4-4.png
 
Iceland and Baltic cities added on GitHub, screenshots below.

Notice that even saxon/viking letters eth Ð and thorn Þ (that survived in Iceland) work fine in-game!

Spoiler Iceland :
upload_2016-11-30_16-20-35.png


Spoiler Baltic :
upload_2016-11-30_16-22-47.png
 
Those screenshots look absolutely superb, brick623! Also, it seems pretty clear now that there really is not any problem with special characters in the game.
 
Back
Top Bottom