Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  

Author Topic: Adding reason to the randomness of names  (Read 1403 times)

Anvilsmith

  • Bay Watcher
    • View Profile
Adding reason to the randomness of names
« on: August 18, 2006, 04:01:00 pm »

First of all, let me just say that I'm among those who would love to contribute to Dwarf Fotress, with actual code. Sadly, DF seems to have neither a dev team nor an open source policy... While this may help ensure that Toady's vision of the project never falters, it also makes updates painfully sparse.

I'd like to suggest a more algorythmic approach to DF's name generation. As it is right now, the names sound neither poetic nor logical: no rhythm seems to be used when putting the words together, and every terrain type seems to draw upon the same list of words. I got the "Hairy Spine of Secrets", "Quick towers of proliferating" and "The livid hills of dye" on the latest world I generated. Granted, I realize much can be lost in the translation, and that these names do have symbollic meaning, but still... It would be nicer to have the names spring out immediately.

I use rhythm constantly, almost unknowingly, whenever I write real prose, and it shows. The text simply has a more cursive feel, as the reader never needs to switch from one rhythm to another while going through it; there's also the added bonus of suggesting a certain pace or attitude to the reader. To obtain the right rhythm, simply assign two integer value to each word - one for the number of syllables, and 1 for the rhythm itself, where the bits set to "1" represent stressed syllables. When hunting for an iambic foot or dimeter, the program would still (presumably) pick a word randomly from the list assigned to the relevant terrain/city class, but have a greater tendency to exclude words which did not fit into the rhythm. This way, long and convoluted names can be included without fear of them sounding particularly awkward.

Granted, the idea of using rhythm might appear unrealistic. Dwarven/elven/kobold names on a completely different world would certainly not match the rhythmical requirements of English phrases. And it seems   the newest version has cut down on overly long names, making rhythm somewhat unnecessary. Still, I get some "clean stormy prairies" and the like that could make use of it.

What is necessary, though, is a way of keeping names thematically cohesive; I don't simply mean that swamps should carry nasty names (indeed, it could be argued that some swamps ought to receive nice names, just like  the great icy mass of Greeland in the real world), but that the game should establish how poetic, abstract, erudite and "alive" the words ought to sound ("alive" words include personifications, such as "wise" and "stealthy"); each word might also alter these requirements slightly. Of course, the requirements would simply offer a greater percentile chance for certain words to be rejected. Take "grainy", which has an "alive" rating of 2 on a scale of 1-10 and an "abstract" rating of 3 (compared to harsh, which can very well have 5 in each rating) - if the word only demands an abstract rating of 7 and alive rating of 10, "grainy" might have an extra (7 - 3) * 10 / 2 + (10 - 2) * 10 / 2 chance of being rejected.

Note that some words can describe abstract concepts (like persistent) that may nonetheless apply to people.

Apart from these, there could be ratings such as "desirable", "dark" and "powerful". "Hairy" isn't particularly imposing or powerful, so "Hairy Spine of Secrets" doesn't make much of a name. Not to mention the fact that secrets are abstract, whereas hair isn't. "Morbid spine of secrets" or "Hairy spine of muttons" both seem somewhat more feasible. Note that I consider even words like "vanquished" powerful, not because of their actual meaning, but because of their feel.

Names would also be made realistic if they drew upon actual weather conditions, landmarks or historic figures / events ("plain of the collosus" or "valley of blood") .

Oh, and it would also help to catalog adjectives based on whether they involve the object's size, shape, age, color, origin and material, or are simply related to how an observer would feel about them (beautiful, grandiose, frightening, scary etc). This way, you can sort out multiple adjectives in the same name more effectively.

The whole point of this algorythmic approach would be to avoid ridiculous names like the "hairy" thing above (I got a lot worse, though, such as jungles of lacy love and whatnot)... I can think of many ways of implementing all these features that wouldn't honestly slow the game down. By using something of this sort, names like "Facebringer" or "Prophet" would have a far smaller chance of emerging.

Logged

Solara

  • Bay Watcher
    • View Profile
Re: Adding reason to the randomness of names
« Reply #1 on: August 18, 2006, 04:12:00 pm »

Don't listen to him Toady! The crazy names bring me so much joy. If not for me, do it for the Autumnal Ring of Crabs and their neighbors the Human Kingdom of Shooting!

[ August 18, 2006: Message edited by: Solara ]

Logged

Toady One

  • The Great
    • View Profile
    • http://www.bay12games.com
Re: Adding reason to the randomness of names
« Reply #2 on: August 18, 2006, 04:54:00 pm »

Painfully sparse?  I suppose I could go for 2 releases a day...  but I know what you mean.

