Hey BATTLETECH friends! I’m Jo, Core Tech producer at HBS and principal producer for our 1.4 update. You may have seen me around the forums, at Mech_Con 2018, or on HBS social media. I’m somewhere in this picture:
Writing a developer diary as a producer is tricky. Unlike Marco’s Hatchetman art or Zach’s Tropical Biome, the mark of a producer is the absence of something: work blockages, bugs, or whatnot. It’s hard to point to an absence and say, “I did that”. Instead, I’ll tell you about my journey to HBS, producing the 1.4 update, and why languages are super cool.
I started at HBS in mid-September 2018, after working at a AAA game studio for several years. It’s been an absolute blast being here so far, and I’ve learned so much. The production org was growing when I joined, so I got in and helped produce the 1.3 update, Flashpoint, and the localization beta.
Bringing BATTLETECH to our French, German, and Russian communities has been on the docket as a post-release feature since our Kickstarter. Unfortunately, given the size of the team and complexity of the project, we couldn't lay all the groundwork for localized languages we wanted to during production. So after we shipped the game, we needed to do retroactive work in design and UI to make it happen. My job at HBS was to make sure that we did that work, so that we had translated versions of the game. Look at that! My first HBS production project!
One of the biggest challenges of localizing BATTLETECH was the sheer volume of text. I love how we use words to weave together this deep universe full of lore, intrigue, and big stompy robots, but there are over 300,000 words in the English version alone! One does not simply drop a bunch of text into Google Translate, copy/paste the results, and expect it to work in-game. So, in true BATTLETECH style, we had to approach this mission strategically.
First, our engineers built a set of tools for “string” collection. Strings are bits of data that make up the game text, so that variables (such as MechWarrior or system names) are strings, but they are housed in other strings, so that you might see a series of strings (each one in yellow) on a screen like this:
Part of the reason we built our own tools is that different types of text (e.g. missions, conversations, events, and contracts) are located and stored differently, and the tool had to identify and recognize that. The fact that we built our own tools also meant that, before we could even do any actual translation work, we had to design, implement, and test our tools, to make sure that they were working properly. If they were, the tool would grab the strings from different parts of the game and generate them uniformly on a spreadsheet.
From there, we’d send those strings to our localization team. They’re based in Europe so we send them strings from our office in the US, where they work on them overnight (during their work day), and we get the translations the next morning to put into the game. We’ve been doing this process for months, because there are a lot of strings to gather, translate, and implement. Below is a tiny(!!) portion of what our table looks like:
The translation process isn’t easy, either. Translations have to be consistent with 35 years of BATTLETECH lore, as well as be linguistically and culturally accurate. But given all the different dialogue options, as well as the fact that we have three pronoun options when other languages have two genders for nouns, there was a lot of back and forth so that the translators can get the right context and phrasing. I’ve learned about coding for non-breaking spaces in French, German grammatical sentence construction, and how Cyrillic text fits into Latin alphabet text boxes. (Sidenote: our localization team has also been reading your feedback in the language-specific forums, so next time you post there, give them some thanks for their work!)
Finally, there were challenges with UI. Once translated, German and Russian words are often much longer than their English counterparts, and all that text has to fit on the screen somewhere. For example, here’s what the English text for upgrading your Argo looks like:
And here’s the same screen in German:
In these cases, we had three main options for solving this:
Production work is about making calls at each step of the way to shepherd the process. Localization production in particular is challenging and unique, and certainly a labor of love. It’s about working with a team of dedicated and smart individuals, and trusting them, so we can all put out the best product possible, even if we don’t understand most of the text that shows up on our screens. But it also means that different parts of our community can come together to play a game that they’re passionate about. When we were done, we had a game with over 1.2 million words across four languages:
I know that many of you are excited to play BATTLETECH in your native language, so I hope you enjoy this update!
Cheers,
Jo <3)~
P.S. I recognize the irony of talking about localization and not having this post be localized, so if anyone can help with that, it would be greatly appreciated!
Writing a developer diary as a producer is tricky. Unlike Marco’s Hatchetman art or Zach’s Tropical Biome, the mark of a producer is the absence of something: work blockages, bugs, or whatnot. It’s hard to point to an absence and say, “I did that”. Instead, I’ll tell you about my journey to HBS, producing the 1.4 update, and why languages are super cool.
I started at HBS in mid-September 2018, after working at a AAA game studio for several years. It’s been an absolute blast being here so far, and I’ve learned so much. The production org was growing when I joined, so I got in and helped produce the 1.3 update, Flashpoint, and the localization beta.
Bringing BATTLETECH to our French, German, and Russian communities has been on the docket as a post-release feature since our Kickstarter. Unfortunately, given the size of the team and complexity of the project, we couldn't lay all the groundwork for localized languages we wanted to during production. So after we shipped the game, we needed to do retroactive work in design and UI to make it happen. My job at HBS was to make sure that we did that work, so that we had translated versions of the game. Look at that! My first HBS production project!
One of the biggest challenges of localizing BATTLETECH was the sheer volume of text. I love how we use words to weave together this deep universe full of lore, intrigue, and big stompy robots, but there are over 300,000 words in the English version alone! One does not simply drop a bunch of text into Google Translate, copy/paste the results, and expect it to work in-game. So, in true BATTLETECH style, we had to approach this mission strategically.
First, our engineers built a set of tools for “string” collection. Strings are bits of data that make up the game text, so that variables (such as MechWarrior or system names) are strings, but they are housed in other strings, so that you might see a series of strings (each one in yellow) on a screen like this:
Part of the reason we built our own tools is that different types of text (e.g. missions, conversations, events, and contracts) are located and stored differently, and the tool had to identify and recognize that. The fact that we built our own tools also meant that, before we could even do any actual translation work, we had to design, implement, and test our tools, to make sure that they were working properly. If they were, the tool would grab the strings from different parts of the game and generate them uniformly on a spreadsheet.
From there, we’d send those strings to our localization team. They’re based in Europe so we send them strings from our office in the US, where they work on them overnight (during their work day), and we get the translations the next morning to put into the game. We’ve been doing this process for months, because there are a lot of strings to gather, translate, and implement. Below is a tiny(!!) portion of what our table looks like:
The translation process isn’t easy, either. Translations have to be consistent with 35 years of BATTLETECH lore, as well as be linguistically and culturally accurate. But given all the different dialogue options, as well as the fact that we have three pronoun options when other languages have two genders for nouns, there was a lot of back and forth so that the translators can get the right context and phrasing. I’ve learned about coding for non-breaking spaces in French, German grammatical sentence construction, and how Cyrillic text fits into Latin alphabet text boxes. (Sidenote: our localization team has also been reading your feedback in the language-specific forums, so next time you post there, give them some thanks for their work!)
Finally, there were challenges with UI. Once translated, German and Russian words are often much longer than their English counterparts, and all that text has to fit on the screen somewhere. For example, here’s what the English text for upgrading your Argo looks like:
And here’s the same screen in German:
In these cases, we had three main options for solving this:
- Make the text box bigger;
- Make the text smaller;
- Get a shorter translation with an equivalent meaning.
Production work is about making calls at each step of the way to shepherd the process. Localization production in particular is challenging and unique, and certainly a labor of love. It’s about working with a team of dedicated and smart individuals, and trusting them, so we can all put out the best product possible, even if we don’t understand most of the text that shows up on our screens. But it also means that different parts of our community can come together to play a game that they’re passionate about. When we were done, we had a game with over 1.2 million words across four languages:
I know that many of you are excited to play BATTLETECH in your native language, so I hope you enjoy this update!
Cheers,
Jo <3)~
P.S. I recognize the irony of talking about localization and not having this post be localized, so if anyone can help with that, it would be greatly appreciated!