I would love to know if anyone tried to create some kind of procedural content, that had to be translated/localized.
Lately I was thinking about generating things like settlements, persons, houses with various attributes.
But one thing I really don't find an elegant solution for is naming things.
One could generate one or very few variations and translate them.
- Localization can be done by professionals.
- If you have only 1 or 10 generated world, you can bug test them much better. If you have 1 million you can only do general stuff.
- You could just skip the hole generatin thing and do custom content, which is ofter of higher quality.
Or maybe a multilingual name generator:
- Practically unlimited number of variations.
- Working with translators could become difficult.
- Quality might not be so great.
Maybe you can find more pros and cons for each of the above.
Idea for a multilingual name generator:
Lets assume the object that you wish to name has a few attributes. E.g. a settlement has climate, population and culture, history, ...
Now one could tag the building blocks of the name generator and can provide the translation for the building block instead of hole names.
Population: 300 human, 5 dogs, whatever your settlement generator is giving you... (Culture would probably be most interesting.)
Age: 400 years
Origin: Mining camp (maybe with the ressoucre mined)
Your application could now take those attributes and choose the appropriate tags.
Let's say the following tags are choosen:
Village (by population size, don't know if this would be correct), New (400 isn't that old), Mine
Your name generator could then radomly choose a tag and use it to create a name.
Cheap example the generator has choosen New. Now you can add the appropriate Prefix ord Suffix to the stem.
Choosen stem "York". Choosen Tag New. For English add "New " as prefix, resulting in "New York"
Now the important part, for other Languages the Generator wont generate new names.
It will use the same stem (translated) and choose the same tags.
E.g. in German it would add "Neu" as prefix, but theg tag would be the same.
Could this work? Or do you think it would become a nightmare?
How hard would it be to handle more than two languages?
It all sounds quite feasible to me. What exactly is the problem?
The open-source "openTTD" is localised into lots of languages and has procedural town name generation in it for some languages. I don't know how plausible the town names appear in other languages, but they sound quite fun in English. It is obvious to anyone playing the game that they are procedurally generated.
In fact the main problem is with several towns having names which are too similar. This is of course not considered a problem in real England, we have at least 12 villages / towns called "Sandford"
I tried out OpenTTD and took a look at their source code. However they are using a quite different approach.
There exists a name generator for each supported language, each one with different data and slightly different code, as far as I can tell. This means a town name can't be translated, for another language a competly different name is randomly create.
This is fine for OpenTTD, since the town names don't have any real meaning. Besides it seams like you can't switch the language used for town names once you started a session, so they don't have to be translatable.
The problem of the repetitive names comes probalby from their small data set used for name generation. Maybe it is a limitation originating from the original TTD or they just didn't have the ressources to add more name building blocks.
I was thinking about using more source data, as mentioned above. To make the town something that is more than a few houses on the map with a name tagged onto them. One could start going over board an generating a small history and let this influence the name generator.
This also means that the names should be translatable and still have the same meaning in one language as it had in another.
The problem is, did anyone try this before? Or did everyone choose either random names for the translation or let translators do the work.
I know it is problably too much effort. But I would like my procedural content more than just a way to increase the time required to play through.
Take for example Diablo 2, the dungeons where procedurally generated. But their only purpose where to give the player the possibility to get expierience and to waste time by making the player search for the stairs.
However if you have a randomly generated battlefield where the position of objects or the kind of ground you are standing on would influence you or the enemy, they wouldn't just be meaningless places of grind.