How.... exciting.
I really just never have had that problem. Perhaps I don´t even read all the names? I dunno, I only know that this hasn´t yet bothered me.
But ok, so now I have tried around a little with visual basic to make a simple random name generator.
It´s not hard. But.
As I expected, programming this thing is only the smallest part of the work.
1. Letters as components
The simplest approach, randomly picking a letter from the alphabet for a random number of times and adding it up to a word, is no good because it can produce those strange names that people are complaining about here and because the names it creates in general lack the sound of city-names.
Like: Z-y-g-l-e-k2. Syllables as components
A better approach would be to rather establish a library of syllables that are used in forming the names.
Like: Nan-wen, Nan-wal-ror3. Words as components
A completely different approach would be using established words to form the names of the cities.
Like in: Moor-dock, Temper-ville, Shatter-shineThis gives goodsounding results most of the time, but it is a lot more work than it seems to be.
First you got the problem of bad intra-name matches like
"Mountain-hill" (similarity of the components gives the feeling of conceptual contradiction or repetition) or
"River-River" (just two identical components).
The latter is easy to fix, you just have to check if the components are identical and, if they are, reroll the second component.
The former one is not that easy to fix though.
For this you would either need different lists of components that go together or you would need to assign attributes to the different components that regulate which entries may go together.
Of course you could manually check which components may pose a problem and sort those out by hand so that odd combinations can´t occur in the first place, but that would also mean sorting through the words and combining them to test out which go and which don´t.
The second problem would be bad cityname <-> world relations.
If you got a city named
"Glitterbog" when no bog or swamp is near or the city of
"Silverycoast" founded just below a mighty mountainrange and screens away from the next watertile, then this could be anti-immersive and would counteract the whole point of renewing the name-generator.
And I don´t even know if it is possible for the name-generator in Elemental to look up the terrain surrounding a city.
Even if it was you would again have to have different lists or apply attributes to the components to match terrain with corresponding terrain-specific names.
The third problem would be to fill the lists with words to be used as components.
That doesn´t seem to be a lot of work but if you don´t want names to repeat every dozen times you would want this lists to be quite long.
But it goes on...
4. Mixed Method
This is what I would probably aim at.
Mix the concepts of random letters and syllables with predefined names.
Like: "Mount-Ill-glam", "A-lyx-ang-fort"Not that hard to do.
The good thing here is that you can have unique parts of a cities name, e.g. not
"Dog-ford", "Hard-ford", "Grendel-ford", but
"Da-gun-ford", "Ker-thel-ford", "Nu-mes-ford".
Still you would have to come up with rules for how the components could be combined.
So that you wouldn´t get e.g.
"Wood-ly-xr-ford" (random syllables between words).
These rules could get rather complex.
Especially when you
5. Do it all over again for each faction and give each one a unique style
To do that you first have to think about naming conventions on one hand and about the language and the values and the flair of the respective faction on the other hand.
Does Ythril have city names like
"Bloodfield", "Goreham", "Darkshire", "Suffering"?
Or more like
"Kyth-karn", "Klynth-gomu", Khyzz-farath"?
Would
"-kam", "-gomu" and
"-farath" be conventional endsyllables of citynames?
Or would rather
"Kyth-", "Klynth-" and
"Khyzz-" be the components that should appear more often in those names?
Perhaps you want to define custom words for a faction to be used as in the normal random-words method? So that you would have some naming convention like
"Klynth-Utai", "Klynth-Gorai", "Klynth-Mashad", etc.?
These things have to be thought up and decided; for each faction.
This REALLY can be a lot of work if you wanna do it right.
And I would see no point in just barely fixing the issue.
Why take the time to come up with 100 citynames on a list for all factions when this fixes a problem only halfway that only a few people have?
Or why take the time to come up with 50 individual names for each faction when you will still have to do the very basic thinking that could also lead you to a faction-specific naming-convention that you could use in a more powerful random generator?
PS: In Paradox´es "Victoria 2" they got a very small but very cool feature. The world map features the names of the countries and the size and font of those names changes corresponding to the form and the size of this country. So if you play, say, Burma and colonize Africa, a big bold "Burmese Africa" could be read there on the map. This really furthers immersion immensely even though it could be considered a minor detail.
So if whe consider random names in Elemental to be a similar detail, Stardock should take their time to make a really good random name generator instead of just improving it to average quality.
Else I would consider development-ressources to be wasted, as well as a chance to shine with a little detail that enhances immersion and thus fun of playing the game.
So all in good time I would say...
And:
And the fix for this kind of an issue should be able to be implemented in less than an hour by a single programmer.
No. That is - only if everything is layed out perfectly and no problem whatsoever arises.
Development time for the generator would definitvely not fall into that one hour but would rather surpass this significantly.
Really, come on. If things like this could be fixed in one hour of work, Fallen Enchantress would already have hitten the shelves weeks ago...