Skip to content

Generator for a 'naming language', using the algorithm behind @unchartedatlas.

License

Notifications You must be signed in to change notification settings

dropecho/langgen

Repository files navigation

Naming language generator

This is code for generating a 'naming language', using the algorithm behind @unchartedatlas.

Example

For more details, see these notes.

Language

This is a language generator, it can create words and phrases/titles based on config.

CONFIG:

typedef LanguageConfig = {
	// Phonemes
	var consonants:Array<String>;
	var vowels:Array<String>;

	// Structures
	var syllable_structure:String;
	var phrase_structure:String;
}

for consonants and vowels see Consts.hx

syllable_structure is a string representing the syllable so

  • "CVC" means a syllable must have a consonant vowel consonant.
  • "CVV?C" means a syllable must have a consonant vowel optional vowel consonant.

phrase_structure is a string representing phrases/titles

  • "DS" => definite subject (i.e. the city).
  • "DSGN" => definite subject genitive noun (i.e. the city of stone)

new Language(config:LanguageConfig)

Language.createWord

public function createWord(?key:String, ?min:Int = 2, ?max:Int = 4):String {}
  • key to store word as (usually english word)
  • min syllables
  • max syllables

stores the word in "cache" to be used as subjects or nouns

JS

const { Language, Consts, Spell } = require('@dropecho/langgen');

var lang = new Language();

console.log(lang.createWord("city"));
console.log(lang.createPhrase("city"));

// outputs something like 'mimak'
// outputs something like 'mimak var'

Haxe

import dropecho.langgen.Language;

class Main {
  static public function main():Void {
    var lang = new Language();

    console.log(lang.createWord("city"));
    console.log(lang.createPhrase("city"));

    // outputs something like 'mimak'
    // outputs something like 'mimak var'
  }
}