This week we’re going to talk about the languages in Ultima Ratio Regum. These have two components – the visual side, which is this week’s topic, and the coding side which allows the game to build up full dictionaries for each language. The latter side isn’t yet fully implemented, and I’m still working on how precisely language as a mechanic is going to work in-game, but as those who played the last version will have noticed there were a large number of possible fictional languages. If you looked in the game’s files, you’d have noticed sixteen languages, each in the 12×12, 10×10 and 8×8 font sizes. This entry is about how I went about creating these, what each is based on, and some of the restrictions I discovered I had to impose in order to make languages visible and distinct in as little as 8×8 pixels. I’m only going to cover some of the language here; by my own admission some are less interesting, and some more obvious in their origins, so I’m going to only cover the ones I think are the most intriguing, or that required the most work or research to bring to fruition. The game mechanics side of the in-game languages I’ll cover at some point in the future once said mechanic does, in fact, exist… The first language is based on various runic alphabets.
I confess that such alphabets are routinely used in various fantasy contexts and on this count I haven’t been particularly original here. I’m not quite sure why languages that look this way are so popular, though a few rationales present themselves. They’re clear and all aesthetically similar; they look like the kinds of characters that could believably be hewn into ancient rock with only basic tools, rather than more intricate or curving designs; they are somehow rather striking and lack any real ambiguity or potential to confuse one letter with another; and perhaps the cultural pervasiveness achieved by our long-dead Viking ancestors above many other non-extant civilizations has something to do with it too. Regardless, I started off with these because they could be drawn with clear, thick and straight lines, and could easily be scaled upwards or downwards to different font sizes. Despite some fairly heavy restrictions in terms of focusing on straight lines and as small a number of those lines as possible, a decent level of variation was possible. Here’s what the language looks like in the end:
This second language is inspired by Rongorongo, the as-of-yet untranslated series of glyphs (linguists are uncertain whether it is indeed a “language”, or perhaps a form of mythological archiving or memory aid) found on Easter Island.
I’ve always found Rongorongo to be a particularly aesthetically pleasing language with its combinations of half-ambiguous plants, humans and fish, and I find something quite enticing about the fact we don’t yet know how to categorize it – a language, a proto-language, or something else altogether. That it has held its mystery strikes me as an interesting aspect of the language, and I wanted to try and echo something about the lack of clarity Rongorongo displays about whether the images are letters, direct representations, or something else altogether. This was a much tougher language to create due to the intricacy of some of the designs – I was eventually able to make them all identifiable at even the 8×8 font size, though some were a lot trickier than others. I think this one turned out well and has a certain feel to it the other languages (not being at all symbolic) lack.
This next language is based on Hindi.
A language joined up a consistent line, rather than the ways in which handwriting is “joined up” in western European languages, was one I wanted to make from the start, whilst still making sure it remains distinct from any real-world equivalents. This one was both enjoyable and relatively simple to make, and scale down to the 8×8 font, though the application of a horizontal line imposes a few minor restrictions on it I haven’t yet worked out ways around – for instance, if generated around a ziggurat door. I will likely simply prevent this language image from being chosen in such situations, though I hadn’t done so just yet. However, long sequences of this language look very nice in-game, and contributes further to trying to produce a variation in linguistic aesthetic reasonably comparable to that we see in the real world.
The language below is based on cuneiform (much like, for all intents and purposes, the dragon language in Skyrim).
Much like the runic language, this one is very clear at all scales, and also lends itself to a variety of combinations of length and orientation of indentation. Equally, the way in which one can imagine such a script being carved into rock has always given the language a particular interest for me, and thematically I find the origin of such a language being centuries or even millennial before the start of the game very believable. The fact the tools used to carve the language are reflected in the language itself lends it, I think, a very unique air:
The next language you see below was a very deliberate attempt to make a language that differed widely from all the ones above. I can remember looking at the current file of languages and trying to think of an aspect I hadn’t used – many diagonal lines, or several curving lines – before realizing none of the languages so far used dots alongside other components. One was composed entirely of dots (not shown in this entry), but none uses dots in small amounts or as an accompanying part of the script to other aspects. Thus, I created this language, which was envisioned as a combination of curves and dots in different quantities, and one I think turned out very well:
Now we come to one of my favourite languages. I think this is one of the best languages I’ve created thus far, though it is not based in anything in particular (beyond labyrinths and mazes). This was one of my attempts to create a totally unique language, and I certainly can’t think of anything resembling it in either modern times or earlier history. Some parts bear passing resemblance to certain tiles in logographic east Asian scripts, but otherwise I wanted to make this language very detailed, very dense, but with a clear geometric preference for orthogonal lines and right-angles, and generally only a single consistent line that makes up the entire letter. Although it may not look it, this one translates well into small font sizes by simply reducing the numbers of loops, for example, a particular character in the language has.
Ultimately, what struck me as the most important factor was the internal consistency in each language. When one looks across languages, even those character seemingly very different, clear differences between scripts become very clear – whether alphabetic, syllabic or logographic, each has a preference for straight or curved lines, a willingness (or not) to use dots and other small markers, restrictions on how the language may be constructed, a way of joining up characters (or an insistence characters must be kept separate), and so forth. The languages for the game have tried where possible to reflect this, and to generate a reasonable amount of variation for each language whilst still staying within logical boundaries. Equally, there are rare cases where certain characters have been maybe slightly changed or slightly simplified just to aid ease of writing (or reading), and in some of the languages I tried to add a character or two that were slightly different, but could conceivably have developed from a slightly more awkward variation of the same character. There are perhaps another half a dozen languages in the works too, but they probably won’t make it into the game until 0.5, when full civilization and history generation will be implemented. It is worth adding, for those unaware, the name and the dictionary for a language will be generated at random each game. Which is to say, the “Hindi language” might have one name one game with a particular set of words assigned to it, whilst it will be totally different next time. Once 0.5 is implemented the game will generate a dozen ancient languages, assign names, dictionaries and images to each one, and then populate those in global ancient ruins logically. All contemporary languages in the game will use a contemporary Latin alphabet, albeit with a full potential complement of umlauts, accents and other diacritics.
Lastly, and as I’ve mentioned elsewhere, I’ve now hit over 1000 followers on Twitter, so this coming Sunday (the 13th) I’ll be doing a celebratory all-day coding/playtesting stream from (roughly) 12am GMT -> 12pm GMT. Do please stop by and say hello. Next week I’ll be doing another big URR update as I finish off everything in the release that isn’t health, injuries and death, after which – you guessed it – we’ll be moving onto health, injuries, and indeed, death. Until then you can keep up to date on my devblog, Facebook page, or Twitter feed. The devblog is updated weekly (though the day varies), Facebook a few times a week, and the Twitter roughly daily. Any thoughts, please leave them in the comments! Stay tuned...