Today I spent some time working on generating random character names for MMORPG characters. I was getting pretty tired of “Ujkige” and similar unpronounceable names which were just generated by randomly smashing letters together.
So today I started working on a system which should do a better job of generating believable character names.
My first step was to attempt to generate vaguely plausible and pronounceable names, as you might find on a role-playing server, by smashing together rough half-syllables (which for lack of a better word, I’m calling “gloms”). So for example, “cl” is a glom, as are “ph” and “oo”. The theory is that by smashing together these larger gloms, we should get more believable names than I got simply by smashing together random letters.
The first name generated by the new system was “Cough”. Following that were “Gack”, “Fineoh”, “Ety”, “Krihoep”, and “Roisrousoe”. I’m actually a little surprised at how many double-vowels are showing up in this first sampling of names; I tried to make double vowel constructions somewhat uncommon, but that doesn’t seem to have happened in practice. Maybe I did the maths wrong. There’s a little bit of tuning to be done here, but by and large, I think that it’s looking vaguely reasonable. Certainly a lot better than the old random names. And the new name generation is configured entirely based upon a simple text data file, so folks other than me can easily modify it, if they have a mind to.
(Actually, the last paragraph contained a slight lie: the real first generated name was “eaai”, because I had forgotten to tell the name generator that it was allowed to use consonants once in a while. Oops! “cough” was the first one it generated after I remembered to wire up the non-vowels.)
In any case, the next step in this will be generating smashed-together names, as are commonly spotted on more PVP-oriented servers. “BigDwarf”, “KillsYou”, and things of that sort. I expect that this will require a pretty big dictionary of words. Not sure how I’ll generate that. Maybe find an old, out-of-copyright dictionary somewhere and process it through a perl script or something, to make lists of nouns, verbs, etc.
After that, the next step will be linking up character name generation to the guild system (which is only rudimentary at the moment), to get those guild prefixes that people love to smash into their character names. But I don’t think I’ll be doing this immediately; there are other areas that are really more important. I was just touching names today because those terrible old names were starting to really annoy me.
I’ve also finished about half of the next “The Long View” article. Hopefully I’ll be able to finish that up tomorrow.