There's already a minor implementation of this (see "raw\objects\language_SYM.txt" and "raw\objects\language_words.txt").  Of course, it's nothing like I wanted it to be yet, but that's true of everything.  I haven't used any numeric ratings yet, aside from adjective placement (having two adjectives appear in the 'wrong' order can hurt), and some vowel/const cluster frequencies and some phonotactics when generating the translations into the other languages (I also scanned those by hand, except for goblin which I wanted to leave more alien by imposing less of myself on it).

Logged
The Toad, a Natural Resource:  Preserve yours today!

Capntastic

  • Bay Watcher
  • Greetings, mortals!
    • View Profile
    • A review and literature weblog I never update
Re: Adding reason to the randomness of names
« Reply #3 on: August 18, 2006, 05:00:00 pm »

I don't get where he's coming from with the painfully sparse updating, but I do agree that eventually randomly generated names for locations, worlds, objects, and people should be more making sense.  

But working out existing bugs seems to be the main focus here, so I don't mind if it take a while to get around to.

Logged

ricree

  • Bay Watcher
    • View Profile
Re: Adding reason to the randomness of names
« Reply #4 on: August 18, 2006, 06:26:00 pm »

I'm guessing that the sparse updating comment was based on predictions for the future.  The update frequency at the moment is amazing, but it doesn't necessarily mean anything in the future.  More developers would help if someonething were to come up in Toady's life or if he started to get burnt out.  

That said, I can see why he wouldn't really to deal with the headaches that bringing in more people could involve.

Logged

GauHelldragon

  • Bay Watcher
    • View Profile
Re: Adding reason to the randomness of names
« Reply #5 on: August 18, 2006, 06:30:00 pm »

Heh ya I like the random names too. My fort's name is "The Hairy Cudgel-Coisters" XD
Logged

Gezol

  • Bay Watcher
    • View Profile
Re: Adding reason to the randomness of names
« Reply #6 on: August 18, 2006, 08:20:00 pm »

I was actually planning to make a post about this. As much as I like the general idea of how the names work, too many of them are just sort of nonsensical, and although it is kind of amusing at first, it gets old eventually, at least for me.

One thought I've had playing is that I liked the dwarven names in the old gameplay movies better than what they have now, in general- I don't know how those were generated, but there the dwarves had names meaning things like "Dwarven Sun of Faith", "Great Mother", "Ruby Diamond", etc. They not only sounded cool, they actually sounded like names dwarves would have. In the game I'm playing now, by contrast, while there is one dwarf whose name means "Silverystrengths", which is actually quite cool, in general it's more like the one named "Laboredopens", which is just sort of blah- doesn't make much sense, or sound that dwarven.

What I'd suggest is to figure out what kind of patterns dwarven names follow and then have a name generator just for them. For example, you might figure that dwarven names generally involve references to stone, strength, war, etc. and that they generally are a modified noun- like "Oakenshield", "Ironaxe", "Glitterdiamond", "Goldhammer" etc. From there, you could have it randomly choose a noun from a list of words that are used in dwarven names, and then have it randomly pick from a list of modifiers appropriate to that noun. Elven, human, and goblin names, meanwhile, would probably follow a completely different pattern- it might be worth reading up on how names work in different languages for ideas. (Compare how Icelandic names work as opposed to Japanese names, or Arabic names, for example.)

In any case, this is all flavor stuff, and fixing bugs and such should probably be the first priority, but I have to say I am looking forward to when some more work is done on the names. (It actually can help with gameplay too, I find... it's easier to keep track of one's dwarves when they have names that stick in the mind. Of course, that can work both ways... in the old "Back to the dwarf game" thread, Toad mentioned an early version of the name generator that produced a dwarf named "Gutterpants" at one point, which you have to admit is a very memorable name.)

Logged

Toady One

  • The Great
    • View Profile
    • http://www.bay12games.com
Re: Adding reason to the randomness of names
« Reply #7 on: August 18, 2006, 08:40:00 pm »

Although I only have compound nouns, a lot of this is the fault of the symbols and can already be modded.  In raw\objects, the entity file has a list of which symbols are okay for dwarves:

[SELECT_SYMBOL:ALL:ARTIFICE]
[SELECT_SYMBOL:ALL:EARTH]
[CULL_SYMBOL:ALL:DOMESTIC]
[CULL_SYMBOL:ALL:SUBORDINATE]
[CULL_SYMBOL:ALL:EVIL]
[CULL_SYMBOL:ALL:UNTOWARD]
[CULL_SYMBOL:ALL:FLOWERY]
[CULL_SYMBOL:ALL:NEGATIVE]
[CULL_SYMBOL:ALL:UGLY]
[CULL_SYMBOL:ALL:NEGATOR]

