🔡
Syllabore
GitHub
  • Overview
  • Starting Out
  • Fine-Tuning Generators
    • Positioning
    • Clusters
    • Weights
    • Chancing
    • Transforms
    • Filtering
  • More Techniques
    • Formatters
    • Generator Pools
    • Syllable Sets
    • Generator Serialization
  • More Examples
    • Soft/Hard-Sounding Names
    • Fantasy Names
    • Spaceship Names
    • Futuristic City Names
  • Class Docs
    • FilterCondition
    • FilterConstraint
    • GeneratorPool<T>
    • INameFilter
    • INameTransformer
    • IPotentialAction
    • IRandomizable
    • ISyllableGenerator
    • Name
    • NameFilter
    • NameFormat
    • NameFormatter
    • NameFormatterGeneratorOptions
    • NameGenerator
    • NameGeneratorSerializer
    • NameGeneratorTypeInformation
    • SerializedNameGenerator
    • SyllableGenerator
    • SyllableGeneratorFluentWrapper
    • SyllablePosition
    • SyllableSet
    • Symbol
    • SymbolGenerator
    • SymbolPosition
    • Transform
    • TransformSet
    • TransformStep
    • TransformStepType
Powered by GitBook
On this page
  • Numbered Cities
  • Descriptive Sci-fi Names
  • Alien city-sounding names
  • Combining everything
  1. More Examples

Futuristic City Names

Numbered Cities

// Generates names like: Zaut-31, Ort-77, Maut-623, Vyk-01
var numberedCities = new NameGenerator()
    .Start(x => x
        .First("znmyvr")
            .Chance(0.9)
        .Middle(x => x
            .Add("aieoy")
            .Cluster("ae", "au", "ee", "ai"))
        .Last(x => x
            .Add("sktrx")
            .Cluster("th", "rk", "st", "rt", "xt")))
    .Inner(x => x
        .First("-"))
    .End(x => x
        .First(digits).Chance(1.0)
        .Middle(digits).Chance(0.66)
        .Last(digits).Chance(0.33))
    .Transform(x => x
        .When(-1, @"^.{1}$")
        .Insert(-1, "0")) // Add a leading zero to single digit numbers
    .SetSize(3);

Descriptive Sci-fi Names

// Generates names like Nora Moonbase, Matica City, Logio Colony
// Remember to call Next() on the formatter instead of the generator

var names = new NameGenerator()
    .Start(x => x
        .First(x => x
            .Add("srlmn").Weight(5)
            .Add("t").Weight(3)
            .Add("bghkc").Weight(1))
        .Middle(x => x
            .Add("aeio").Weight(5)
            .Cluster("io", "ou", "ie").Weight(3)
            .Add("u").Weight(1)))
    .Inner(x => x.CopyStart())
    .End(x => x.CopyStart())
    .Transform(new TransformSet()
        .Chance(0.2)
        .RandomlySelect(1)
        .Add(x => x.Replace(-1, "ron"))
        .Add(x => x.Replace(-1, "byte"))
        .Add(x => x.Replace(-1, "der")))
    .SetSize(2, 3);

// 'RandomSelector' is from Archigen, a dependency of Syllabore
var typeSelector = new RandomSelector<string>()
    .Add("city", "station", "prime")
    .Add("colony", "moonbase", "citadel");

var descriptiveCities = new NameFormatter("{name}{type}")
    .Define("name", names)
    .Define("type", typeSelector, NameFormat.Capitalized, true);

Alien city-sounding names

// Generates names like: Radax, Tirasax, Darisaxis
var alienCities = new NameGenerator()
    .Start(x => x
        .First("strd")
        .Middle("ia"))
    .Inner(x => x
        .CopyStart())
    .End(x => x
        .CopyStart()
        .Last("x"))
    .Transform(new TransformSet()
        .Chance(0.2)
        .RandomlySelect(1)
        .Add(x => x.Append("is"))
        .Add(x => x.Append("os")))
    .SetSize(2,3);

Combining everything

// As long as all generators and formatters are declared
// before hand, this generator pool will create names like:
// Zaut-31, Matica City, Go'kugo

var cities = new GeneratorPool<string>();
cities.Add(numberedCities);
cities.Add(descriptiveCities);
cities.Add(alienCities);
PreviousSpaceship NamesNextFilterCondition

Last updated 1 month ago