Maintenance Name Generator

Skaldarnar

Development Lead
Contributor
Art
World
SpecOps
Name: Name Generator Module
Summary: This module provides a common interface for name generators and basic implementation(s) as well as needed resources.
Scope: (Basic) Module
Current Goal: Add more resource files, tweak Markov generator
Phase: Implementation/Maintenance
Curator: Skaldarnar, msteiger
Source: https://github.com/Terasology/NameGenerator
Related: Flower generation, City Generation

Since new and random names will be needed throughout the whole game this module will provide a common interface for name generators as well as basis implementations.
These generators can be used to create new NPC or plant names.
 

Skaldarnar

Development Lead
Contributor
Art
World
SpecOps
To give you an overview of what is currently implemented:

- common interface for name generators [finished]
- name generator based on Markov model (analyzing input in blocks of 2 characters) [finished]
- first sample resource files for Markov generator [finished]
- Markov generator with analyzing blocks of 3 characters [discarded]
- different types of generators [finished]

- generator for common names, e.g. "Wolf's Tongue" or "Widow's Kiss" as common plant names [finished]
- composite generators for more complex names like first and surnames, e.g. "Tungdil Björnson", or titles, e.g. "Broomhilda the Beauty" [partly finished]

- add more sample files (different name families, country and city names, ...)
 

msteiger

Active Member
Contributor
World
Architecture
Logistics
Hey,

I've reworked the Name Generator module and updated quite a few things to make name generation both easier and more versatile. Let's start with an example:
Code:
TownNameProvider townNameProv = new TownNameProvider(12345);
String name = townNameProv.generateTownName();
Simple as that. You can also explicitly select a theme:
Code:
TownNameProvider townNameProv = TownNameProvider(123455, TownAssetTheme.FANTASY);
Once you have an instance, you can also tweak the generated names:
Code:
TownAffinityVector aff = TownAffinityVector.create().prefix(0.5);
String name = townNameProv.generateTownName(aff);
50% of the generated names will have a prefix such as "Market", "Old" or "Nether".
Going one step further, you can even combine different name affinities:
Code:
TownAffinityVector.create().prefix(0.33).postfix(0.33);
This will give you 1/3 prefixed names, 1/3 postfixed names and 1/3 without.

Nether Kirchen
Dunharsden
Southophall
Green Hophall
Old Guildhey
Halgh Barrens
Similarly, you can create creature names:
Code:
CreatureNameProvider p = new CreatureNameProvider(123, CreatureAssetTheme.ELVEN);
CreatureAffinityVector a = CreatureAffinityVector.create().maleOnly().nobility(0.5);
String name = p.generateName(a);
This gives:

Gweradrae Nagalan the Wise,
Suss Camth,
Vel Our,
Estalandra Ilve,
Laethalandrieldralae Whiiliazym the Noble

What do you think of this concept? Feedback please!
 

Skaldarnar

Development Lead
Contributor
Art
World
SpecOps
First of all: I've merged your sneak peak thread with this one to keep all the information in one place ;) Therefore, I've added you as a contributor and updated the TODO list - basically only a family name generator is missing from my original list.

Prefix/Suffix generation looks good and covers most (all?) use cases, from creature attributes to nobility titles, depending on the theme/assets one provides.
 
Top