City Names mod for Sevomod

Arkaeyn said:
Wyz, when I looked up the Zulu/Nguni cities (using mostly Wikipedia, since I don't have my African history book on me, sadly) they seemed to generally be cities founded by whites after the Zulu defeat. So I generally left them out.

Many of those areas were settled by Zulus first, however, and where possible I preserved the KwaZulu name.

Ethekwini over Durban, for instance. But Ulundi, Umgungundlovu, and Eshowe, for instance, are certainly Zulu. As for the other Nguni cities - Maputo, Luanda and Mbabane are primarily Xhosian, I believe.

As for inclusion/exclusion - CIV Gold simply included those civs that seem to hae the greatest user support - Turks, Canada, Carthage, and of course Zulu etc.
 
TheLopez:

Distance from the capital city relative to the size of the world would be most important, but other potential modifiers might be being next to the ocean, or being on a different continent. An American example:

The first city founded (in my mod) is New York. The second city gets founded close to the first, and gets named Boston. The player then decides to start a city far away from the capital, say, a quarter of the world? - maybe there's horses - and it gets called Los Angeles. They then decide to fill in the gap between the two cities with one a medium distance away, and that's Chicago. Finally, the player spots an island and founds a city (colony) on that - Honolulu.

Is this something theoretically possible?

Another, far simpler script alteration would be to have city names dependent on the leader instead of the country. Washington would have a first four cities of Boston, Philly, NY and Savannah, where Roosevelt would start with NY, LA, Chicago and SF. (This would be especially useful when Stalin shows up)

Finally, while I'm getting excited about potential things to do, cities could be renamed according to civs! Apparently this is quite possible, at least in one of the mods the game shipped with, when Rome took over certain Greek cities, the names would change to the Latin version. Obvious example is Byzantium becoming Constantinople becoming Istanbul.

I can see that one getting very complex, though - if the Romans, Greeks, and Turks are all in a game, then the first one to found their version of the city should stop the others from founding theirs.
 
Yes, it shouldn't be too hard to do something like you are proposing. All you would need to do is use the onCityBuilt event, perform the checks and rename the city when the event is called.

If you want me to work on it I don't know when I would be able to get around to work on it since I already have too many other mods that I need to work on.
 
This all sounds pretty cool, but I don't understand your problem with Washington DC. Seeing as it is the capital of USA, I don't understand why you would change it to New York. Yes NY is bigger and more cultural or whatever, but if your trying to increase realism, it doesn't make much sense to set NY as USA capital.
 
TheLopez, as long as it's theoretically possible, that's all I need to continue with the concept. I don't expect it to be able to be done instantly, but if you ever want to try, let me know. Heh.

Jeckel, it's not that I have a problem with Washington D.C.. It's that when I think of cities which define America, D.C. is not one of them.

I think the idea I have of Washington DC being the Forbidden Palace is essentially correct. It was a city built only for the government to operate, and should be viewed as a place of government. It should not be viewed as a place which is the start of the American Civilization (or Empire), because historically it wasn't, and it isn't the heart of that empire either. It was built to be a convenient middle-point for politicians to meet in America - just like the Forbidden Palace in Civ has been the convenient spot for a second Palace.
 
So this is an idea for cities with multiple names, like Byzantium/Constantinople/Istanbul, which I'll use as the example here. Instead of names for these cities, they get variables. <X> (I have no idea what makes for a variable in XML, but <X> seems simple enough.

Somewhere, there's a list of cities where "if <X> is Roman <X>=Constantinople"

So the city name list might look like this for the Turks:

<X>
Ankara
Izmit
(etc)

and for the Romans

Rome
Neapolis
Mediolanum
<X>
Tarentum

Thus if the Romans and Turks are in the same game, the Turks will almost certainly build Istanbul first. So when the Romans get to their fourth city, they'll build Tarentum and skip <X>, because <X> has already been built, even though it has a different name.*

Then, when, say, the Greeks capture <X>, it'll be renamed to their version of <X>: Byzantium.

This could also have the entertaining benefit of changing player motivations. For example, if Rome and France (the player) are in the same game, and Rome builds Massilia, then the player may be motivated to conquer Massilia in order to be more "complete" - I know I would.

*I presume that this is what happens in Civ if multiple cities with the same name are in play. A quick test has indicated that this is so - which allows me to give the Greeks Thebes, Americans Memphis, and all so on. Actually, this can also aid in colonialism - the English can found Boston, but it won't matter if the Americans are in-game! Exciting.
 
Sevo said:
(Gotta keep an eye on that Shyqpe--he's fierce about defending his albanians! ;) )
Damn right! Tenacity runs through my veins! :cool:

Arkaeyn, it is possible to do part of your system. Actually, it's relatively easy to program a city to be renamed based on which civilization owns it. Check out the Greek World scenario for this implementation.

Regarding the variable, you could possibly give each civilization the same city name (maybe in English) and then do a check for who the owner is and convert it to the local language. However, I'm not sure if the game will revert back to naming the city the original name after it is changed to something else. But, I'm fairly certain you could write some code to skip that city altogether..
 
Yes, it's done in python, I believe the file is called GreekWorld.py.
 
Arkaeyn, as far as changing names based on location, TheLopez made a mod that uses starting location terrain for choosing starting techs, I'm sure you could adopt that code for giving city a name based on the surrounding terrain. At least I think it's worth looking over.

As far as changing names based on leaders and civs, well there are three issues that I see with it. First, it's more complicated than it's worth IMO. Second, out of all the cities, civs and leaders in Civ4 only a small number of combinations will be affected by this - and so again, is it worth it to invest time into something that in most cases you will never even see happen. And third, players can rename their cities themselves, so if historical accuracy is important to them, it takes 2 seconds to achieve it :), and as I said it doesn't happen very often.
 
Shqype, that's less fun, I'll have to get and learn Python. One day. x-p

Rabbit, I want to do it. Whether people notice or not is one thing. I'm good at historical research and enjoy it, and I put the time into things that I enjoy. If other people enjoy it - great! I'll put it up for download. Maybe get it into Sevomod and other projects. But if I'm playing Civ and it's naming things the way I want, then I'm happy.
 
Happily, the city renaming in the Greek World is based on the name, not the location, so this should be easy to copy! Here's what it looks like in its simplest form:

if city.getName() == 'Assur' and iNewOwner == iIsrael:
city.setName('Ashur', False)
if city.getName() == 'Ashur' and iNewOwner == iBabylon:
city.setName('Assur', False)

You can use "or" for the NewOwner as well, so if multiple civs have different names for cities, that works too. This should be easy to implement, the research is the problem - god bless wikipedia!


EDIT: While this makes city name changing easy, it might make my variable idea unfeasible. If the name switching is done in Python, but the naming itself is done in XML, then how can I get the two to mesh? That is, I can have the French found Marseille, and the Romans conquer it and turn it to Massilia, but I can't the Romans found Massilia as well...maybe.


On a side note, I'm probably not going to release a Vanilla version until Warlords comes out, for the simple reason that I don't want to do versions with the Turks (and hopefully Babylonians?) and without.
 
arkaeyn, i'm almost done compiling my research for all of the exonyms for the civs in vanilla civs. i offer a trade off. if you kindly make my data into a working vanilla mod, i'll gladly research the city names for all of the rest of the civs in your mod. sound fair?

check back with me on my thread
http://forums.civfanatics.com/showthread.php?t=173513
 
Well, here's the problem. The way that the Greek mod does it, you're looking at 4 lines of code for every city. Then, you have to have OR statements for every possible alternative city name. That's upwards of 19 possible names times however many cities they are. Say 20 per civ. 20x20x4 lines of code, with up to 19 OR statements. That's a lot of copying and pasting.

It's possible that, since you cleverly did it in an Excel file, that you can export it into a form which will work in Python and save yourself a lot of work. A Word mail merge might even do the trick!

But what would really work best is if we find a way to use variables for city names. That's would work best for both of us.
 
Just curious if anyone downloading it has had a crashing problem early in the game. I did last night with a few C2Ds, but it could be something else I was messing with.

Heck, I'd be interested to get any feedback from people who have used this, or questions about why certain cities are in certain places, or compliments, or whatever!
 
I looked through the download and it was just a civinfos xml and after scanning through it I don't see any reason changing the names in the city names list would cause a CTD.

Any chance you could release a vanilla civ version for those of us that don't use sevomod?
 
Yeah, I don't see why either - it could have just been Civ acting funny, hasn't happened since I cleared the cache.

I was planning on not doing a Vanilla version until Warlords came out, but Warlords didn't really have the civs that I was concerned about, mostly the ancient middle east (Babylon, Sumeria, Phoenicia, Israel). So maybe I'll poke around it this weekend before I get to the meaty part of the name changing.
 
Nice effort Arkaeyn :goodjob: I'm also a history and geography pedant so I for one do care about city names, therefore I very much appreciate this kind of work.

I'm hoping this will be useful for my medieval mod, which you're already familiar with. What I would like is to be able to place some city names on more than one civ's list, for cities which bordered between cultures or belonged to a third minor culture which isn't represented as a civ; but obviously I don't want the same name to appear more than once, even if two civs with that name on their list are in game at the same time (hope this makes sense).

Another thing to think about is the possibility of a "regions" code which would assign names based on neighbouring cities. Thus, let's say for example that Flanders is included in France; at some point the French build, say, Tournai, then new cities close to Tournai will be named Ghent, Bruges, Ypres, Bruxelles, etc. The same code would probably also be useful for colonies (Sydney leads to Melbourne, Canberra, etc).
 
Top Bottom