Conlang is an abbreviated term for Constructed Language, essentially a made up language. Constructed languages are used in a lot of media to give a certain feeling to a setting, race, etc. You can see examples in the names and place names of your favorite RPG fantasy race or alien. Done right they’re ridiculously complex, take many factors into consideration and require a large time investment. That’s why some Conlang professionals make the big bucks. This is not an article about doing conlang right. That’s well beyond my expertise. This is instead an article about making a quick and dirty conlang generator based on a seed from an existing language so you can effortlessly name every guardsman, tavern, ceremonial birthing spear, whatever that your players pester you about.
I attempted to make such a generator for a game recently and found that they’reÂ fairly easy to construct with Google Sheets. Other spreadsheet programs will work fine as well if you have them, but the logic will be slightly different.
To start with you’ll need to put your word list in a page on your Google Sheet. Just for fun, we’ll base this conlang on the names of the cast of Jersey Shore. I’ve chosen to ignore the difference between first, middle and last names and to count the dash in Ortiz-Magro as a name so it shows up in our final results. Once you have them listed, break them up by first, last, and middle syllables like so:
Once your root words are broken down by syllables, use the =counta() function to count the number of cells with values in each syllable column. Put these above the root words to make it easy to add more roots later if you want to.
From there, use a formula to subtract the count of column 2 from column 1’s count etc… This will give us an estimate of the proportion of words that have each number of syllables.
Here we can see on Planet J-Shore that around half of names have 2 syllables, around a 6th have 1, 3, or 4, and ~4% have 5.
Next add another row with cumulative syllable count like so:
The next step is to build lookup tables for our syllables. It’s easiest to do this on a new sheet. The plus sign in the lower left will make new sheets. You can re-name your sheets with the drop down arrow on the sheet tab.
Copy-Paste your syllables into columns on this new sheet. Put ALL middle syllable columns into one column here. You can get rid of extra spaces by selecting a column, then from the menu choosing Data>Sort Range picking “has header” and sort. Add a table of numbers just like you were making a table to roll on. (which is what we’re doing) Don’t worry that you have an odd number of syllables.
Create a new sheet for the actual generator. Put in a column for the number of syllables in each random word, one column for each potential syllable (in our case 5) and a final column for the constructed word like so:
In the syllables column add the following formula to each cell:
The fractions in the brackets are the values from the cumulative syllable row from our first sheet. This code creates a random number of syllables based on our observed number of syllables in our seed words.
The contents of the 1st, mid and last syllable columns is all slightly different, but similar to this:
“$A2>2” checks how many syllables the word has. I’m assuming that syllables get added in order of first, last, mid1, mid2, mid3.
“randbetween(1,17)” is the possible “rolls” on the table.
“Tables!G$2:G$18,Tables!H$2:H$18” is the sheet “Tables” and cell range for the “roll number” and result for that syllable type.
Here’s the code for each column in order:
The final column has the code:
which just sticks together all theÂ pieces.
You can hide the first columns if you just want the output list, but I find them useful as a pronunciation guide. I might tweak this generator if I were going to use it by dumping the “-“ syllable, adding some more seeds, and assembling the individual name results into one to three name groups (nickname, first last, first middle last, and first last-last) but for the 15 minutes it takes to put together it does it’s job well enough.
You can view the final sheet here. Feel free to copy, tweak, and put in your own seeds for your own projects.
I started creating my own language last year and training myself in it using online study tools. This is a great way to build words (and similar if much more high-tech than the way I do it). You could plug in things you’d consider root words, and break them apart to build new ones.
Well, let me know if we can leverage these techniques to streamline your existing process. 🙂
As someone who loves the recreational data entry aspect of tabletop games, I thank you! This is the best gaming article I’ve read in a long time. I’m also a linguist, and I recognize that this is not conlanging, per se, but it’s awesome nonetheless. Thank you.
Yeah, absolutely admit this is about a conlang as a loaf of bread.
Let me give you some background where this comes from and if nothing else you may find it an amusing story:
Working on a campign right now. Was inspired by the “no forests on flat earth” movement I wrote about a few weeks back, and have been a big fan of Lin Carter’s “Green Star” series for ages (thanks to the internet I finally have 3 of the 5 books!) so in my campaign, I wanted to pay homage to that series in a lot of ways, including the language which is a lot like if you took Hindi and Lovecraft’s mythos and put it in a blender (side note: I am an American English speaker who nearly failed through my high school foreign language classes so you can imagine how well I stumble through THOSE pronunciations).
So off to the internet I go looking for a random word generator with either a “green star” option or a “mix Hindi and Mythos” option… Yeah right. Along the way I find plenty of conlang generators (and I’m already tangentially aware of conlang from seeing discussions of it elsewhere) but they’re ridiculously complex, as is kind of necessary. So I say “f- it” because I’m NOT going to educate myself on the finer points of conlang and how to do it RIGHT which is an entire career, just as an add on to a game I’m probably going to run for a handful of sessions, and I make a setup similar to the one above. For someone as ignorant of the details as I am, the end results seems reasonable.
You however, I hope didn’t spontaneously break out in hives just glancing at it. :p
Nice, thank you 🙂
also gives me another push towards writing up my randomizer and NPCs article… not now, obviously… you know… later 😉
I know how to work spreadsheets and I still came away reckoning it would be quicker to learn Esperanto. Kidding!
A seriously nifty idea there Matthew.
Of course, you have to be careful you don’t fall into the trap of becoming Richard and Billy’s first alternate game in Game of the Year.