Disclaimer: yes, it is a bit of a discussion, but a very good one. ;)

So, I would like to create a program that can randomly generate languges, for video games, television or just for fun. I'm already a decent programmer, but I need help with understanding all the possible different ways languages can be structured.

I'll start be taking a randomly generated alphabet(I've already taken notes on this, but feel free to comment), and then start assigning sounds to each letter based on the average "openness" and depth requested for the language. I'm using the IPA as a basis for sounds. then I'd start assigning both used and unused sounds to groups of letters. I'd proceed to "translate" the entirety of greek and latin roots, by sound, then assigning the letters or groups of them, checking to make sure there are no conflictions. After this monstrous task is done, "average" words that don't stem from roots would be generated. Finally, language syntax would be generated, this is what I need help with.

Is there possibly a list somewhere, or could somebody give me a basis to start on, of the many possible combinations language syntax could be done. I'm an English speaker, but I know a tiny bit of Danish. Any help understanding how context is held in a sentence(at a very low level) without little to no ambiguities, and how they (can or can't) vary will be greatly appreciated. :)

Edit: Some people seem to get the impression that it's to either select a random language or that it would be human. It is to generate a language randomly from the ground up on a computer, and 95% of the time, it probably would not be human. It's specifically going to be used in a game where you're exploring the galaxy, but it could be used anywhere.

  • Can you clarify whether you're aiming to generate actual languages selected at random, from the set of known human languages, or are you aiming to generate a conceivable human language, by random selection of key properties? If you want the former, the answer is "can't be done", but there is some possibility for the latter.
    – user6726
    Dec 14, 2015 at 20:07
  • Latter, however, it wouldn't necessarily be human :p
    – user11081
    Dec 14, 2015 at 20:40
  • 1
    I think your project must be a lot of fun! Are you planning to use these languages for larger scale texts (discourses) or rather to generate short strings of one-two sentences? Of course, the higher you go, the more you must take into account to make it plausible. In general, if you want to be serious about the plausibility of your languages, you might want to read a typological book, such as Language Universals and Linguistic Typology by Comrie. Dec 15, 2015 at 0:15
  • Thanks Ivan! I came up with the idea a few months ago when I was working on a magic game concept, and figured that exploring several cultures would have far more depth if there were actual languages to explore, and not just letters rearranged randomly. The idea rebirthed when I started an internship with a space sim. So, there could be any manner of text, however, trying to find a way to have that generate in-game will be the hardest part. Funny thing is: I hated language arts before, so I have to start from the ground up, but, given the application, it's actually interesting to me now :)
    – user11081
    Dec 15, 2015 at 12:07

3 Answers 3


I would say that you have the horse and the cart inverted, that you need to start by deciding how utterances are structured syntactically and semantically, and at the end of the process figure out the sounds and letters that this maps to. You also need to sort out how general and flexible you want this program to be. If you were aiming to randomly select human-like languages, you'd want to identify N properties with, say, two values (could be any number, of course) and use those settings to design the language. A toy example would be the following property list (in descending order of value):

Subject precedes verb
Verb precedes object
Subject precedes object
Subject has case marking
Object has case marking
Verb agrees with subject
Verb agrees with object

English would be "language 114" given this list and Danish would be "language 112". Then you'd need a really big property list, with at least 32,000 properties.

Alas there is no such list out there, so you'd need to do a lot of creating. A good starting point would be to try to specify all of the elements of a sentence, then ask how pairs (or triples) of words might be ordered. You'd need more than just subject, object and verb: what about "location", "instrument", "beneficiary" and various other functional relations? Subjects (objects, and so on) aren't just single words, they are entire phrases centered around a noun, embellished with... adjectives? articles? numerals? possessives? A verb in a language could just be a verb, but in many languages you have to say whether it is past, present or future tense (and maybe past and present are the same; maybe present and future are the same). When you decide that you want a language with verbs indicating past, present and future tense, then you have to make a decision about how that is indicated, for example you could mark present with one prefix and future with a different prefix; or they could both be suffixes; or one could be a prefix and the other a suffix. Suppose you decide that the present is marked with a prefix /kan/: then you have to decide if there are any rules of pronunciation where /kan-plaf/ is changed to [kamplaf] or [kanblaf] or [kamblaf]... that list is enormous.

