https://github.com/s0rg/fantasyname
RinkWorks fantasy name generator for golang
https://github.com/s0rg/fantasyname
game-development golang name-generation procedural-generation
Last synced: 13 days ago
JSON representation
RinkWorks fantasy name generator for golang
- Host: GitHub
- URL: https://github.com/s0rg/fantasyname
- Owner: s0rg
- License: unlicense
- Created: 2021-11-08T17:54:10.000Z (almost 4 years ago)
- Default Branch: master
- Last Pushed: 2025-04-25T10:23:53.000Z (6 months ago)
- Last Synced: 2025-04-25T11:33:47.356Z (6 months ago)
- Topics: game-development, golang, name-generation, procedural-generation
- Language: Go
- Homepage:
- Size: 65.4 KB
- Stars: 36
- Watchers: 3
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-go - fantasyname - Fantasy names generator. (Game Development / Search and Analytic Databases)
- awesome-go - s0rg/fantasyname
- awesome-go - s0rg/fantasyname
README
[](https://pkg.go.dev/github.com/s0rg/fantasyname)
[](https://github.com/s0rg/fantasyname/blob/main/LICENSE)
[](go.mod)
[](https://github.com/s0rg/fantasyname/tags)
[](https://github.com/avelino/awesome-go)[](https://github.com/s0rg/fantasyname/actions?query=workflow%3Aci)
[](https://goreportcard.com/report/github.com/s0rg/fantasyname)
[](https://qlty.sh/gh/s0rg/projects/fantasyname)
[](https://qlty.sh/gh/s0rg/projects/fantasyname)
# fantasyname
This is a golang implementation of [name generator described at RinkWorks](http://rinkworks.com/namegen/),
its based on [https://github.com/skeeto/fantasyname](https://github.com/skeeto/fantasyname) code.# example
How it looks like:
```go
import (
"fmt"
"log"
"time"
"math/rand"fn "github.com/s0rg/fantasyname"
)func main() {
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](https://github.com/s0rg/fantasyname/blob/master/_example/main.go) is a full example.
You can run it with `go run _example/main.go` to see results.
# ready-to-use cli app
Created by [TLINDEN](https://github.com/TLINDEN/): [gfn](https://github.com/TLINDEN/gfn)
# 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 `` 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`.