Home » Assignments » Proof of Concept: Localizing a Unity Game

About Me

I have a passion for interactive entertainment and technology, and am interested in creating and curating content for the modern world.

Exceptional language, writing, proofing, editing and speaking ability; eager to learn and apply new and varied skills. Extroverted and unafraid to create new connections, and has a proven ability to maintain and nurture professional networks.

Proof of Concept: Localizing a Unity Game

This semester at MIIS, we worked on some techniques for localizing games in Android, iOS, and Unity. While it certainly helps to know some coding for things like this, applications like Android Studio and the Unity Personal editor can go a long way to making anyone with a little computer knowledge an amateur software localizer.

As a proof of concept for our final project, we worked on localizing an open-source game from English to Chinese, Japanese, and Italian. It took a while to find an open source game that worked and was appropriate for our needs, but we eventually settled on the game Terra Vita: a simple puzzle game created as part of the Global Game Jam. You can try out the game at this link if you like, or download the source code and edit it yourself.

The point of the game is to use two different kinds of satellites to create a path for messages to travel from Earth to a distant planet to help with terraforming. But asteroids and black holes getting in the way means you have to be creative about the path you use, while also trying to keep your expenses under a budget.

It’s a bit buggy, and falls short of most of the mechanics; for example, there’s no actual penalty for going over budget, and the way that asteroids interfere with your path is inconsistent. Nevertheless, it’s an interesting premise and, for our purposes, perfect to localize, as it contains a variety of text and no language picker. Also, it’s free, so I can’t complain too much.

We started the process by identifying all of the translatable text in the game and extracting it. We fully expected there to be some images that needed localizing, but it turned out that the title screen and everything else was just formatted text, and so this part of the process was simple. However, there were some interesting bits of text in the code that pointed to screens of the game that were never shown when playing, so we removed those from the extracted text data.

Next came the translation. Since this was just a proof of concept, we only ran everything through Google Translate. However, the Japanese and Chinese translations resulted in some bad cases of text bleeding out of the text boxes or getting cut off, so we had to occasionally do some creative translation in parts to shorten everything up. When we absolutely could not shorten the translation any more through editing, we ended up simply making the text itself smaller.

Once the translation was finished, we put the translated text into the game using the I2 Localization Unity asset, a great tool for localizing within Unity. We also made sure to put a language picker on the title screen, which worked out well.

Another interesting challenge was getting all of the currency symbols and number formatting correct for the different locales. For example, we wanted the Chinese version to have the 元 currency symbol be on the right side of the number, instead of the left where the $ for English or ¥ for Japanese sign are.

The currency was set up in such a way that there was inconvenient concatenation within the code as seen above, but one of my group members cleverly got around that, and we eventually had a great looking game screen.

Japanese, with the currency symbol (¥) to the left of the value.
Chinese, with the currency symbol (元) to the right of the value.

That’s the long and short of it! The whole thing worked great. I think if we were to do it over again, I’d like to do something that has some more opportunities for image editing. When we first started this, I thought we were going to need to recreate some of our own assets, but it ended up not being necessary; which is, of course, indicative of good internationalization practices, but I would have still liked the challenge. Next time!