Hi all! Last time, I already showed you a little bit of the cave name generator. Let's go into more details of why I implemented it and how it works.
If you read this weblog regularly, you know there are a few main problems with the game I try to fix. A problem that players often identify, but that I rarely mention, is the fact that there isn't much variation in the game world. If you get lost, there are very few 'anchor points' you could use to find your way back, because all places look so alike.
While this is true, fixing it is not my main priority, as I feel the negative emotions caused by this problem are small in comparison to some other problems (like the problem that it is unclear what to do in the game). However, it is really really problematic when it comes to caves, the main feature I'm currently working on. Caves are scattered across the landscape, and their main selling point is that they are randomly generated. However, if players won't be able to tell the caves apart in the landscape, they might as well not realize that all caves are different.
So how do I help players telling caves apart? Giving all of them a wildy different exterior is probably the best solution, but I'm not sure whether I would be able to find the right balance between them being pretty, clearly different, while also making it clear that they are all still caves. I believe the second best solution is that there should be something that strikes the eye INSIDE caves that is different for each one. That's where cave names come in:
And on a more practical note, this allowed me to write another generator algorithm, which is love, because it's a piece of code that is completely separate from the rest of the game. This means I can write it on any computer, wherever and whenever I want. This name generator, for example, was already created more than a year ago in a hotel room and on a plane while on a business trip to Bratislava.
All right then, how does the algorithm work? I'm a computational linguist by profession, so I'd love to tell you now that I have used some supersmart and intelligent algorithm to analyze existing names, discover patterns in the language, and use that to generate a brilliant generation module... but it's actually a really simple system that glues syllables that I like.
Not sure what 'kind' of names I wanted, I decided I wanted to try to make a generator that created names with a more magical Elvish feel (say, Tolkien's Sindarin) and a name with a more harsh, Klingon-like feel. I collected syllables for both; think of syllables like 'aer', 'loth', 'las', 'el' for Sindarin, and things like 'K'tah', 'Kra','gho', 'tach' and 'oq' for Klingon.
The next thing I did was some experimentation to find out whether these syllable 'sound' good in the beginning, middle or end of the names. For example, 'ien' works really well at the end of names to give it an Elvish feel, but not some much at the beginning, and the Klingon-like 'Kro' works really well at the beginning of words, but not so much at the end.
Want to know what the algorithm can do? Here you go:
Al Banang, O Ghochinkri, Kronooq, Tan Quetuorf, Qaghomagi , Karia, Val Kruoorf, Tah Pin'ria, Quetach, Val Ban'ria, Banmagi, Chighochaq, Tan Queria, Pintach, Kratamagi, Quekri, Qatuang, Tah, Katalkri, Chonvalpok, Shin Bantupok, Chonria, Tan Gai'ang, Krutak, Queang, Quegan, Kla'otak, Ka'ang, Shin Qagan, Chonang, Tan Qatulia
Glorond, Araberia, Ganbeon, Riestel, Lothelas, Celaeien, Mithala, Elel, Araäeria, Ellaria, Lothbeir, Gloron , Laiond, Nimegria, Glorbeon, Rias, Ellaäeël, Mithel, Nimir, Celbeëll, Lothria, Lothbeien, Nimas, Imellas, Glorbeël, Lothbeala, Glaeron, Gloregel, Laiegian, Aerbeël
If you want more development, see [twitter] or [facebook]. If you want to be a tester, you can subscribe on[olvand.com].