[Home] [Groups] - Message: [Prev in Group] [Next in Group]
733: Re: [MUD-Dev] Name/language generation
[Full Header] [Plain Text]
From: Brandon Gillespie <brandon@roguetrader.com>
Newsgroups: nu.kanga.list.mud-dev
Date: Thu, 19 Jun 1997 11:30:25 -0600 (MDT)
References: [1]
Organization: Kanga.Nu
On Wed, 18 Jun 1997, Oliver Jowett wrote:
> I have a sneaking suspicion that I've seen discussion on this before, but
> FWIW..
>
> I'm slowly setting up a system where some NPCs (not the major ones, and
> not the minor - ie. animal-level - ones) are generated with unique names,
> physical characteristics, and personalities. As part of this I need some
> way to generate random names or words in a specific language.
In the ColdCore I distribute a simple but powerful name generator based on
a similar one written by Ross Smith. The documentation on it follows. I
can also provide code, or you can view it at:
http://www.cold.org/bin/display?target=word
The documentation:
------------------------------------------
This random word generator uses syllables and word patterns, and is
inspired by a similar generator written by Ross Smith (Infact, the
Lovecraftian dictionary came from his generator).
The generator uses different patterns to generate the word, where each
pattern has a chance of being chosen. First is the number of syllables
in a word. Once the syllables are chosen a syllable pattern is selected
for each syllable. From the syllable pattern vowel or consanant
patterns are chosen. It is possible to use two dictionaries for
consanants, so as to have 'first' and 'last' consanant patterns. The
syllable pattern must be composed of either V (vowel), C (consanant), or
LC (last consanant) tokens seperated by dashes, such as:
C-V-LC
Which would imply the syllable pattern of a Consanant-Vowel-Last
Consanant.
The various patterns are defined by submitting a configuration to the
word generator object (spawn $word for your own generator). This can be
done with the simple evaluation command (which will prompt you for the
configuration lines):
;$my_word.submit_chances(.read())
You can also list the configuration with:
;.tell($my_word.format_chances())
Configuration
The configuration takes one pattern and chance per line, with an
optional comment character of "#" which is discarded. The pattern must
begin with a directive designating the pattern. Directives can be any
of:
S Number of Syllables
SP Syllable Patterns
C Consanants
LC Last Consanants
V Vowels
There is no limit to the amount of patterns submitted. A very simple
configuration would be:
S 2 3
S 3 1
SP V 2
SP V-C 4
SP C-V 2
V a 10
V e 10
V i 10
FC th 1
FC b 4
FC f 4
FC qu 1
LC bh 1
LC d 4
LC b 4
------------------------------------------
Currently, we have two generators--a Lovecraftian generator and a Reimann
Generator. To show the difference here are 25 words generated from each:
Lovecraft: Nlii, Cthaqhlloyeu, Ctheuatii, Uumstra, Eu, Biims,
Eurthstrayiistiikthii, Uuayqhchoypaayst, Ayrth, Llafstrii,
Rra, Ktheumleuktheuak, Iiqh, Ab, Iiqh, Iioyqh, Mthayaj,
Raayqhrra, Euteh, Amsayms, Rriiktheusk, Caams, Mtha,
Graymsatgralth, Cthahii
Reimann: Lahhen, Tolnetel, Nnar, Douou, Bensen, Nne, Noul, A,
Vrreinesson, Ssagerirlnawlo, Mouh, Erre, Lin, Has, Vanmoncoum,
Nnecnou, Rrnasan, Louddage, Ninoufr, Hoc, Hob, And, Ger,
Vebon, Ras
Enjoy..
-Brandon Gillespie