On Thu, 15 Apr 1999, Andrew Ritchie wrote: > Has anyone implemented a 'name example' function? As in, a function > that miraculously generates names for characters who are a bit stuck? > An example of this is the name generator on 'Dragonrealms' RPG. I > guess I'm after rules the computer can understand in order to make a > name that's pronouncable. Well, it could be different for various races, but the basic idea is to list the syllables that combine together and then just randomly combine them. (There's undoubtedly a more elegant manner to do this, but this method is simple.) Mailer code: const char * syllable_array[] = { "a", "ka", "sa", "ta", "na", "ha", "ma", "ya", "ra", "wa", "ga", "za", "da", "ba", "pa", "i", "ki", "shi","chi","ni", "hi", "mi", "ri", "gi", "ji", "bi", "pi", "u", "ku", "su", "tsu","nu", "fu", "mu", "yu", "ru", "gu", "zu", "bu", "pu", "e", "ke", "se", "te", "ne", "he", "me", "re", "ge", "ze", "de", "be", "pe", "o", "ko", "so", "to", "no", "ho", "mo", "yo", "ro", "go", "zo", "do", "bo", "po", "n" }; /* Should be the number of syllables in the table above, this might be * wrong -- I didn't bother to count, I just made a guess */ #define NUM_SYLLABLES 67 void GenerateName(char * buf) { int i, length, max_syl = MAX_SYLLABLES-1; length = number(4, 13); i = 0; last = -1; *buf = '\0'; while (i < length) { int j = number(0, max_syl); if (last >= 0 && !str_cmp(syllable_array[last], "n") && *syllable_array[j] == 'n') continue; strcat(buf, syllable_array[j]); i += j; last = j; } } Which will generate names that are remarkably Japanese in appearance. For instance, "Budoko," and "Naomi." The GenerateName() function should only very rarely produce really horrible names like "aaaa" but there's still a very real chance, and some work would have to be done to it to safe-guard against this. There's an attempt in there to protect against generating sequences where a single 'n' is followed by another 'n', so there will be no "Nnni." As always, it's completely untested, and I can't attest to how well a purely (pseudo) random approach will work. > Secondly, I was thinking about dynamic room descriptions, but I'm not sure > as to how much lag this will produce, evaluating a script everytime someone > 'look's. Has anyone had experience with lag-time in this area? The answer is, of course, none if done properly. It may not sound useful, but it's the best answer one can give. If you're experiencing lag problems, you have a very poor algorithm. I don't see why one would need to parse a script file for every 'look', but if you are going to be doing something along those lines, it's be far more efficient to create a parser tree to represent the possible paths for the description to take. This way you're not analyzing or parsing the script, but simply executing the parser tree. A truly dynamic description route would generate room descriptions without the need for a script. (Personally, I'm going to an entirely computer generated world with computer generated descriptions and an optional overhead display map. People may argue about the quality of computer written descriptions, but, in my comparisons, the results of my primitive work has been comparable or above the descriptions found on the vast majority of current MUDs. We're not talking about a stupid little, "The grass is green here. The trees are tall," but a full blown generated description. It's not possible to generate a good science fiction novel this way, but a quality description that appears to have been written by a good writer isn't unfeasible. Not to mention the consistency and the complexity of these algorithmic descriptions that a scripted or static method couldn't even begin to approach.) > Finally, the MUD I am creating at the moment is almost pure roleplay, > but I understand that a MUD is a social game and many people just want > to have an idle chat to someone else, in an out of character > enviroment. I was thinking about setting aside some taverns as OOC, > but then I don't want people to go to the tavern just to escape their > IC punishments (ie, if they pkill someone and then run straight to an > OOC tavern as a haven). I also don't want people killing people, and > then simple quitting the game to avoid punishment. Anyone got any > ideas? The method I am presently using in my development base is allowing people to login to the game OOC.[1] Note that I use an account system which is an abstraction of certain player specific data that need not be kept on individual characters. That is, password, term settings, etc. An account is allowed to own up to a specified limit of characters (by default, two, but I can change this value for individual accounts). Logging in IC means logging in a character which belongs to the account, but not for OOC. It is my view, and I'm sure others share it, that associating IC names with OOC presences can ruin role-play by not providing sufficient distinction between the OOC personality and the IC personality, not to mention the possibility of encouraging the use of the OOC forum for IC discussions, which may be okay for MUSH (or, more probable, "true") style role-playing games in which coordination between characters is necessary because roles are played through emoting, but probably not in the action RPG format that DIKUs so often take. -dak : Having problems due to his "smart" power supply being stupid. [1] Not a CircleMUD, but an experimental, multi-threading server, Jade, that I'm developing. +------------------------------------------------------------+ | Ensure that you have read the CircleMUD Mailing List FAQ: | | http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html | +------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/15/00 PST