So they will pick words that are related to artifice or earth for one part of the compound, and all of the culled symbol words are removed from the possibilities for both parts of it.  The artifice list is huge though.  Labored is probably on there.  In a few of the fixed symbols that haven't made it to files yet, there's also a sub-symbol that controls all of the "non-main" words, like the other word in the compound.  Region names work this way.  The main word is always something like "world" and the other words have to have the "mythical" symbol and can't be too foul.  The result is much like you'd get with the old dwarf names.  They are "correct", but a little predictable.

The reasons the early names looked better is because the dictionary was only 150 words with fewer forms that were mostly related to dwarvish things.  As the dictionary expands, the names become dilluted without tight controls.  I'm ambivalent as to how tight they should be.  Random mush is bad, but it's good to mix things up sometimes.

[ August 18, 2006: Message edited by: Toady One ]

Logged
The Toad, a Natural Resource:  Preserve yours today!

Gezol

  • Bay Watcher
    • View Profile
Re: Adding reason to the randomness of names
« Reply #8 on: August 18, 2006, 09:32:00 pm »

Maybe what you could do is have the random name generator be able to pick a wild card on occasion. I'm not sure if this is the clearest way to express it, but say there's 150 words(ideally it would be a lot more, but that's for the sake of example) in the standard dwarven name list. When the generator rolls for a name, it could actually be rolling a d155, and if it rolled a number higher than 150, it would roll again, and this time it would be on a list different from the standard dwarven name one. The numbers here are just examples of course, and you could make the number of wild cards higher or lower depending on how often you wanted it to happen.

I don't know if I'm explaining what I'm picturing here that well, but I think something like that might get the ideal effect- mostly very dwarven sounding names, along with an occasional oddity to mix things up, as you say.

Logged

Solara

  • Bay Watcher
    • View Profile
Re: Adding reason to the randomness of names
« Reply #9 on: August 18, 2006, 11:24:00 pm »

Whatever, I still think the names are awesome, (can anyone beat Dumat Amazeboots or Zon Gripsteel, or my metalsmith Stodir Bronzecall? I think not.) and I don't want the dictionary getting trimmed down to the point where I start getting repeats the way I do with first names.

Say what you will, but the generator as it is is capable of putting out some real gems. (Though speakign of gems, there probably should be more gem and ore related names. Also alcohol - those are the three most important things in a dwarf's life after all.)

EDIT: Did I mention that Zon commands the Golden Frilly Trenches of Shooting? Truly his squad is a force to be reckoned with.

[ August 19, 2006: Message edited by: Solara ]

Logged

Anvilsmith

  • Bay Watcher
    • View Profile
Re: Adding reason to the randomness of names
« Reply #10 on: August 19, 2006, 02:12:00 am »

To explain what I meant by updates... I'm not talking about how often new versions are put on the site. I'm talking about how much content resides in those versions. Toady's doing an excellent job on his own, but ten people working on the interface, adding new stuff and fixing bugs would make each new release a lot more dense with updates (a word which I used, confusingly, to suggest content rather than the releases themselves).

The reason I vote for giving words certain properties on a 1-10 scale, instead of making them flat-out "artifice-related" or "ugly", is that it lets the random generator pick from a greater variety of names while still being cohesive, as well as define what it'll be looking for on the spot. If, for some reason, the game wants a swamp to have beautiful, peace-related words, it would actually be likely to include them.

Some words related to artifice deal with the   gritty side of it, some with the theory of it, and so on; it would therefore help to give the words more than a single parameter/flag as the dictionary grows.

And, Solara, for what it's worth, I love some of the stranger names too. It's just that, most of the time, the need for cohesion wins out.

I noticed the names are sounding more logical in v0.21.100... Am I just getting lucky, or is the system becoming more robust?

Logged

ponpoko

  • Escaped Lunatic
    • View Profile
Re: Adding reason to the randomness of names
« Reply #11 on: August 19, 2006, 02:41:00 am »

Personally, I like the totally random names. To be honest, the game often feels like some strange humorless parody of generic swords-and-sorcery books - a lot of the situations are simply ludicrous, the battles are gleefully violent and excessively verbose, and the game world and its history is often arbitrarily epic in scale. Having powerful warriors named "Peacehug" or "Butterman" roam the vast Plains of Balding or the Hills of Pregnancies just kind of feels right to me in that context.

Also, best random-generated threat so far: "I am Lin Slaughtersword! Master of Mysteryman, who thought she could be a man!"

It's got a nice rhythm to it.

Logged

Toady One

  • The Great
    • View Profile
    • http://www.bay12games.com
Re: Adding reason to the randomness of names
« Reply #12 on: August 19, 2006, 03:55:00 am »

You're just getting lucky, the other coder didn't get a chance to work on the names yet  :p
Logged
The Toad, a Natural Resource:  Preserve yours today!