Sunday, October 18, 2009

Zzigy the Warrior

One thing that often bothers me is random name generation. Almost every 'random' name generator program anywhere is actually a single random number generator that picks a name out of an existing list. So, everyone who can't think of a name for a familiar in say, kingdom of loathing, winds up with one of four names, not an *actual* random name.

Names are complex things, I can give that up. Michael isn't exactly a word you would nicely find by putting in seven random letters, and words are generally more complex than that in the first place. So what can be done? Well, dwarf fortress has a good start to it (although like everything in the game it's way too complex). Each dwarf you randomly generate has a number of spaces in their names, and each one can be filled with one of a group of name sections like "shu" or "Meh". Unfortunately, almost all of them are from the same list, so it is possible for you to wind up with Shushu Shushu as a name if you're really unlucky. Each of the names has it's own description and if you're looking to build a dwarf name you can read them. But there's hundreds of them, and that's what makes the names seem random. Combined, you wind up with a few tens of thousands of combinations and that's what you're picking out of, but still, only a small fraction of them are both readable or interesting.

I've started fooling around with another program that generates random strings of characters. It's nowhere near random name quality, but it's certainly better than coming up with "Gort" or "Shushu" every thirty seconds. So far it generates two to five sections composed of one vowel and one consonant, in no particular order. There's about a ten percent change of getting a fantasy-name-joiner in there too, like a ' or a - . You get a lot of unreadable gibberish, but nothing unpronouncable save the rare cases where you have x's matching up and that's *still* not that bad. I'll let you know as it continues to shape up.

And for anyone wondering how tinyworld is coming along, I've stripped out all the code I had for making multiple floors, and am attempting a higher-level way to work it out. I'll keep you up to tabs if I ever get that working.

No comments:

Post a Comment