Локализация

Интернационализация видеоигр: Лучшие практики для локализации Дружественная архитектура

Интернационализация видеоигр - это процесс, позволяющий легко локализовать игру. Для успешной локализации необходимо иметь интернационализированный продукт, прежде чем приступать к процессу локализации.

Разработчики игр делают типичную ошибку, предполагая, что локализация - это "простой" перевод. Они не могут подготовиться к локализации на начальных этапах планирования и ждут, когда игра будет полностью переведена на родной язык.

Локализация видеоигр будет проще, если вы будете следовать передовой практике интернационализации видеоигр, начиная с начальных этапов разработки.

Что такое интернационализация видеоигр и почему вы должны следовать передовой практике?

Интернационализация видеоигр - это процесс, который "подготавливает" вашу игру к локализации. Интернационализация вашей игры расширит возможности ее кода, архитектуры и пользовательского интерфейса для обработки и визуализации игрового контента на нескольких языках.

Главной целью интернационализации видеоигр является устранение из кодовой базы любого компонента, отличающегося по "локали".

Игроки ожидают, что локализованный пользовательский интерфейс будет в точности таким же интерактивным, а игра будет такой же увлекательной, как и оригинал. Для достижения такого же интерактивного и увлекательного опыта программисты должны перенимать лучшие практики на начальных этапах разработки и разработки игр.

Каковы лучшие практики интернационализации видеоигр?

Если вы являетесь разработчиком игр, работающим над дизайном, хорошо знать о лучших практиках интернационализации видеоигр. Вам следует принять рекомендованные методики разработки видеоигр. Передовая практика интернационализации видеоигр подразделяется на две категории:

  • Локализация Дружественная архитектура: Работа со структурой файлов, организация ресурсов, кодирование символов, проблемы с памятью, соглашения об именовании.
  • Локализация Дружественное программирование: Рассматривает методы программирования, рекомендованные для разработчиков (пользовательский интерфейс, региональные настройки, текст).

Интернационализация видеоигр
В этой статье рассматриваются передовые методы, рекомендованные в следующих областях удобная для локализации архитектура. Практика интернационализации видеоигр применительно к методологиям программирования заслуживает отдельного упоминания.

Локализация Дружественная архитектура

Проектирование удобной для локализации структуры поможет легко, быстро и точно локализовать игру. Чтобы ваша игровая архитектура была удобной для локализации, вы должны интернационализировать свою:

  1. Структура файла
  2. Игровые активы
    • Текстовые активы
    • Арт Активы
    • Голос за кадром
  3. Память
  4. Конвенции о присвоении названий

1. Интернационализация структуры файлов

Стандартной практикой является экстернализация всех локализуемых игровых ресурсов из кода игры и их размещение в отдельные языковые папки. Это позволит легко передать локализованный контент вашему LSP (поставщику лингвистических услуг), а переведенные ресурсы легко интегрируются в вашу игру. Это важная практика интернационализации видеоигр, простая, но мощная.

В данном примере показана примерная структура каталога для организации кода игры и ресурсов, к которым необходимо подготовиться локализация игры. Ваша структура разработки может содержать специальные структуры каталогов для интернационализации видеоигр. Для получения более подробной информации обратитесь к их документации.
Интернационализация видеоигр Файловая структура
Папка с кодом ("Код игры") содержит все ваши кодовые файлы, с помощью которых можно создать локализованный мастер игры. Папка ресурсов ("Игровые активы") содержит все текстовые, художественные, аудио-, кинотеатральные и другие ресурсы, подлежащие локализации.

2. Интернационализация игровых активов

Интернационализация игровых видеоактивов
Текстовые ресурсы, художественные ресурсы и голосовая заставка являются критически важными компонентами вашей игры, которые должны отвечать требованиям интернационализации.

2.1 Интернационализация текстовых ресурсов

Ваш внутриигровой текст и текст пользовательского интерфейса являются основными объектами локализации. В идеальном сценарии все локализуемые тексты (внутриигровой текст, текст пользовательского интерфейса, сообщения об ошибках консоли и т.д.) должны быть экстернализированы в разные файлы, отдельно от реального игрового кода. Также не забудьте организовать все строки программы установки для версии для ПК в централизованном порядке.

Использование внешних таблиц строк для хранения локализуемого текста облегчает организацию и интеграцию переводов. Вы можете сделать его более простым для отслеживания изменений в строках во время разработки, используя уникальные идентификаторы строк для каждой строки.

2.1.1 Определение таблиц строк