Your question essentially reduces to the field-worker's training problem: what kind of questions do you need to ask when you're attempting to describe any random language. There are a number of guides out there, which tend to spend time on issues that are not relevant to your concern (ethics, how to record and organize data, how to evaluate informant responses) but will also include some typological overview (so that you aren't freaked out when you learn that in some languages, the verb can actually precede the subject and even stranger, the object can precede the subject). Knowing what the dimensions of variation between known human languages is a first step. A starter list of readings would include Bowern Linguistic Fieldwork: A Practical Guide, Crowley Field Linguistics: A Beginner's Guide, Vaux Linguistic Field Methods, Whaley Introduction to Typology: The Unity and Diversity of Language, Vellupillai An Introduction to Linguistic Typology, Comrie Language Universals and Linguistic Typology: Syntax and Morphology, Payne Describing Morphosyntax: A Guide for Field Linguists and Exploring Language Structure: A Student's Guide, Merrifield Laboratory Manual for Morphology and Syntax, Bickford Morphology and Syntax: Tools for Analyzing the World's Languages. Maybe if you want just one book, get Comrie.

  • English would be "language 114". Why?
    – dainichi
    Dec 16, 2015 at 8:10
  • If you're contemplating the alternative 122, I decided that pronoun form isn't purely about subject and object, it's something else. If it just seems mysterious, the list is in descending order, and binary 1110010 is 114.
    – user6726
    Dec 16, 2015 at 17:42
  • Ah, so you're making a binary encoding of the properties. Is that supposed to be obvious? Anyway, are there any languages starting with 110 binary?
    – dainichi
    Dec 16, 2015 at 23:52
  • A handful of Amazonian languages like Xavante, and Yoda-talk.
    – user6726
    Dec 17, 2015 at 0:16
  • But assuming you mean Xavante is OSV, that would start with 100. I'm asking about 110. My point is: if first and second property are 1, won't the third one have to be 1 as well?
    – dainichi
    Dec 17, 2015 at 0:27

I am assuming that you don't want to generate actual languages that one can learn and communicate in so much as things that appear to be such languages. If so, then I would keep it relatively simple. A model of a language that may well be already too sophisticated for the purpose is determined by the following information:

  • A relatively small (2-3 digits) number of parts of speech.
  • Some parts of speech represent entire sentences.
  • For each part of speech a small number of context-free transformations that say, e.g., every A can be replaced by BCD. In general, instead of A there may be any single part of speech (to keep it simple), and instead of BCD there may be any sequence of more than one part of speech. For each part of speech A, the various transformations have probabilities. And with a certain probability (not too small!) no transformation will be applied at all.
  • For each part of speech a number of words each of which represents it. (Some words may represent more than one part of speech.)

By varying the probabilities slightly you can easily create different registers of the same language (spoke, advertising, bureaucratic, literary, ...).

An even simpler model would be just using n-grams on the word level. And to create the words, you could use n-grams on the letter level.

A more sophisticated approach would combine the first (grammar) and second (n-grams) approaches.

However, you may be interested in sentences for actual communication situations that may actually repeat, so that in case of normal human languages a 'consumer' of your languages might actually learn them. Dealing with this perfectly is much harder. If you can do that, don't waste your time on toy languages - make a lot of money by the first translation software that really works well! (In other words: this task is probably too hard.)


Supposing you want something that appears to be a human language (as Hans Adler supposes in his answer), I think it would be feasible to invent a "secret language", like Pig Latin, which is a way of disguising a real language so that those who don't know the method of concealment will not understand its relation to the real language that it's derived from.

For instance, you could write English using the Mycenaean Linear B writing system, and perhaps apply some other simple transformations, until it was no longer recognizable as English.

The problem with designing a new language from the bottom up is that you don't know how, no one can tell you, and it would be too hard.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.