Generating Better Character Names

Games masters and players alike struggle with character names, settling for a thief named “Bilbo”, a wizard named “Harry” or “Dave the Fighter”. When faced with a group that reverses nearby objects for characters resulting in “Lemarac” or “Reeb”, then it’s time to consider other options. Fantasy names tend to be weird and varied, ranging from the made-up, hard to pronounce (“Xygag”) to the real world (“St Cuthbert”), with many in-between as something recognizable but modified.


Games masters and players alike struggle with character names, settling for a thief named “Bilbo”, a wizard named “Harry” or “Dave the Fighter”. When faced with a group that reverses nearby objects for characters resulting in “Lemarac” or “Reeb”, then it’s time to consider other options. Fantasy names tend to be weird and varied, ranging from the made-up, hard to pronounce (“Xygag”) to the real world (“St Cuthbert”), with many in-between as something recognizable but modified.

All of the Names
Characters often have multiple names, sporting ones for nicknames, families and ancient tribes. Dungeons & Dragons Fifth Edition tries to help players with suggested names for all their races. Luckily Fantasy Name Generator covers all of these, with generators by the hundred. Character name for a Game of Thrones? Eight generators under Pop Culture. Danish, Swedish or Norwegian needed for a pseudo-Viking setting? All there under Real Names. Other holes are covered by Fantasy Names, and check-out one for “My Little Pony” I intend to use for a random unicorn generator.


Each generator has detailed notes covering how names are created and sourced, with bits of lore for world-building and how to use the names. It also shows the dedication of the creator to the work of generating names.

The Name List Method
A GM can Look prepared to players by preparing one or more lists of names ahead. Use them for the road, tavern or temple, or as a prisoner, passenger or outraged pickpocket victim. They can cross names off as they go for each NPC and their players will be thinking every NPC is important.

For some campaigns I’ll have separate name lists for the common races of a region, but in other campaigns I’ll have just two lists, one for male and one for female. Perfect for this is Chaotic Shiny’s The Fantasy Name Generator, which offers a simple list of useful fantasy names for male or female, creating ten each time.

Check out the many other well-thought out generators on your visit, including several others for names. Most are game neutral and range from the very specific to the widely useful.

Names by Length and Consonants
Our final generator at Rinkworks steers away from names by culture, instead giving options by length or number of vowels. Over 100 names get generated each time so users can pick and choose their favourites.

Options for name length include short (“Nuk”), medium (“Yoroth”) and long (“Enthwarmos”). Names can be filled with vowels (“Antoelli”) , with consonants (“Thristen”), or alternate them (“Zilomos”). If desired a name can be filled with apostrophes or dashes.

More Generators
What are your favourite name generators? Which parts of a campaigns do you want covered in the future?
 

log in or register to remove this ad


log in or register to remove this ad




Ratskinner

Adventurer
Got a Link? :)

So, I go to get it...and it looks like I killed the most recent version in a recent cleanup. Which stinks because I had added some features like "Capitalize First Letter". However, I do have an earlier version that I used to generate almost strictly words and word roots for fantasy languages.

Copy and paste the code below into a text browser and save it as an HTML file. Open the file in a browser and you should be good to go. (check for viruses first, if your the careful sort.)

Code:
<!DOCTYPE html>
<html>
<head>
<script>
function generateWords()
{
skillString=document.getElementById("symbolList").value;
symbolLists = skillString.split("; ");
outputString = "";
for (i=0;i<100;i++){
    word = "";
    for (j=0;j<symbolLists.length;j++){
            var characters = symbolLists[j].split(",");
            x=Math.floor(Math.random()*(characters.length));
            word = word + characters[x].trim();
            }
        if (i<99) {
            word = word + ", ";
            }
        outputString = outputString + word;
    }
document.getElementById("pyramid").innerHTML=outputString;
}

function alphabetizeWords()
{
wordString=document.getElementById("pyramid").innerHTML;
wordList = wordString.split(", ");
wordList.sort();
outputString = "";
for (i=0;i<wordList.length;i++){
    if (i<wordList.length-1){
        outputString = outputString + wordList[i]+ ", ";
        } else {
        outputString = outputString + wordList[i];
        }
    }
document.getElementById("pyramid").innerHTML=outputString;
}


function iterateWords()
{
skillString=document.getElementById("symbolList").value;
symbolLists = skillString.split("; ");
iterationLength = 1;
var iterationMod = new Array();
var characters = new Array();
for (i=0;i<symbolLists.length;i++){
    characters[i]=symbolLists[i].split(",");
    }
for (i=symbolLists.length-1;i>-1;i--){
    iterationLength = iterationLength*characters[i].length;
    iterationMod[i] = iterationLength;
    }
iterationMod[characters.length]=1;
document.getElementById("notices").innerHTML = iterationLength + " words will be created.";
outputString = "";
for (i=0;i<iterationLength;i++){
    word = "";
    for (j=0;j<symbolLists.length;j++){        
            word = word + characters[j].slice((i/iterationMod[j+1])%characters[j].length,(i/iterationMod[j+1])%characters[j].length+1).toString().trim();
            }
        if (i<iterationLength-1) {
            word = word + ", ";
            }
        outputString = outputString + word;
    }
document.getElementById("pyramid").innerHTML=outputString;
}

</script>
</head>
<body>
<h1>Word Generator</h1>
<p>
<h3>Sound/Character Lists</h3>
Separate each set of characters for your word by a semicolon and a space. Each character or sound must be seperated by a comma, spaces between or around commas are ignored. 
<textarea rows="10" cols="80" id="symbolList">a,e,i,o,u; b,c,d,f,g,h,j,k,l,m,n,p,q,r,s,t,v,w,x,y,z</textarea>
</p>
<button type="button" onclick="generateWords()">Random 100</button>
<button type="button" onclick="iterateWords()">Iterate All</button>
<button type="button" onclick="alphabetizeWords()">Alphabetize</button>
<p id="notices">Output:</p>
<p id="pyramid"></p>
</body>
</html>

...or maybe that won't work so good! :lol:
 



Remove ads

Remove ads

Top