Popularity
1.0
Growing
Activity
0.0
-
12
1
0

Description

This is a golang implementation of name generator described at RinkWorks, its based on https://github.com/skeeto/fantasyname code.

Programming language: Go
License: The Unlicense

fantasyname alternatives and similar packages

Based on the "Game Development" category.
Alternatively, view fantasyname alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of fantasyname or a related project?

Add another 'Game Development' Package

README

PkgGoDev License [Go Version](go.mod) Tag Mentioned in Awesome Go

CI Go Report Card Maintainability Test Coverage Issues

fantasyname

This is a golang implementation of name generator described at RinkWorks, its based on https://github.com/skeeto/fantasyname code.

example

How it looks like:

    import (
        "fmt"
        "log"
        "time"
        "math/rand"

        fn "github.com/s0rg/fantasyname"
    )

    rand.Seed(time.Now().UnixNano())

    gen, err := fn.Compile("sV'i", fn.Collapse(true), fn.RandFn(rand.Intn))
    if err != nil {
        log.Fatal(err)
    }

    fmt.Println(gen.String()) // will print something like: entheu'loaf

Here is a full example.

You can run it with go run _example/main.go to see results.

pattern syntax

The letters s, v, V, c, B, C, i, m, M, D, and d represent different types of random replacements:

  • s - generic syllable
  • v - vowel
  • V - vowel or vowel combination
  • c - consonant
  • B - consonant or consonant combination suitable for beginning a word
  • C - consonant or consonant combination suitable anywhere in a word
  • i - insult
  • m - mushy name
  • M - mushy name ending
  • D - consonant suited for a stupid person's name
  • d - syllable suited for a stupid person's name (begins with a vowel)

Everything else is emitted literally.

All characters between parenthesis () are emitted literally. For example, the pattern s(dim), emits a random generic syllable followed by dim.

Characters between angle brackets <> emit patterns from the table above. Imagine the entire pattern is wrapped in one of these.

In both types of groupings, a vertical bar | denotes a random choice. Empty groups are allowed. For example, (foo|bar) emits either foo or bar. The pattern <c|v|> emits a constant, vowel, or nothing at all.

An exclamation point ! means to capitalize the component that follows it. For example, !(foo) will emit Foo and v!s will emit a lowercase vowel followed by a capitalized syllable, like eRod.


*Note that all licence references and agreements mentioned in the fantasyname README section above are relevant to that project's source code only.