The Citynamemanager-development thread

I didn't want to offend anyone, but if I'm honest I don't really care. If she's hot, she's hot.

And where I live it becomes a crime under 16, but that's not everywhere. So I refrain from talking hormoneally about chicks under 18 internationally, at least on the internet. :p
 
I didn't want to offend anyone, but if I'm honest I don't really care. If she's hot, she's hot.

And where I live it becomes a crime under 16, but that's not everywhere. So I refrain from talking hormoneally about chicks under 18 internationally, at least on the internet. :p

.. People may want to consider doing a Google search on her name, and searching various forums... :D That may change your impression of Baldyrs fascination of her slightly though.. ;)
 
Common, any guy that's not gay adores her only for her singing abilities? Are you kidding me? How old is Baldyr? 75?

Okay, I love brunettes (maybe because I'm blonde myself) and I'm 26 so it's perfectly natural for me to love 18-year olds, actually any-year-old girls under 40 (sometimes 45) who are pretty.

Maybe that'll change when I'm older, but if so, I think I would've developed impotence...


BTW, Lena sings aweful IMHO...
 
This is completely OT, but here's an idea for a mod-mod I had recently:

Spoiler :
CivIV only allows for a few cities in one geographical location, technically no city can have less than 9 tiles of their own. This problem is even worse in RFC, since its basically a world history simulator. So unless ancient cities are razed by warfare, new historical cities will never appear. Like building the historical city of Magdeburg prevents Berlin from being founded later. Those two locations are only one tile away from each-other on the map, so both can't exist in the same game. Unless...

What if cities, especially capital cities, could migrate? So that if Magdeburg is built before German unification, but would then be replaced by Berlin? Magdeburg would cease to exist as a city (it could turn into a Town instead) - but the new city of Berlin would keep everything in Magdeburg intact. Only the city's name and location would change - culture, buildings/wonders, settled great people and so on would still be there. So the template for Berlin would be Magdeburg, if you like.

There could be a pop-up prompting the human player to choose whether or not to found the historical capital and remove the old city. (It could in fact be located on the same tile, but instead of just renaming the old city, it would be razed and the new one spawned on the same tile). Sure, the new city might initially have less populations or the like, but there could be some other benefit - like extra happiness for a period of time or why not a free Golden Age to kick-off the celebrations? :king:

Thoughts, ideas?

That sounds great. Maybe population and great people can migrate to the new city, while wonders can be lost or moved to another city (say, a city whose culture covers the old city's plot).

Also, it might be fun to have some civil war events. For example, when a player using America has enough cities in the north and south, the player might be asked to have the American Civil War. If the player chooses to have it, the player would lead either the Union or Confederacy depending on the player's civic (i.e., is Slavery chosen?). The cities belonging to the opponent's side would be independent and at war with the player. Player's units in these cities would be moved to the player's (new) capital, and these cities would get some new units - so that the player can't make these cities vulnerable before having the war. If the player successfully regains the control of these cities, various bonuses would be granted based on the player's side.
 
Thoughts, ideas?

LOL. I was thinking about exactly the same thing. But I thought about something less predeterministic- a Medieval tech (representing things like Magderburg rights) that allows settler to move a city- it consumes a settler, can be executed only next to town (and only if around settler there is just one city). If it would be possible we could see more historical cities at modern age (Cairo?) and the days of being upset (WHY AI PLACED THE CITY HERE, NOT 1 TILE NW? [Burn baby, burn!]) would be over.
 
Also, it might be fun to have some civil war events.
I believe this is already covered in RFC by a human collapse. But this could of course be modded - and I intend to do so. ;)

Your American Civil War example is something that could happen with my proposed political oppositions modmod. If that ever get off the ground. :rolleyes:

But I thought about something less predeterministic- a Medieval tech (representing things like Magderburg rights) that allows settler to move a city- it consumes a settler, can be executed only next to town (and only if around settler there is just one city). If it would be possible we could see more historical cities at modern age (Cairo?) and the days of being upset (WHY AI PLACED THE CITY HERE, NOT 1 TILE NW? [Burn baby, burn!]) would be over.
Ok, a "resettle" unit action for late(ish) Settlers is actually a great idea! :goodjob: Hopefully somebody would be able to make it happen... :king: Can someone do this, please? (It'll be on my todo-list if I ever figure out how to add new unit actions.)

Another idea of mine: Town (terrain improvement) that spontaneously "matures" into size 1 cities. :king: Note that I've modded my game so that razed cities don't become ruins anymore, but rather Towns. So you can either use them for :commerce: or pillage them for additional gold. :goodjob:

The best part is that this is very easy to do. (Check GlobalDefines.xml) I also tweaked the improvements involved and made pillaged Cottages become Ruins instead. (Among many other things.) I think I'll post everything in a mod-mod eventually.
 
You don't want cities in RFC... So loosing town and getting size 1 city is one of the worst nightmares for a player (less cash, stability penalty, worsening science penalty).
Ah, but those would be the Towns that remain after say a scripted Mongol onslaught. (All the razed cities have become Towns.) So these would spawn as independent cities filling in the gaps between alive players.

Other way around getting town out of city is really great and probably unbalanced.
Yeah, but its the same for all Civs. Things need to be balanced, of course.
 
how about it happens to unworked towns? to fill space?
 
how about it happens to unworked towns? to fill space?
Yeah, thats actually a good requirement! :goodjob:

Possibly the human player could get a popup asking if he wants to upgrade the Town he owns to a city...
 
I guess you kind of got off the topic of city names, but before I test your mod, I wanted to know if someone is working on the arabian, chinese, japanese, khlmer, ect, New World city names. I have had a game where there is an arabian conquerors event and the city names of the aztecs didn't change. I'm not a modder myself, im just throwing ideas out there
 
It's very easy, this thread is all about one file of the mod, which anyone can update as long as it's an improvement to historical or real-life accuracy.

If you know the Arab names of certain Aztec cities in Mexico you can add a line in the city rename list of Arabia.

For every city you add, you must check all the other civs too so that if Spain captures Mexico city from Arabia (with it's Arab name) it must change to the Spanish name (Ciudad de Mexico).
 
Version #5 is up!

New Updates:

Translations for Ciudad Real, York Factory and Jakutsk and...

A Mongolian city map update if you want to expand a north and north-east. More info and the download in the first post of this thread.
 
I think this is a very commendable initiative and worth the support of the community. :goodjob:

The reason I'm not actively supporting it however is that I don't have much to contribute, but also because I think that the current City Name Manager is suboptimal in itself.

The main issue would probably be that it works with city names and not map tiles. This makes things very ineffective and also prone to unexpected results.

So what I propose, then, is that we create a entirely new City Name Manager that works with tiles instead of names. One obvious benefit would be that cities could have default names - for any Civ - depending on the plot. (If the Civ's city name map has a different entry then that would of course be used instead.) Also, there wouldn't be a need for all these if statements that check all Civs for alternate names for the same cities! (The 5000+ line of code actually makes the default Python editor to crash! :eek: There is no reason to have something as cumbersome as this around!)

The best part would however be that we can cut out the programming for the development part of this project. This will enable more people to join in, as they don't have to know any Python - like indentation or syntax. (And no, PyScenario would have nothing to do with this setup. :rolleyes:)

Instead, all the information could be collected in easily readable and editable dictionaries or other data structures. So anyone who wants to add something would add one line to the dictionary. An example of such a dictionary can be found in Rhye's StoredData.py file, but that doesn't apply directly to this.

This is not any kind of attempt to take charge over this project, but rather to offer what I believe would be my best contribution to it. Also, I would only be able to supply the Python code that makes such a setup work - the rest of it is actually the hard work as all these lines of code would have to be translated into readable data. (Like putting the map coordinates, the default and alternate names and such in order on one single line of text, separated by commas. It would be a matter of copy-pasting city names and looking up map coordinates, so it would be very time consuming.)

What do you think? Should I make an example of a sample dictionary with one entry, just to illustrate what I'm talking about?
 
pictures are good
 
It probably is, initially, but in the end there would be some gains also. Like it would be a lot easier to maintain and keep track of all city names. And more people would be able to add city names, which would benefit the whole project as such. (Let say for the sake of argument that we get 10 times as many new entries in a given time frame. And you could probably get more results yourself with an easier setup. And there would probably be a lot less mistakes in the code that require a lot of testing and debugging.)

This is what a sample dictionary could look like, for the Rome tile:
Code:
{'coords':(60, 44), 'default':'Roma', iChina:'Daqin', iArabia:'Rumiya', iFrance:'Rome', iGermany:'Rom', iNetherlands:'Rome'}
First we have the map tile coordinates of Rome (the X and Y value enclosed inside a pair of parenthesis). The second entry is the default name for the city, and this also make the Spanish, Portuguese and Turkish entries superfluous. Because the city will rename to Roma if any Civ not specified (like the Vikings or the English or the Russians or whatever) acquires the city, which could happen. The rest of the entries are the city aliases for the specified Civs, and hopefully it quickly becomes obvious that we wanna add some entries here... (My first submission is hence the Viking name "Rom" and the English/American name "Rome".)

One thing I didn't realize before was that the city name maps have multiple tiles as the location of the same city. This should of course have to be managed somehow, like if the coordinate doesn't hold any city, then the code will check all adjacent tiles for a city by any of the known aliases. So the code would pretty much revert to the old setup as a backup.

This setup would also get rid of the issue of a city alias missing (or being misspelled) in one of the hundreds of if statements - and the possibility that the human player has renamed (or just misspelled) the city something unexpected - which should happen a lot in actual games.

But, someone would have to do all the dictionary entries, and it is a lot of work. Hopefully the benefit would be obvious, also. As long as no one is interested in translating the code into the new format any of this will of course not happen, so what is needed is volunteers.

The main reason a program can't convert the code into a dictionary would be the need to look up the default city locations for each entry... (But that could perhaps be added manually later... Hmm...)

edit: There is another potential benefit also, and that is that the default names could be used as a back-up city name map - for all Civs - including the minor ones! So if the city founding tile doesn't have a entry in the city name map, then the code could look for the tile coordinates in the city alias dictionaries instead. This feature would probably be a valuable addition to RFC in it-self.

Also, the above dictionary replaces these lines of Python code:
Spoiler :
Code:
                        elif (sName == 'Rome' or sName == 'Rom' or sName == 'Rumiya' or sName == 'Roma'):
                                city.setName('Daqin', False)

                        elif (sName == 'Rome' or sName == 'Rom' or sName == 'Roma' or sName == 'Daqin'):
                                city.setName('Rumiya', False)

                        elif (sName == 'Rome' or sName == 'Rom' or sName == 'Rumiya' or sName == 'Daqin'):
                                city.setName('Roma', False)

                        elif (sName == 'Roma' or sName == 'Rom' or sName == 'Rumiya' or sName == 'Daqin'):
                                city.setName('Rome', False)

                        elif (sName == 'Roma' or sName == 'Rome' or sName == 'Rumiya' or sName == 'Daqin'):
                                city.setName('Rom', False)

                        elif (sName == 'Roma' or sName == 'Rom' or sName == 'Rumiya' or sName == 'Daqin'):
                                city.setName('Rome', False)

                        elif (sName == 'Rome' or sName == 'Rom' or sName == 'Rumiya' or sName == 'Daqin'):
                                city.setName('Roma', False)

                        elif (sName == 'Rome' or sName == 'Rom' or sName == 'Rumiya' or sName == 'Daqin'):
                                city.setName('Roma', False)
As you can see, it is mostly repetition on the same theme and any change would have to be done in all places - instead of just the one dictionary entry for the map tile.
 
I have no problem doing some copying and pasting. I don't believe more people would join in on developing if you make it 'easier' in your way.

If you want to make a 'new' Citynamemanager file. Please start a new thread.
 
Since I've come to believe that the actual conversion could be automated there is really no reason to bug you about this. Because I could just write a code that starts out with the city name maps, going trough the map one tile at a time, and have it write down the coordinates of each tile with a city entry - in any of the city name maps. Then it would be a question of looping through all Civs and checking if any of them would rename a city by that name - and if they would, then write that up as a entry in the map tile's dictionary.

In short, this belongs in another thread. If you chose to use a new and "enhanced" city name manager or not is of course your decision. But I'm by no means trying to create a competing project, because that would just be a waste of community resources. (Because I believe that it is up us to continue the legacy of Rhye, and this thread is a perfect example of just that.)
 
Top Bottom