This is the Kingdom of Tranaville. The eponymous capital of Tranaville is nestled at the north-eastern corner of the peninsula, with the close-by fort of Nanaburg overlooking the rocky coastline. Going toward the central town of Sissblilmville (the Mississippi of the region when it comes to difficulty of spelling the name), you'll first come by the small hamlet of Athmiftfield. Further west, by the connection to the mainland, you'll find Jirtho, the border town - but Sissblilmville also offers a road into the northern reaches of the region, on the other side of the Sissblilm forest and the Jirtho basin.
They speak differently up there, as can be seen from the large town of Prordsstornburg. The four smaller fledgling towns of Oatville, Tordsburg, Hulium and Relfbrook are named centrally, but their peoples speak just as strange. There can be no question that they have the most beautiful beaches in all of the kingdom, though.
Working on the Cozy Kingdoms, I found it important to have a robust town-naming algorithm. I cannot say that it is without fault. This post will go over the current method and my attempts at improving it.
Names like Prordsstornburg and Sissblilmville are a bit of an eyesore - and Athmiftfield is a bit difficult, too. Let us, however, look at a wider range of names:
Heaceville | Kindbrelhome | Feathbrook | Elle |
Ravefield | Ifttown | Nandville | Brordsville |
Jeedipa | Jellneartbrook | Bongblakestown | Stelle |
Avefield | Monga | Tandside | Flookia |
Lomeville | Eskville | Touthcheathtown | Brakescastle |
Eehome | Sidefield | Lelfackey | Wongburg |
Haleburg | Ipcastle | Stokusia | Routhium |
Pupo | Prootfield | Panaslooville | Bloulburg |
Akemixside | Ebey | Lamstoohome | Kipee |
Treacecastle | Leaville | Odium | Rulgayedo |
Which of these are good? Which ones bad? We should not only think about the terrible names, like Touthcheathtown and Jellneartbrook, but also about the boring or bland names like Haleburg and Lomeville. The latter seem fine, but only when juxtaposed with more complex names.
Algorithms like the one we will look at today is never complete. They can never be perfect. The algorithm must be tuned to give a certain yield with a certain mix of safe and alien names. What constitutes a good or a bad mix depends on the project one is working on.
Let's talk about the simplest form of the algorithm and build from there:
ONE - prefix and suffix
First, I searched the internet for a list of one-syllable words starting with a consonant:
Back
Ball
Band
Bat
Bean
Bear
Bed
Bee
...
Second, I wrote my own list of town suffixes:
Ville
Town
Burg
Field
Brook
Side
Home
Castle
Now, the syllables and the suffixes can be combined!
Backville
Balltown
Bandburg
Batfield
Beanbrook
Bearside
Bedhome
Beecastle
On their own, these are already quite okay. But if all towns had such simple names, it would become a bit samey. While they encapsulate the way some actual town names are named - like Sheffield, Newcastle, Liverpool - there are a lot of other types of names it will never be able to generate.
TWO - mutating the prefix
While the syllables are useful for the first part of the name, they do not need to actually be words. We could start by breaking apart the words, removing the initial consonant cluster. This means I turned:
Back => ack
Ball => all
Band => and
...
The vowel-consonant clusters above can be put together with different consonant-clusters to create realistic neologisms.
This is the list of consonant clusters I settled on - more exist, but we do not want too much complexity in these words, so most are just single consonants.
This is the list of consonant clusters I settled on - more exist, but we do not want too much complexity in these words, so most are just single consonants.
B, Bl, Br, Ch, Cr, D, F, Fl, G, H, J, K, L, M, N, P, Pr, R, S, St, Sl, T, Tr, W
Sometimes, putting together these actually just create other words, like ack from back put together with St becoming Stack. But the rest of the time, you get:
Brackville
Chackville
Dackville
Fackvill
Flackville
Gackville
Hackville
...
Finally, you can also just remove the beginning consonant cluster altogether:
Ackville
SIDENOTE: Why you should not mutate vowels
You might also imagine you could exchange the vowel for another random vowel, too. Not so fast! Not all vowels are equal. Kind of obviously, you could not do:
Bryckville
But even with more normal vowels, you should neither do:
Breckville
Testing it out, the only vowels that seem to look natural are the ones that one knows from some or other actual words:
A is good - back, black, sack, stack, crack
E is bad
I is good - stick, tick, lick
O is good - stock, block, rock
U is good - duck, buck, suck
Y is terrible
That is, what vowels are alloved depends more on the last consonant cluster than the initial one. On top of this, vowel-clusters exist, which are even more picky than single vowels. Thus, we will keep using the list of monosyllabic words just with the initial cluster removed.
THREE - less obvious suffixes
Earlier, we had these as suffixes
Ville
Town
Burg
Field
Brook
Side
Home
Castle
Most of these are actual words. Some are always related to towns, while others are contextual pointers (side, field).
On top of these, I also thought to add the following suffixes:
On top of these, I also thought to add the following suffixes:
-ia, -ium, -on, -ey, -ee, -ok, -a, -o, -e, -edo
They might look a bit strange. However, put them together with our prefixes from before:
Brackia
Chackium
Dackon
Fackey
Flackee
Gackok
Hacka
Jacko
Kacke
Lackedo
Now, I will scour a map of England and pull together some more suffixes of both sorts:
This, then, gives us:
Word | Suffix |
isle | gow |
rose | ley |
wick | ton |
house | raer |
vine | fries |
port | ey |
haven | by |
ham | cester |
pool | ness |
sea | thorpe |
mills | ing |
ford | chester |
borough | toft |
bridge | wold |
thing | gae |
bourne | bury |
stone | eter |
mouth | wich |
ville
|
ia |
town
|
ium |
burg
|
on |
field
|
ee |
brook
|
ok |
side
|
a |
home
|
o |
castle
|
e |
edo |
Nice! That sure is a much larger list to choose from. Let us try this out:
Word Kinisle |
Suffix Stonggow |
Gatrose | Kealey |
Travewick | Sakeston |
Heacehouse | Sirdraer |
Wogvine | Flushfries |
Prighport | Pandey |
Prunhaven | Louseby |
Hutham | Praircester |
Mulpool | Soneness |
Statsea | Blousethorpe |
Gogmills | Woarding |
Donnford | Reuschester |
Prushborough | Floytoft |
Tinbridge | Damwold |
Woothing | Keargae |
Beebourne | Proonbury |
Blulstone | Galeter |
Webmouth | Traithwich |
Sulville | Mateia |
Slouthtown | Hunium |
Workburg | Blighton |
Damfield | Blockee |
Hixbrook | Cranaok |
Jopeside | Patcha |
Pronthhome | Chanao |
Nuscastle | Trokuse |
Feartfield | Slorkedo |
Pamhome |
The success rate is pretty high right now. Warning: Next step might ruin it.
FOUR - dissylabism
Dissylabism just means words that have two syllables. My previous approach obviously was not good enough - I simply stacked two monosyllabic words together, as seen with our problematic names like:
Prordsstornburg (prords'storn'burg)
Sissblilmville (siss'blilm'ville)
Touthcheathtown (touth'cheath'town)
Jellneartbrook (jell'neart'brook)
While the two syllables together make an unnatural mess, either one of the monosyllabic words might be just fine:
Prordsburg Stornburg
Sissville Blilmville
Touthtown Cheathtown
Jellbrook Neartbrook
Dropping one of the middle consonant clusters is another option, which fixes the garbled mess, but still sounds strange.
Prostornburg / Prordsornburg
Sissilmville / Siblilmville
Toutheathtown / Toucheathtown
Jelleartbrook / Jeneartbrook
Dropping one of the middle consonant clusters is another option, which fixes the garbled mess, but still sounds strange.
Prostornburg / Prordsornburg
Sissilmville / Siblilmville
Toutheathtown / Toucheathtown
Jelleartbrook / Jeneartbrook
Still, all of us know of a few town-names that seem to have been dropped at birth, so I guess I will retain the system, with one less consonant cluster, at a lower frequency.
But let us also do something different instead. Just like I pulled a list of monosyllabic words, I could pull a list of disyllabic words. Sounds easy, right? Well, there are a few problems.
It is easy to accept that neologistic mack is just as much a word as back is. However, disyllabic words are much more distinct. For instance, take a word like tonight. Monight cannot be a word. Of course, this is because night is a word in itself. What about purple, then. Could murple or turple be words? Blurple?
Instead, I will pull a list of disyllabic words, remove the beginning consonant like before, and then only accept words which exist in several versions. For now, any duplicate is good enough, but a more robust version should require at least three, maybe four versions.
Let's do the list above again now with dissylabic beginnings.
Rothergow
Gangerley
Stetaton
Prartyraer
Fleterfries
Breganey
Prastaby
Stangecester
...
Ballingisle
Flasonrose
Cramiwick
Kobbyhouse
Stivervine
Saughterport
Wabieshaven
Flingerham
That seems to work just fine. Interestingly, the names are just as straightforward as the ones made from monosyllabic words. It seems that quite often, monosyllabic words have heavier consonant clusters comparatively to dissyllabic.
Finale
Let us put all these together into a new, more robust name generation scheme.
Welcome to the land of Bobbyrose, obviously a land of merry folk. The capital is located south of the Bobbyhill mountain peak and the Illham woods. Close to Bobbyrose, you will find Hellyport, and a bit further along the path towards the central trade road, the town of Laychester by the Laylake.
The central road runs from Orapool, through Rorryedo (which connects to the capital road and the Laypass), then to Illham, ending in the market town of Stewergow, where it splits off into a northern branch to the beaches of Sloonton township, and south to Croomport and Hishton on the other side of Stewer forest.
With a broader display, we could find the following names:
Mactiontown | Sloronissuesea | Trindthing |
Oxisle | Stongwold | Misheskport |
Trilmrose | Omewich | Finpool |
Staricko | Hairfries | Daggervine |
Misthaven | Brellyeter | Racewich |
Ridermouth | Loopool | Eaacething |
Stokusellygow | Eariddlevine | Goonillerium |
Leartoft | Oveobbythorpe | Puneartey |
Nallborough | Prornley | Ongraer |
Blinovine | Lungeham | Loarda |
Hm, I feel I have gone a bit too far with the disyllabic phrases. It would be nice to have several town names around 6-8 letters. And so the wheel turns...
DATA
To anyone interested or wanting to experiment with such an algorithm themselves, these are the word-fragments I use:
Initial consonant clusters:
"St","B","Bl","Br","Ch","Cr","D","F","Fl","G","H","J","K","L","M","N","P","Pr","R","S","Sl","T","Tr","W","","","","","","","",""
Monosyllabic words (initial removed):
"ace","ack","ain","air","aith","ake","akes","ale","all","am","an","ana","and","ar","are","ark","at","atch","ate","ath","augh","ave","ay","aya","ea","eace","ead","ean","ear","eart","eath","eb","ed","ee","el","elf","ell","en","er","esk","ess","est","et","eus","ey","ick","ide","ie","ife","ift","ig","igh","ight","ill","ilm","ime","in","ind","ine","ing","ink","ip","ird","ire","irl","irth","ish","iss","ist","ive","ix","oard","oat","ock","od","og","oint","okus","ole","olf","ome","on","one","ong","onn","onth","oo","ood","ook","oom","oon","oot","ope","or","ords","ork","orn","ose","ough","oul","ouse","outh","ove","ow","own","ox","oy","uck","ul","un","up","us","ush","ut"
Dissyllabic words (initial removed):
"ady","afe","ala","ali","ama","ami","ana","ani","any","ara","ary","asa","ata","ava","azy","eau","ego","eme","emo","ene","era","ero","eta","ial","ian","ida","ina","ino","ism","ita","ity","iva","oco","ody","olo","oma","ono","ony","ora","ory","oto","uba","una","ury","yle","ype","abel","able","agon","aker","ally","alve","ancy","ange","ante","arry","arty","ason","asta","asty","ater","aven","avid","egan","ella","ello","elly","emon","enny","enty","enus","erry","erve","etal","eter","even","ever","evil","ider","iger","iley","illy","inge","irty","isis","iver","obby","ogan","oken","olly","oman","ommy","oney","oral","oron","orry","oser","over","ower","ozen","unge","upid","abies","actor","adder","agger","aking","allen","allet","alley","allow","amber","anger","annon","arrot","arrow","arson","aster","ation","eagle","eason","eater","egion","icket","ickle","iddle","iller","illow","imple","inger","ingle","inner","inter","ipple","irate","issue","itter","ocket","ollow","onkey","oodle","opper","organ","orrow","oster","other","otion","ouble","oving","umber","under","utter","action","adness","aining","alling","anging","easure","eather","ooking","othing","urning","aughter","istress","ountain"
Suffixes:
"gow","ley","ton","raer","fries","ey","by","cester","ness","thorpe","ing","chester","toft","wold","gae","bury","eter","wich","ia","ium","on","ee","ok","a","o","e","edo","isle","rose","wick","house","vine","port","haven","ham","pool","sea","mills","ford","borough","bridge","thing","bourne","stone","mouth","ville","town","burg","field","brook","side","home","castle"
Within each category, each fragment is used with the same frequency.
Comments
Post a Comment