Recently while doing some world-building for a role-playing game with a friend we were seriously struggling with naming character consistently.

By consistently I mean make the names feel as though the belonged to the same culture or race. We had a particular theme or structure in mind but struggled to create names that suited it. So I'm turning to the wisdom of writing.se for advice.

How do you name characters so that they feel as if they belong in the same culture?

General tips on technique people use to keep names consistent are useful but in particular I am looking for advice on the traditional fantasy type names. Names with lots of "'" and made up syllables.

  • 2
    Be careful when selecting a method that the output is not TOO uniform. For example, look at the names from the apostles: Paul, John, Matthew, Thomas, ... they do not look THAT similar. On the other hand, do think about the structure. For example, maybe Dwarves always mention their clan names (it's a matter of pride) unless they were exiled/banned, whereas Elves always mention their ancesor (it's a matter of respect) unless they were disavowed etc... Commented Apr 8, 2019 at 11:04
  • Good question. I assume you've considered and rejected just plagiarising from existing weird languages (such as Finnish: eetu, iida, jaakkima...).
    – Nathan
    Commented Apr 8, 2019 at 13:12
  • @NathanCooper The danger and downside of that plan is creating names that are painful for native speakers of said language to read. Could imagine a book with the love interest unknowingly named 'Paska'. Voi, voi... Commented Apr 8, 2019 at 22:15

4 Answers 4


Use the same process online name-generators use

I'm not sure of the protocol for providing answers that are pretty much just links to other answers on SE, but the answer to this worldbuilding question sounds like exactly what you're looking for.

tl;dr Define a set number of linguistic building blocks ('ne', 'rt', 's'en' etc.) and combine them using a random number generator. The set number of 'blocks' will help give your language a distinct 'sound' to it.

You can then go further by defining some grammatical rules like 'ab never follows aa' and cross out words that use that combination.

A point on real-world names

Names in the real world travel further than you think, even before the invention of fast travel and communication technologies. They travel by diffusion along shared borders, through shared history/mythology/religion, and through conquest.

Names that make the jump between cultures are frequently adapted to fit the vagarities of the adoptive language (or do so over time). This is one of the reasons the Hebrew name 'Yohanan' crops up as the Greek 'Ioannes', the Latin 'Johannus', the Slavic 'Ivan', the Arabic 'Yahya' the Italian 'Giovanni', the Spanish 'Juan', the French 'Jean', the German 'Hans', the Welsh 'Ifan', and the English 'John'.

Might be getting a little Worldbuilding.SE on you here, but if you use a couple of different iterations of your random name generator for different languages, you can use the interplay of your names to tell a little about the deeper history of your cultures. Who invaded who. Which religious movements spread through which cultures. Who has a shared mythological heritage, if not a linguistic one.

Pick one name, and morph its phonemes to fit each of your particular languages to paint a picture of a shared history.


I dealt with this issue in my most recent novel by training neural nets to generate the names for me. I trained recurrent text-generation neural nets on names from combinations of different cultures--the combinations that have made it into the novel so far are Arabic/Gaelic (for the fictional country of Almeredh), French/Gaelic (for Calonheil), and French/Japanese (for Kaizene, but I only have a few characters from here). I got the names from Wikipedia name lists by culture.

I found this surprisingly effective in creating plausible-sounding names that sound like they all come from the same place, without being immediately recognizable as one of their source languages. I generated a few hundred or thousand names for each combination and cherrypicked ones that actually sounded good for the novel. For some examples, the main characters from Calonheil are named Sithmina, Ausiar, Valentile, Ecraiph, and Chalaith. The mains from Almeredh are Gilleashar, Satris Saida, Aenzular, and Flairnach. (Almeredh and Calonheil are meant to have closely related languages, which is why I had them share one source language, so they do sound similar.) You can do place names and assorted nouns the same way, using place names and common nouns from the source languages.

This strategy will probably work better for Earth-ish, historical or contemporary settings, rather than far-future settings, distant planets, or languages spoken by aliens with non-human sets of phonemes.

The Python 3 code I used is here. It'll take as many source files as you want, and filters out words that were recreated exactly from the source files, so all the returned words are original. It can run on a laptop given around 30-45 minutes for training to finish.

  • As a software engineer by day I like this approach. I find some of the names perhaps a little hard to pronounce though. Do you think it would be possible with more training to produce more pronouncable names? Or would you just need to change the source to more Anglo-sised names?
    – linksassin
    Commented Apr 9, 2019 at 0:22
  • @linkassin More training or turning the temperature (amount of randomness introduced into generated names) down might help. Really the problem is that I used anglicized Gaelic with lenition and eclipse, which are both odd ways of spelling various modified consonants. If I were to publish it I'd probably work with a non-Gaelic-speaking editor to respell them in ways easier for an English speaker. Commented Apr 9, 2019 at 12:01

I use this name generator for everything for stories and rpg. https://www.fantasynamegenerators.com/

It has a massive amount of names for almost everything and is very well organized with catagories and sub-catagories. Each set of names also includes an explanation about structure and usage.

For example:

enter image description here enter image description here

This site is very easy to use, I have found it to be invaluable.

  • I do use this a lot. I don't always find the names to be high quality though and need to re-spin lots of time before I can find one that is good. I've found [donjon](donjon.bin.sh) to give good results. Interestingly you picked Dark Elf. I was actually naming drow when this came up.
    – linksassin
    Commented Apr 9, 2019 at 0:07
  • Yes. I often tweak the names, or try out different catagories until I find one that fits what I'm looking for. I've tried out other name generators but this one works the best for my. I will check out donjon. The half elf think was totally random. Lol. Commented Apr 9, 2019 at 0:42

Bear in mind that languages do not have all names sounding the same. If you take my paternal grandfather's name Hyhory and his sons, Isydore, Anton and Kassian you will note considerable variation and that is in one family.

When I am working on names in fantasy, I choose a sound I like and use that as a foundation phoneme. One character, I wanted his name to mean rune, so looking at the word, I decided to flip it to Enur. In others I decided that soft vowels and consonant combinations would be used. In one culture, each name had a y in it somewhere.

You want special characters used, so Enur could become 'nur or En'r or E'r or En'. Kryshyn could become K'shyn, K'sh'n, 'ryshyn or Ky'yn.

Remember to say the name aloud. If you cannot pronounce it, you might have a problem.

You make the rules, just try to almost abide by them.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.