Top Banner
Game Programming Localization Nick Prühs
30
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Game Programming 10 - Localization

Game ProgrammingLocalization

Nick Prühs

Page 2: Game Programming 10 - Localization

Objectives

• To get an overview of the different types of gameassets that need to be localized

• To understand the different approaches of publishing localized games

• To learn how to handle issues with the localization process

2 / 28

Page 3: Game Programming 10 - Localization

Globalization & Localization

• When you limit your product's availability to only one language, you limit your potential customer base to a fraction of our world’s 6.5 billion population.

• If you want your applications to reach a global audience, cost-effective localization of your product is one of the best and most economical ways to reach more customers.

3 / 28

Page 4: Game Programming 10 - Localization

Globalization & Localization

• Globalization is the design and development of applications that perform in multiple locations. For example, globalization supports localized user interfaces and regional data for users in different cultures.

• Localization is the translation of application resources into localized versions for the specific cultures that the application supports.

4 / 28

Page 5: Game Programming 10 - Localization

Localized Assets

• Texts

• Images (with texts)

• Audio (with speech)

• Video (with speech)

5 / 28

Page 6: Game Programming 10 - Localization

Localized Texts – Ingame

User Interface

• Buttons

• Options

• In-Game UI

• Loading Screens

• Push Notifications

6 / 28

Page 7: Game Programming 10 - Localization

Localized Texts – Ingame

Gameplay

• Level Names

• Mission Objectives

• Dialogues

• Weapon Names

7 / 28

Page 8: Game Programming 10 - Localization

Localized Texts – Other

Store Assets

• Game Summary

• Screenshots

• Game Features

• Search Keywords

• In-App Purchases

• Changelogs

8 / 28

Page 9: Game Programming 10 - Localization

Localized Texts – Other

Website

• News

• Gameplay Info

• Forums

• Social Media

9 / 28

Page 10: Game Programming 10 - Localization

Localization Process

Game Texts

Source Language (native)

Source Language

(CSV)

Source Language

(XLS)

Target Language

(XLS)

Target Language

(CSV)

Target Language (native)

10 / 12

Page 11: Game Programming 10 - Localization

Localization Process

1. Export localization file with1. Localization keys

2. Source language

2. Convert from game format to CSV and XLS.

3. Localize file by adding target language.

4. Convert from XLS to CSV and game format.

5. Import localization file with1. Localization keys

2. Target language

11 / 28

Page 12: Game Programming 10 - Localization

Gotcha!

Ensure you are using the proper encoding (e.g. UTF-8) for all text

files (e.g. XML, CSV)!

12 / 28

Page 13: Game Programming 10 - Localization

CSV Export

13 / 28

All CSV files should use the same format, e.g. character set, field delimiters and text delimiters.

Page 14: Game Programming 10 - Localization

Numbers in Texts

• Use ordered references in localized strings that are replaced in code:

“Deals {0} damage and stuns the target for {1} seconds.”

• Localize your string by replacing the key by the localized text, and replace all placeholders after.

• Unordered placeholders, such as %d might not be enough, as some languages change the word order!

14 / 28

Page 15: Game Programming 10 - Localization

Handling The Mess

• Missing localization keys• Debug builds should show the raw localization key if it

fails to lookup a localized string. This helps your QA to tell you the exact missing key.

• Release builds should fallback to a default language.

• Duplicate localization keys• Your tools should detect and report duplicate

localization keys immediately on import.

• Otherwise, you’ll be spending a lot of time tracking down that localization bug that is caused by an overridden key – trust me.

15 / 28

Page 16: Game Programming 10 - Localization

Subsequent Changes

• Keys that are added or modified after the spreadsheets have been sent out to the localization studio must be highlighted

16 / 28

Page 17: Game Programming 10 - Localization

Subsequent Changes

• Try and collect all last-minute changes so you don’t have to bother your localization studio more than twice

17 / 28

Page 18: Game Programming 10 - Localization

Hint

All tools should order your localization keys by name.

This will help tremendously with source control.

18 / 28

Page 19: Game Programming 10 - Localization

UI Design Best Practice

• Avoid using absolute positions and fixed sizes to lay out content; instead, use relative or automatic sizing.

• Provide extra space in margins because localized text often requires more space.

19 / 28

Page 20: Game Programming 10 - Localization

Localization Briefing

• Have your localization people actually play the game before localizing it

• Provide additional information, such as character sheets, where necessary

20 / 28

Page 21: Game Programming 10 - Localization

Localization Tools

• Allow your team to change the language in-game, if possible.

• Provide a local localization override file, if possible.• This way, your team can check changed texts

immediately without having to rebuild the game.

21 / 28

Page 22: Game Programming 10 - Localization

Localization Testing

• Check each localized version thoroughly for• Shrinked texts

• Cut texts

• Overlapping texts

• Strange line breaks

• Typos

22 / 28

Page 23: Game Programming 10 - Localization

Packaging

Option 1: All languages available

• Required for some platforms, such as mobile

• User can switch language any time

• Package size increases linearly with number of languages

23 / 28

Page 24: Game Programming 10 - Localization

Packaging

Option 2: Language packs

• Required for some platforms, such as Steam

• User needs to download additional files for switching the language

• Package size is always the same

24 / 28

Page 25: Game Programming 10 - Localization

Live Games

• All of this assumes you’re running a stand-alone game, such as Windows or iPad

• Live games (e.g. browser, client-server) will require you to update both backend and frontend at the same time – for all available languages – unless you have a sophisticated versioning system in place.

25 / 28

Page 26: Game Programming 10 - Localization

Localized Images

• Usually boils down to signs and posters shown in the game world

• Avoid wherever possible!• Requires artists to fire up Photoshop and localize by

hand

26 / 28Poster in Bioshock Infinite

Page 27: Game Programming 10 - Localization

Localized Videos

• If you’re lucky, this boils down to speech of the video

• In this case, you can use Matroska Media Containers which split up your video into• Video (MKV)

• Audio (MKA)

• Subtitles (MKS)

• Otherwise, you’ll be forced to provide videos for each language• Only huge companies like Blizzard make that effort

27 / 28

Page 28: Game Programming 10 - Localization

References

• MSDN. WPF Globalization and Localization Overview. http://msdn.microsoft.com/en-us/library/ms788718(v=vs.110).aspx, June 2016.

• Matroska. Matroska Media Container. http://www.matroska.org, June 2016.

28 / 28

Page 29: Game Programming 10 - Localization

Thank you!

http://www.npruehs.de

https://github.com/npruehs

@npruehs

[email protected]

Page 30: Game Programming 10 - Localization

5 Minute Review Session

• What is the difference between Globalization and Localization?

• Which types of game assets are to be localized?

• How do you handle numbers in texts?

• How can you prepare the localization process to make the job easier for the localization team?

• Which approaches do you know for publishing localized games?

• How do you handle localized videos?