Самый простой и распространенный подход заключается в сохранении всего текста в простой текстовый файл (для исходного языка). Этот текстовый файл может быть легко передан для локализации, а переведенная версия может быть интегрирована обратно в игру на нужном языке. Если вы используете обычные текстовые файлы, придерживайтесь удобной для локализации кодировки, такой как UTF-8 или аналогичной.

Примеры текстовых файлов
Независимо от того, как вы храните ваши строки, вы найдете очень полезным присвоить уникальный идентификатор строки каждому тексту и ссылаться на текст в вашем коде, используя этот идентификатор строки.

Пример внешнего текстового файла (содержит весь исходный текст для миссии под названием MissionDDD)

En-US/Text/Assets/MissionDDD/Strings.txt 

DDSTRING_T1 Привет, Джисто! Все хорошо?
DDSTRING_T2 Да, я в порядке.
DDSTRING_T3 Пока! Увидимся позже.

Пример японской (переведенной) версии этого файла

ja-JP/Text/Assets/MissionDDD/Strings.txt

こんにちはレイチェル!よくやっている?
DDSTRING_T2 ええ,私は大丈夫です。
СТРОКА_T3 さようなら!じゃあまたね。

2.1.2 Уже разработали свою игру?

Если вы уже разработали игру, не задумываясь о локализации, то используйте какой-нибудь инструмент для извлечения всех текстов из файлов игры. Переместите их в строковую таблицу и назначьте каждому "тексту" уникальный "идентификатор". Идентификатор будет подставлять каждое появление текста в коде игры.

2.1.3 Вы разрабатываете игру с большим количеством текста?

Для игр с огромным количеством текста, таких как большие RPG игры или приключенческие игры, можно рассмотреть возможность использования базы данных. В идеале, база данных должна содержать следующее:

  • идентификаторы
  • Текст
  • Примечания (с указанием контекста текста)
  • Текстовый орден
  • Максимальная длина строки
  • Локализованные записи для всех текстов (когда они доступны)
2.1.4 Использование таблиц строк в коде

Ваш игровой движок загружает строковую таблицу в память. Хэш-таблицы являются широко используемой структурой данных. Если вы разрабатываете игру на языке Си++, используйте контейнер карты STL. Инкапсулирует строковую таблицу в класс, содержащий все тексты, и определяет статический метод, который принимает идентификатор и возвращает переведенный текст.

В примере ниже, GameDDStringTable это класс, инкапсулирующий строковую таблицу. API getDDString(StringID) вызов и получение локализованного текста для идентификаторов строк (перед их использованием в коде).

Кодекс без интернационализации

DDCHARACTER1. Говорите (привет, Джисто! Как дела?);
DDCHARACTER2. Говорите (Да, я в порядке.);
DDCHARACTER3. Поговорим (пока! Увидимся позже.);

Интернационализированный кодекс

DDCHARACTER1.Talk(GameDDStringTable::getDDString("DDSTRING_T1"));
DDCHARACTER2.Talk(таблица GameDDStringTable::getDDString("DDSTRING_T2"));
DDCHARACTER3.Talk(таблица GameDDStringTable::getDDString("DDSTRING_T3"));

2.1.5 Сохранение читабельности

Одним из недостатков экстернализации всего внутриигрового текста является то, что при просмотре кода вы обнаружите, что он потерял читаемость. Поэтому дальнейшие изменения сценария могут стать немного сложнее.

Например DDCHARACTER1.Talk(GameDDStringTable::getDDString("DDSTRING_T1")); не читается из-за отсутствия фактического текста, на котором говорит персонаж.

Некоторые команды разработчиков игр пытаются преодолеть эту проблему, сохраняя в коде оригинальный текст (и используя уникальный идентификатор строки). Они следуют заранее определенному и однозначному синтаксису, как показано в примере ниже.

DDCHARACTER1.Talk(GameDDStringTable::getDDString("DDSTRING_T1|Hi Jisto, How are you?")));
DDCHARACTER2.Talk(GameDDStringTable::getDDString("DDSTRING_T2|Yeah, я в порядке."));
DDCHARACTER3.Talk(GameDDStringTable::getDDString("DDSTRING_T3|Bye! Увидимся позже."));

В приведенном выше примере скрипты включают в себя как тексты, так и идентификатор в формате
“STRING ID | original text”.


Статический метод getDDString() прочитает идентификатор (слева от символа трубы) и вернет переведенный текст. Если он не может найти переведенный текст, он вернет исходный текст (справа от символа трубы).

