View Single Post
Old 11-01-2010, 06:12 PM   #26
silvarilon
Member
 
Join Date: Dec 2009
Posts: 144
silvarilon is on a distinguished road
Re: MUD Development Journal

I wanted to throw some ideas out about the previous language discussion.

We use foreign languages quite a bit over my way (We have four major "houses" that each represent a different culture, so each of them speaks their own language.)
Everyone can speak the "common" language (the language of the house that owns the city where the game is set) but members of the other houses can also speak their own cultural languages. There are also other languages around the game for other reasons (such as the game's equivalent of Latin, which the church sometimes uses, since the players are humanoid animals, most types of animals also speak their own "racial" language... and so on)

Essentially, this is good for a social game, since it means players can "keep secrets" during roleplay, while still showing what they are doing. It's more interactive for my character to say something in a foreign language to his friend, rather than me sending them an out-of-game instant message. Hopefully that'll lead to players staying in-character more, and being more interactive. It also provides social clues, what language did I speak? Does my friend also know the language? I'm taking a gamble that the listener doesn't know the language well. Could they guess what I said from the situation?

Because we have so many languages, we want them to feel distinct. We essentially do the "replace random characters", but with a big more logic behind it.

First, we look at the speaker's skill. If they are fluent, we just tag the language and carry on. If they are not fluent, we add up the letters in each word to get a "difficulty value" - for fun, I used a frequency chart of letters in english, meaning the letter "q" has a value of about 26, while the letter "e" has a value of 1. Which means "Queen" is a much harder word to say than "Engorge", despite being shorter. We compare the score to their language skill to see if they can speak the word.

Any words they can't speak get replaced with a word from an array. Those aren't "real" words, instead they are stutters.
So "I went to the zoo and saw an elephant" might become "I ... to the um and saw an ..uh"

This ensures that they are only speaking in the foreign language, and won't be overheard by anyone who doesn't speak the language. They also have the option to, instead of stuttering, use the normal language. So in that case, the phrase will come out "I went to the zoo and saw an elephant" to anyone who speaks the foreign language (with highlighting so they can see the words that were spoken in the common language), and anyone who only sees the common language might see "Da went meht zihlah zoo und zig de elephant"

Similarly, we check the listeners skill to see if they can understand the word, so if you only partially know a language, you might pick out some words but not others. Usually players play along with this by guessing the missing words. (It's easier to understand a word than to speak it)

The "foreign" words are generated from an array of syllables, prefixes, and suffixes. Each word gets assigned a score which is used as a random seed to decide how to construct it. That ensures that a word will always result in the same "foreign" word (so players can learn what their character's name sounds like in another language, can learn "key" foreign words, etc.) - it also ensures that the language sounds genuine. We've got languages that sounds like French, Latin, German, and Scottish.

Finally, we have specific words that always translate the same, which come from an associative array. So, the Avoirdupois house (the french dudes...) wouldn't use a different word for their own name when speaking their local language. Which means if you say "Avoirdupois" in the French-like language, it would still come out as "Avoirdupois" - if you say the word "and" it would come out "et", if you say the word "good" it comes out as "bon" and so on. It lets us scatter a smattering of recognizable common words through the languages, and helps the players recognize it as a genuine-looking language. It also helps us avoid any stupid-looking common words (you wouldn't want the word "a" translated as something too long, like "j'appulainten" since it'd be jarring how often that long word keeps cropping up.)

Animal languages word the same, we just use different syllables, prefixes, and suffixes. So a word in rodent might sound like "ikkit" while a word in cat might sound like "Mrreeewrrr"

It could be that I've thought too much about languages, and should have just used random character substitutions... at any rate, if you like this setup, you're welcome to our algorithms and dictionaries of syllables.
silvarilon is offline   Reply With Quote