Does That Make it Scolfish?

Saturday, March 23rd, 2019

I’ve been messing around with predictive text and Markov chains for my campaign, to come up with a quick name list reference to use with one-off NPCs. The players decided, in a fit of whimsy, that the king of the elves was named Scott. Scott Eddington. Fine, I says to myself, the elves are Scottish. Ach. We have Scottish elves.

However, we’d already thrown around a bunch of elf-ish sounding names for other elves and locations in their kingdom, so I couldn’t just borrow straight from a Scottish name list. Hence my playing with language dissection tools–I needed to make the choices work with each other.

A couple decades ago, I used to be really interested in designing conlangs — constructed languages — and still had a few tools sitting on my drive, and some remaining memory of how languages are functionally constructed. This was something I’d done multiple times in the past for fun, as well as for writing fiction and use in fantasy gaming; for example, taking apart Sumerian to populate a pseudo-Sumerian lexicon, or combining Finnish with Celtic to produce a new language.

I didn’t quite need to dig quite that deep into my toolset, though, or give myself a refresher course on the subject. I just needed a simple list of names that would sound right, and I already had the tools to do so.

Or so I thought.

I discovered a number of those tools no longer function on a 64-bit OS, and their programmers have long-since disappeared into the mists of the internet, so getting an update was no longer feasible. Nor was installing a virtual machine running Windows XP just to do this.

So I went with what I had: Textpad, Excel, and the Internet.

The first thing I needed was lists of names: Scottish and Elvish. Both were reasonably easy to find. Neither, however, were available as a plaintext list, being tied to meanings, and gender, and historical information, and so forth. With enough knowledge of macros and RegEx, or skill at Googling, you can use Excel and TextPad to quickly strip the extraneous information from a block of text and pare it down to just the pieces you want. Though some lists are easier to pare down than others.

That ease of availability also gave me choices. There were long lists of modern Scottish names, which I suspected were just “names people in Scotland are giving their babies right now”, rather than a list of traditionally Scottish (and Scottish-sounding) names–which is what I really wanted–as well as a decent-sized list of Scottish-Gaelic names. The latter was something of a jackpot, as these already sound vaguely similar to a Scott-influenced elvish. (They are also, however, insufferably unreadable and unpronounceable to Americans unless carefully transliterated into modern English.)

This did, however, give me something to shoot for in terms of sound.

I eventually went with a shorter list of modernized, traditional Scottish names.

However, the first list of Elvish names I used ended up not being elvish-sounding enough. There were tons of names on it, but only a handful had the precise Tolkienian feel I wanted for the next step. So I created an Excel spreadsheet that randomly combined elvish prefixes and suffixes with core elven words to produce what I hoped might work as elvish-sounding names.

The results were hit-or-miss due to the simplistic randomization algorithm and the content of the core word list. While I poked around for a shorter list of elvish names taken directly from Tolkien’s work, nothing I found was written in a way I wouldn’t spend much more time than I already had paring down the information. I ended up using a quickly curated selection from the randomized combinations.

Note: I could have gone deeper into this project and determined the common consonant, vowel, and CV clusters for each language, then written a script to randomly combine those clusters in the most common patterns and lengths for the desired child language. I almost did, as I have (or rather, had) a couple tools specifically made to do so–I, in fact, had written one myself which is surprisingly one of the programs that still functions–but doing so would also have proved much more time-intensive than I desired for this particular project. The Markov chain generator was going to fake this closely enough that I didn’t mind skipping this step.

Armed with my two lists of names, it was time mush the lists together: I put both lists into one column, one name per line, then used Excel to randomly mix the lists together (easily achieved with Excel’s RAND function and sorting), then pasted the now randomized list into Textpad, using RegEx to turn the column into a block of text (a “corpus”), given the Markov generator I was using required the input as a block. (Note: I possibly incorrectly presumed the randomized combination would help the generator mix the two languages together more easily, increasing the likelihood it would borrow from both when producing new names–this step may have been unnecessary). The generator then parsed the corpus to discover the most common letter combinations, prefixes, and suffixes, and combined those results into new words following the rules it deduced from the corpus’ content.

Finally, I checked the result.

The first few tries weren’t quite correct. There were a significant number of two-letter names as well as excessively long names, as well as too many instances of names that simply didn’t sound right, or pronounceable. I had to play a bit with the content of the corpus and the rules the generator was using to parse the corpus until it began producing lists that looked and sounded right–results that were neither too oddly random, nor just reproductions of names in the parent lists.

I eventually threw some Scottish-Gaelic names into the mix, which also helped produce better sounding (and looking) combinations.

While the generator still produced a few two-letter names, and a couple really long names (which is fine, because Scottish and Elvish do that at times, and it will make my players’ eyes cross to deal with a twenty-letter place name), I produced a decent-sized list of “Scottish-Elvish names” I can draw on during the game, for those times when the players decide they really want to know the name of Random City Guard or NPC Farmer, or even Unremarkable Village or the answer to “What Do Elves Call Squirrels?”

Leave a Reply