Такой подход делает ваш скрипт удобочитаемым. Также, при отсутствии строковой таблицы, игра не перестанет работать, потому что есть возможность отступления. На правой стороне символа трубы отобразится исходный текст.

2.1.4 Примечания к переводу

Если вы хотите еще больше упростить процесс перевода, вы должны предоставить достаточно информации обо всех локализуемых строках. Вы можете предоставить их в виде комментариев во внешних таблицах строк. Вы также можете предоставить их в виде отдельных примечаний в отдельную папку с документацией. Это очень рекомендуемая передовая практика интернационализации видеоигр.

Примечания помогают переводчикам понять:

  • Порядок текста
  • Контекст текста в игре
  • Максимальная длина строки (после перевода), которую движок все еще будет поддерживать
  • Любые другие строгие правила, уникальные для вашей игры.

Интернационализация видеоигр - контрольный список разработчиков для текстовых ресурсов
Интернационализация видеоигр - контрольный список текстовых активов

2.2 Интернационализация активов в сфере искусства

Уменьшите время, затрачиваемое на локализацию художественных ресурсов, минимизируя количество текста, отображаемого в изобразительном искусстве. Если вы используете текст в своем творчестве, следуйте этой передовой практике:

2.2.1 Отдельный слой для текста

В файле изображения определите текст в отдельном слое. Такие многоуровневые художественные файлы легко локализовать, так как их можно быстро интегрировать.

2.2.2 Отображение текста в программном режиме (время выполнения)

Другой подход заключается в рендеринге текста на изображении с использованием шрифтов (программно). Внешний вид всего текста, который появляется в художественных активах, можно легко локализовать в отдельном текстовом файле. Ваш игровой движок может затем вытащить соответствующий текст и отображать его на изображениях по мере необходимости во время выполнения.

2.2.3 Организация папок с активами

Все локализуемые художественные ресурсы следует помещать в соответствующие папки, как описано в предыдущих разделах.

2.2.4 Примечания к переводу на русский язык

Как и в случае текстовых ресурсов, было бы полезно включить примечания для перевода.

Интернационализация видеоигр - контрольный список разработчиков для арт-активов
Интернационализация видеоигр - контрольный перечень предметов искусства

2.3 Интернационализация голосового сопровождения

Игровое аудио можно разделить на три дорожки, а именно голос поверх (VO), звуковые эффекты и музыку. Рекомендуется хранить все дорожки VO отдельно от двух других дорожек, так как это позволит легко локализовать их. Если вы логически организуете все свои VO-файлы, вам будет очень просто интегрировать локализованное VO в вашу игру.

Один из подходов заключается в присвоении звуковым файлам VO названия с помощью идентификатора строки (присвоенного тексту в вашей строковой таблице). В приведенном выше примере, файлы обхода голоса могут называться string_t1.mp3, string_t2.mp3 и string_t3.mp3. Преимущество этого подхода заключается в том, что вы можете кодировать так, что голосовая заставка для строки (отображается на экране) будет получена и воспроизведена.

Ваш сценарий является основой для создания VO-продукции. Поэтому вы должны завершить работу над сценарием на самых ранних этапах разработки игры и включить как можно больше технических аспектов (например: длина, моно/стерео и т.д.) вместе с точным определением контекста.

Поставщик услуг по локализации должен быть в состоянии понять, как проходит ваша история, прочитав сценарий. Интернационализация видеоигр для голосовой заставки поможет сохранить оригинальный вкус в локализованной игре.

Система субтитров

Если возможно, используйте подходящую систему субтитров для вашей игры. Вы можете сделать так, чтобы субтитры появлялись на экране вместе с содержимым воспроизводимых VO-файлов или заменить запись VO субтитрами. Не забудьте включить весь текст с субтитрами в локализуемые текстовые ресурсы (и проследите за тем, чтобы они были переведены).

Интернационализация видеоигр - контрольный список разработчиков для голосовой заставки
Интернационализация видеоигр - контрольный список активов с голосовым управлением

3. Интернационализировать память

При загрузке файла со строковой таблицей можно сохранить все тексты в памяти, так как в среднем это не должно быть больше одного-двух МБ для большинства игр. Скорее всего, у вас возникнут проблемы с памятью, если ваша целевая платформа имеет ограниченную память. В этом случае вы можете загрузить и выгрузить определенный набор текстов по мере необходимости для каждого уровня игры и т.д.

