Hey, I wanted to create this post to give an update on what I have been doing in recent days. Like I already mentioned, I shifted my focus to the city name aspect of the new map, which so far I haven't been working on. The way I see it, city names break down into three broad categories:
Even though that is a substantial list of examples, working on those should not take very long compared to the other two categories, which is why I focused my attention on them.
For that purpose, what I did was to first collect city names from the two primary sources: city names used by 1.17, and city name changes suggested in the comments of the city name map ODF document. The latter was a very valuable resource, but unfortunately the format of libreoffice comments made them very difficult to process, so I had to spend a lot of tedious work into systematically converting them into a spreadsheet.
(Just to give some idea of the scale: 1.17 contained 1963 city name changes, and the suggestions doc contains 7569 suggested city name changes.)
That is all that has happened so far. It took a lot of time, but now the data is in a format that is hopefully easier to work with going forward. The next step is going to be to review and research all these suggestions, and work them into a collection of city renames that a) I agree with historically/geographically and b) works with the way it is meant to be implemented in the mod. While I think all the suggestions were well resourced, they came from different people with different intentions and understandings of how things are supposed to work, so I need to align and correct them if necessary, so that they fit my intentions for the city name system. That again will probably be a lot of manual work that requires a lot of time.
What actually is the system I have in mind, and why are so many changes necessary? I have talked about this before, but I want to reiterate the idea to give everyone proper context. The main difference for 1.18 compared to 1.17 is that there is now only one global map of city names used by every language, as opposed to every language having their own map of tile names. This may sound like a loss of detail, but the benefit is that there is now only one map to maintain and keep accurate. The challenge of having 20+ different maps was that it was easy for them to get out of sync (e.g. the same name being associated with different tiles in different maps) and it was a lot of effort to make any changes, because it required updating every individual map. In consequence, it meant that only few changes were made, which prevented the addition of more detail and granularity to city names overall.
Does this mean that on every tile there can only be one city name? We all know that historically the same tile can contain different cities. For example, Babylon and Baghdad are two entirely different cities sharing the same tile, but that does not mean that a hypothetical Babylonian civ taking back Baghdad should rename the city back to Babilû. The game is still going to track this difference, it just isn't going to use maps for that purpose.
With that approach, I can also solve another problem with the 1.17 city name system. Which is that whenever a city is renamed, the new name is determined based on its current name. That's a problem because then the code needs to account for all current names the city can have - it easy to miss one possibility and then not rename the city, even though a name for the target language is actually available. Accounting for all these cases also further bloats the code and makes changes more difficult. In the 1.18 system, the current name does not matter (except as a fallback when the city name remains unchanged): instead the name is always determined from scratch from the name of its tile, combined with the tracked tile name changes I mentioned above.
Once this system is in place, it will allow adding and maintaining city names with less effort and less potential for error, which eventually allows for a greater degree of detail and more participation. However, it also means that the 1.17 name changes cannot be taken as they are, but most be adapted for this new system, as do all the suggestions I have received.
I have also thought of other ways to leverage that system to better ensure that always the most accurate city name is being used. For example, currently, in the absence of a city name for a civilization's language, a city's name remains unchanged or the static list of city names for the civilization is being used. I already have plans to use various fallback methods to determine a more appropriate name, including the city's previous owner, languages from the same geographical area as the current owner, and the language of the civilization with the highest settler value on the tile.
This is all to give some context on why this effort is likely to require a lot of additional time, and why I consider that time worthwhile. I think eventually it would be great to include the community in the project to add even more city names to the mod. But right now I first need to process the existing city name (suggestions) into a format that reflects how I want things to work, so that people can adjust their suggestions to that approach. Before that, any contribution would just add to the amount of work I need to do.
There is definitely room for further expansion of detail and granularity in the future though. For example, I briefly looked into the Civ6 Rosetta mod, which seems to be a treasure trove of city names that we could cross reference and incorporate into DoC. But for now, I decided that extracting all of its content into a format that would be useable by DoC would require too much time on my end. Maybe later on, someone else can take a stab at it.
Lastly, despite this, I plan to take breaks along the process to return to other aspects of the mod. I haven't made any gameplay related changes in a while, but I am aware that there are issues currently. I first wanted to bring the first step in this project to a close before coming back to that. Part of this post (and this thread) is to let you know that after reaching this point, I will pause for a bit and return to gameplay development.
Likewise, once I am back at it, I will use this thread to post (hopefully shorter) updates. That's all!
- Tile names
- Renaming cities into different languages
- Renaming cities based on other factors such as era, civics, etc.
Even though that is a substantial list of examples, working on those should not take very long compared to the other two categories, which is why I focused my attention on them.
For that purpose, what I did was to first collect city names from the two primary sources: city names used by 1.17, and city name changes suggested in the comments of the city name map ODF document. The latter was a very valuable resource, but unfortunately the format of libreoffice comments made them very difficult to process, so I had to spend a lot of tedious work into systematically converting them into a spreadsheet.
(Just to give some idea of the scale: 1.17 contained 1963 city name changes, and the suggestions doc contains 7569 suggested city name changes.)
That is all that has happened so far. It took a lot of time, but now the data is in a format that is hopefully easier to work with going forward. The next step is going to be to review and research all these suggestions, and work them into a collection of city renames that a) I agree with historically/geographically and b) works with the way it is meant to be implemented in the mod. While I think all the suggestions were well resourced, they came from different people with different intentions and understandings of how things are supposed to work, so I need to align and correct them if necessary, so that they fit my intentions for the city name system. That again will probably be a lot of manual work that requires a lot of time.
What actually is the system I have in mind, and why are so many changes necessary? I have talked about this before, but I want to reiterate the idea to give everyone proper context. The main difference for 1.18 compared to 1.17 is that there is now only one global map of city names used by every language, as opposed to every language having their own map of tile names. This may sound like a loss of detail, but the benefit is that there is now only one map to maintain and keep accurate. The challenge of having 20+ different maps was that it was easy for them to get out of sync (e.g. the same name being associated with different tiles in different maps) and it was a lot of effort to make any changes, because it required updating every individual map. In consequence, it meant that only few changes were made, which prevented the addition of more detail and granularity to city names overall.
Does this mean that on every tile there can only be one city name? We all know that historically the same tile can contain different cities. For example, Babylon and Baghdad are two entirely different cities sharing the same tile, but that does not mean that a hypothetical Babylonian civ taking back Baghdad should rename the city back to Babilû. The game is still going to track this difference, it just isn't going to use maps for that purpose.
With that approach, I can also solve another problem with the 1.17 city name system. Which is that whenever a city is renamed, the new name is determined based on its current name. That's a problem because then the code needs to account for all current names the city can have - it easy to miss one possibility and then not rename the city, even though a name for the target language is actually available. Accounting for all these cases also further bloats the code and makes changes more difficult. In the 1.18 system, the current name does not matter (except as a fallback when the city name remains unchanged): instead the name is always determined from scratch from the name of its tile, combined with the tracked tile name changes I mentioned above.
Once this system is in place, it will allow adding and maintaining city names with less effort and less potential for error, which eventually allows for a greater degree of detail and more participation. However, it also means that the 1.17 name changes cannot be taken as they are, but most be adapted for this new system, as do all the suggestions I have received.
I have also thought of other ways to leverage that system to better ensure that always the most accurate city name is being used. For example, currently, in the absence of a city name for a civilization's language, a city's name remains unchanged or the static list of city names for the civilization is being used. I already have plans to use various fallback methods to determine a more appropriate name, including the city's previous owner, languages from the same geographical area as the current owner, and the language of the civilization with the highest settler value on the tile.
This is all to give some context on why this effort is likely to require a lot of additional time, and why I consider that time worthwhile. I think eventually it would be great to include the community in the project to add even more city names to the mod. But right now I first need to process the existing city name (suggestions) into a format that reflects how I want things to work, so that people can adjust their suggestions to that approach. Before that, any contribution would just add to the amount of work I need to do.
There is definitely room for further expansion of detail and granularity in the future though. For example, I briefly looked into the Civ6 Rosetta mod, which seems to be a treasure trove of city names that we could cross reference and incorporate into DoC. But for now, I decided that extracting all of its content into a format that would be useable by DoC would require too much time on my end. Maybe later on, someone else can take a stab at it.
Lastly, despite this, I plan to take breaks along the process to return to other aspects of the mod. I haven't made any gameplay related changes in a while, but I am aware that there are issues currently. I first wanted to bring the first step in this project to a close before coming back to that. Part of this post (and this thread) is to let you know that after reaching this point, I will pause for a bit and return to gameplay development.
Likewise, once I am back at it, I will use this thread to post (hopefully shorter) updates. That's all!