top of page

Game Localization for a Unity Based Detective Game

  • Writer: Melanie Yang
    Melanie Yang
  • Dec 18, 2022
  • 5 min read

Updated: Dec 19, 2022


ree



Inspiration and motivation for the project

I have been fascinated by video games since a very young age, and always dreamt about doing work related to the game industry. A tool that I obtained from previous projects for this goal is Unity development and corresponding localization skills, from text, flat images, voices to textures and more game assets. Having practiced and worked with many game facets, I came to a point where I was able to and wanted to find a game and localize every piece of it from scratch. I browsed the Unity assets store and chose a game called “First Person Adventure Game” as my project. It caught my eye because detective game is my favorite genre, especially ones with mysteries, puzzles and adventure elements. There are plenty of items to localize in this game, and this writeup serves the purpose of outlining what I went through and my workflow, as well as discussing how I worked with my teammates and what we learnt from it.


Original English Demo

My Localized Chinese Demo



Description and overview of the project


Text localization

ree

The first section was text localization. All text in this game is controlled by an asset management system. Each piece of text has a corresponding key in the system which is connected to a sentence or paragraph by a table, and can be referenced in game scripts by calling the key. What we did was extracting the text and paragraphs and exporting them for translation in an external software, CAT tool. We modified some results by setting the style and tone: Item descriptions are realistic as this is a detective game, while the speech and thoughts of the protagonist are formal yet humorous.


Audio localization

ree

The second section was audio localization. There are many voice overs for the detective character, including background instruction, thoughts when seeing certain items, and clues when players interact with items. I collected all 20 audio files and produced translated voice overs with Adobe Audition. Each localized file represents an individual scene, and I also adjusted some sound effects to support the mysterious aroma. I located the code for language settings by searching through scripts in Visual Studio Code, and overrode some default lines and settings to enable the multiple voice over option in the game, allowing me to localize audio by adding them to the Chinese environment instead of the English one. Finally I manually adjusted some desync subtitles by modifying three key properties that determine when they were displayed: the starting character, the amount of characters, the timestamp in the audio clip.


The third section was image and visuals localization. There are many categories of items, including books who had English titles. After going deep into the specific game files, we found that all rotatable 3D book models were created with texture prefab material, and the Unity localization system could not create multiple locale versions for prefabs. We decided to add more Chinese item descriptions for books to make it friendlier for players using Chinese.


Notably, we worked with version control and code collaboration since this was a team project. I used Github often for synchronization in previous projects, but this time we gave the Unity built in Plastic SCM Cloud a try. Its usage is similar with git TOP, where a member can upload all edited files after modification and add proper descriptions, and other members need to refresh and update on their end when opening the project to make sure all content is in sync. It is also possible to roll back to a previous repository state if a major bug occurs. The platform was stable and did not cause issues throughout the project. One important note is that all synchronization and updates require manual activity, and it should be made a habit for all team members.


Challenges encountered

My team did run into many difficulties throughout the project. We resolved most of the issues by working and investigating as a team with clear goals and responsibilities. The first challenge came up during project evaluation, the phase where we planned our initial strategy and approach. We were not aware of the location of text storage in the game. Its structure was different from most Unity games that has corresponding text, image, audio or interactive script for each individual item in its inspector. Instead, it had a data table that included all text values. Without this information, my teammates needed to manually search in files from experience. However, this game also uses different naming conventions from past ones we worked with, blocking our first attempt. Eventually I opened the entire project folder with Visual Studio Code, and searched for some specific words from subtitles we could see, resulting in an asset file that led us to the text database from its code.

The second challenge came from character audio localization. The first scene had the protagonist in a room where he explained why he was here for investigation. The original English audio was brief and aimed to accompany the player’s initial exploration in the room. The Chinese localized audio, however, was longer and could still be going on when the player entered the next room. We did not want to add a trigger to stop the audio once the player left the room to keep the story complete. I tried to cut some information from the Chinese audio and adjusted the speed of speech, but ended up keeping the original translated version. Another relevant issue was the synchronization of audio and subtitles, which I resolved by modifying the three key properties mentioned in the above section.


ree

The third and biggest challenge was image localization. Everything in the game was textures, but the built in localization functionality in Unity does not support textures. Since the project had a tight timeline, we temporarily chose to add text descriptions for differentiation. Moving forward, I would like to add a 3D model image layer upon the existing model layer that points to the texture file for another language, and display the correct layer by checking for the current language in script.


Lessons learned

My main takeaway from this project aside from technical skills is about team management. Project planning is critical for game localization. We need to constantly evaluate the game from the start. a game will include text, audio, and visuals including desktop publishing. Each of them can become a project in its own, but a game localization project requires us to piece all of them together, and to give them a proper order if possible. For example, subtitle localization should come before voice overs, and subtitles also belong to the text category. Game localization also requires clear roles and responsibilities across team members. Even if a bug comes up that requires multiple members’ input, it is best to have both of them fix it simultaneously and push the fixed version together, in order to avoid merge conflicts. The final lesson is that we should always perform pseudo translation first, as a good one can significantly reduce repetitive revision.

 
 
 

Comments


© Copyright by Liuyi Yang.

Follow

  • LinkedIn
  • Instagram
bottom of page