If you have a desire to annoy art directors, terrify UI artists and make producers sigh, I recommend mentioning localization.

Loc is the process of translating your game into several languages, some which won’t use a Latin alphabet. Some which aren’t even read from left to right. Also every word costs to be translated, which means that all of those “temp” strings you put in the game? Unless they’re actually not in some way tagged as temporary the company pays for them. All of those strings that are used for the same action, except they’re named differently, and thus will be translated differently and end up being the equivalent of saying “back” in five different ways? Yeah, this is why Loc editors, producers and QA is important, never mind knowing when to line break Russian or how to shorten a word in Japanese.

Honestly, most creative directors and art directors1 I’ve worked with have been fairly unaware of what some of their decisions have done to a localized menu screen, just to give an example. We are – at least in most of the companies I’ve worked for – so fixated on having English looking good that we forget about German or Brazilian Portuguese2 and we also “forget” about accessibility, meaning our menus and UIs aren’t adapted to larger size fonts or different colour subtitles.

In other words, translating your game should be a consideration when you first build it, but as game teams we have a bit of a bias towards English.

One of my most eye opening learning experiences was entangled with some pretty awful bullying. I was set to “deal with” both loc and legal, because no one else wanted to do it, and in an effort to get rid of me I was given menial and repetitive tasks that were so below my skill level that a visiting UX designer from the publisher was visibly upset on my behalf. What was the task you may ask? Clean up the string database. While I appreciate the work that loc producers and editors do, and while I think it’s a very important job, it wasn’t at the time my job. The bullying is a side note, the learnings were real.

As I mentioned earlier, unless you have some sort of restrictions or naming conventions on the text strings developers are allowed to enter into your string database, it will rapidly devolve into – and I can’t really use other words here – a giant, fucked up mess. There will be button labels repeated tens of times. There will be nonsense strings. If you’re really unfortunate there will be strings signalling that you have racists and/ or sexists working at the company, because words like “whore” or “slut” and the n-word will be a part of your database. I’ve never come across this, but in the Dead Island game, a developer had named a power “feminist whore”. I can promise you that your players will find those strings, even if they’re not used. They’ll find all kinds of strings and they’ll draw all kinds of conclusions, so you don’t want strings in your databases that can even hint at something you’re not prepared to have spill all over the internet.

Anyway, I was given the task of cleaning up the database and when I started we had close to 120.000 strings in there. There was no automated way to deal with it, so I had to go through the database string by string and match those strings to where they were used in the game and see if one or two of maybe five or six strings could be used for that particular button label or command.

One thing you should know about localization is that the translators usually won’t see the game, and they have very little context for the words they’re translating unless the developers provide them with one. So, in addition to looking up strings, I also had to note where they were used and in what context.

It took about 6 months of work to pare down the database. The work consisted mainly of searching for a string, looking it up in game and replacing all various instances of it with one string.

It also consisted of communicating the string updates to the team, playing and replaying the game in order to find the missing instances of a string that had been consolidated, getting poked by translators because the hard limit on a word simply won’t fit in German and generally go totally white with fear any time an engineer suggested combining strings. At that point you have to start digging into the fact that many languages won’t use the same sentence structure and build as English and that some languages are gendered. In other words, you’ll be forced to learn grammar.

Being bilingual probably helped quite a bit in the process. Being able to understand the issues just by virtue of speaking more languages than English certainly assisted in not being so bloody-mindedly English centric. Sorry all y’all native English speakers out there. Not to be overly snippy but a lot of you native English speakers take your privilege to be understood wherever you go for granted. There are other languages, you know.

Despite the fact that this was work I was asked to do to get me to give up and get out3 I did learn quite a bit about loc and the various traps it presents in the process. I’ll list some of them for you:

  1. English is a language with short and precise words. Other languages are not. Or maybe I should phrase it differently. We’re English centric in the gaming industry. If we built our games around other languages, I’m pretty sure we’d see issues with localizing to English as well.
  2. Never, ever, ever combine strings in engine unless you’re 100% certain that it won’t mess up sentence structures in other languages. Sometimes it’s a lot cheaper to translate ten instances of “you have [#] blue shoe(s)” in one sentence rather than combining it into “you have + [#] + [blue shoes]” because of the way languages work.
  3. Use naming conventions for your strings FROM THE START so that they’re easy to find. REINFORCE IT. A LOT. If everyone names their temp strings “temp_” it’s a lot easier to find them once you’re doing a language and consistency pass on your game.
  4. Do a language and consistency pass on your game. You don’t want multiple labels for the same actions. Also, a friend told me about a translation pass where all the logs – as in pieces of trees – were named journals, because no one thought to check. Crafting material: Journal. Not a good look. In addition, you won’t end up like GreedFall and have De Courcillion called Mr., Sir etc. (Sorry GreedFall. It’s one of my pet peeves.)
  5. Give your translators the context of the word they’re translating. If they know that a log is a tree stump, you won’t have journals littering the woods.
  6. Set a character limit. Trust me when I say that there are ways to say “back” in languages that will take up an entire button legend.
  7. Have emergency solutions on hand, such as scrolling text, expanding to two likes, abbreviations and buttons to expand details. You will need it for German and Russian and in some cases for accessibility.

On my end, six months of scrubbing databases, annoying developers and strict orders to not add strings without talking to me meant that we could reduce our database from approximately 120.000 strings to around half. This meant that we saved a LOT of money on translation. It wasn’t the most fun I’ve ever had, but the back end of the game was all the better for it.

  1. Not to rag on art directors and creative directors, but please listen to your content creators, because even if they say stuff you don’t want to hear, they’re usually right.
  2. Lots of additional characters in Brazilian Portuguese, usually we have to ask the company providing the font to add them to their typeface.
  3. At some point I’ll post a text about how awesome people think I am, but for now you’ll have to live with my stories about leadership on various projects trying to get rid of me. As far as I understand it, it’s because I have principles, I’m honest and I say “no” a lot, which is probably why I have awards and an honorary doctorate. Okay, that was a brag. I’m sorry. I’ll go back to bashing myself in a minute.