Если вы разрабатываете игру на английском языке и вашим целевым языком локализации является японский или другие азиатские языки, вы можете столкнуться с трудностями при установке их шрифтов в память. Вы можете решить эту проблему, загрузив символы, которые появляются в определенной части игры, в память по мере необходимости.

Если вы разрабатываете игру на азиатском языке (используя двухбайтовые наборы символов), вы обнаружите, что для английского и нескольких других европейских языков строки могут занять больше памяти.

Например, английский язык использует примерно на 1,5 символа больше, чем японский, а немецкий язык использует в два раза больше японских букв. Чтобы преодолеть эти проблемы и избежать переполнения памяти, лучше придерживаться кодирования (например, UTF-8), в котором европейские символы хранятся как одиночные байты.

Такая интернационализация видеоигр с использованием передового опыта в области памяти обеспечит хорошую работу вашей игры на всех языках.

4. Конвенции о присвоении названий

Вы должны назвать все папки и файлы, специфичные для локализации, так, чтобы было легко интерпретировать язык/регион, который они представляют. Языки также имеют различные варианты в зависимости от регионов. Поэтому желательно комбинировать 2-буквенный код языка с 2-буквенным кодом страны. Примеры имен: en-US (американский английский), ja-JP (японский), zh-CN (упрощенный китайский), zh-TW (традиционный китайский) и др.

Это хорошая практика соблюдения стандартов ИСО, широко признанная во всем мире.

Было бы легко понять содержание файлов, если бы вы назвали их логически так, чтобы имена описывали миссию, характер и т.д. Пример: UI.txt, Mission1.txt, Mission2.txt и т.д.

Все вышеперечисленные примеры передовой практики интернационализации видеоигр для архитектуры направлены на то, чтобы помочь вам разработать игру, которая будет легко локализована. Интернационализация передового опыта для программирования игр также необходима для достижения ваших целей локализации.

Если вы заложите основу для локализации на самых ранних стадиях архитектуры, вы обнаружите, что локализация не должна быть сложной. Ваша игра будет в равной степени вовлечена во все локализованные версии и игроки не смогут сказать, что она была разработана не для их языка.

Вам нужна помощь в интернационализации или локализации ваших видеоигр? Почему бы не связаться с нами сегодня для получения бесплатного предложения?

Вину Сасидаран Рениш.

Создатель контента

Вину является техническим энтузиастом и автором контента в DayDigital, движимая ее страстью к технологиям и письму. Инженер по информатике по квалификации и выпускница Red Hat, она вдохновлена ее стремлением учиться чему-то новому, быть новичком, получать новые знания и расти каждый день. Вы можете связаться с ней на ее твиттер-ручке @VinuSRenish.

Предыдущая статья
Топ-5 проблем с внедрением облачных вычислений, с которыми сталкиваются пользователи облачных вычислений
Следующая статья
Облачный консалтинг: Могут ли эксперты по облачным вычислениям помочь ускорить процесс преобразования облачных вычислений?
Соответствующие статьи
этический хакерский взлом для проверки уязвимости системы безопасности
Генерал

Использование этического взлома для повышения информационной безопасности....

Информационная безопасность - это необходимость часа! Как никогда важно обезопасить свои цифровые активы. Это этический взлом твоего решения? Ваши сетевые серверы, электронная почта, веб-сайты и приложения уязвимы для вредоносных атак из любой точки мира. Есть много....

0
Интернационализация мобильных приложений
Локализация

6 Советов по локализации мобильных приложений, обеспечивающих...

Локализация мобильных приложений является обязательным условием для достижения глобальной аудитории и увеличения количества пользователей. Чтобы выйти на международный рынок, вы должны подумать о локализации, прежде чем планировать любые другие маркетинговые инициативы. Рынок действительно является глобальным в....

0
наш пост...
Соответствующие статьи
этический хакерский взлом для проверки уязвимости системы безопасности
Генерал

Использование этического взлома для улучшения информационной безопасности....

Информационная безопасность - это необходимость часа! Как никогда важно обезопасить свои цифровые активы. Это этический взлом твоего решения? Ваши сетевые серверы, электронная почта, веб-сайты и приложения уязвимы для вредоносных атак из любой точки мира. Есть много....

Интернационализация мобильных приложений
Локализация

6 Советы по локализации мобильных приложений, которые...

Локализация мобильных приложений является обязательным условием для достижения глобальной аудитории и увеличения количества пользователей. Чтобы выйти на международный рынок, вы должны подумать о локализации, прежде чем планировать любые другие маркетинговые инициативы. Рынок действительно является глобальным в....

Тема wordpress на основе jazzsurf.com