Перейти к содержимому


Фотография

WL2: Диалоговая система и локализация Wasteland 2


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 4

#1 hamster

hamster

    Pixelhunter

  • Пользователи
  • PipPipPip
  • 7 832 сообщений

Отправлено 10 Октябрь 2012 - 13:16

Во второй части сегодняшнего обновления странички Wasteland 2 технический директор проекта Джон Алварадо рассказал о том, на какой стадии сейчас находится работа с движком игры:

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

Любая создаваемая нами система заставляет принимать решения о том, как мы справимся с теми или иными задачами. Спасибо Unity, ведь он дает нам большую фору, предоставляя готовые варианты, которые берегут наше время и сокращают количество необходимых решений (в хорошем смысле). Решение об использовании Unity, которые мы приняли заранее, дает свои плоды. Но до сих пор остался ряд задач, которые касаются конкретно Wasteland 2, и их решение окажет влияние на всю дальнейшую разработку и итоговый продукт.

Взвешивая различные подходы к задаче, мы стараемся предсказать будущее и понять, каким образом последствия различных решений скажется на игре, учитывая требования дизайна (существующие и потенциальные), обработку ресурсов, производительность и время и стоимость разработки. К счастью, наша команда имеет богатый опыт и десятки успешных проектов, что позволяет нам уверенно принимать решения. Мы уже продвинулись в следующих направлениях:
  • Глобальная карта;
  • Передвижение и пошаговый бой;
  • Сохранение игры;
  • Анимация персонажей;
  • Инвентарь;
  • Слежение на состоянием игрового мира;
  • Программирование сюжета;
  • Локализации.
Сейчас у нас есть контролируемый игроком рейнджер, который может передвигаться по уровню с соответствующей анимацией и разговаривать с NPC, тем самым вызывая режим беседы и переключая переменные, которые окажут влияние на будущие события. Именно это мы планировали сделать, и успели точно по расписанию. Брайан внушал команде инженеров, что очень важно добиться этого состояния к тому моменту, когда сценаристы закончат описывать уровни и сюжет, чтобы можно было начать воспроизводить, тестировать и проверять их работу. Этот приоритет и необходимая возможность множественного перепрохождения определили некоторые важные инженерные решения.


Разговор

Есть много способов структурировать систему диалогов. Я создавал такую для The Bard's Tale [режим бесстыжей рекламы], первой игры inXile, которая под одобрительные отзывы критиков вышла на РС и приставках в 2004/2005 годах, а сейчас штурмует списки лучших игр на мобильных платформах с 5-звездочными оценками, как самая веселая и масштабная ролевая игра на мобильных платформах [режим бесстыжей реклам выключен]. The Bard's Tale была большой игрой, которая содержала множество диалоговых ветвей и отслеживаемых переменных состояния мира. Вот статистика:
  • 4 594 диалоговых строки;
  • 6 412 локализованных текстовых строки (включая диалоги и интерфейс);
  • 1 720 переменных состояния игрового мира.
В Wasteland 2 мы собираемся увеличить число диалогов и переменных. Под переменной состояния игрового мира поднимается любая информация, которую необходимо хранить для правильного развития истории, к примеру, какие были выполнены задания, с какими NPC игрок успел поговорить и что от них смог узнать.

Сначала мы собирались использовать систему The Bard's Tale, но обнаружили одно серьезное отличие: там все диалоги были озвучены. Это значит, что большую часть диалогов и сюжета нужно было завершить заранее с целью записать голоса актеров. Переделывать сюжет и диалоги The Bard's Tale мы не могли. Совсем иначе дело обстоит с Wasteland 2, где доля озвучки невелика, благодаря чему мы свободны изменять, расширять и улучшать диалоги и сюжет до самого последнего момента!


Проблема локализации

Но все эти диалоги по-прежнему надо локализовать (перевести на различные языки), что тоже является сложной инженерной задачей. В The Bard's Tale использовалась достаточно громоздкая система, которая представляла собой таблицу, и текст вносился туда с уникальными маркерами, необходимыми для использования в игре. Дизайнер ссылался на текст с конкретным маркером. Таким образом система локализации выдавала нужный язык текста, определяемый в соответствии с маркером и текущей настройкой языка.

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

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


Автоматическое извлечение текста

В написанном выше не хватает лишь описания того, как весь вложенный английский текст будет организован, чтобы связаться с переводом. Я написал программку, которая прочесывает все скрипты, чтобы извлечь строки английского текста и создать таблицу, которая и будет оправлена на перевод. Я использовал Ruby, язык с хорошим функционалом регулярных выражений, которые позволяют легко обследовать скрипты на C# в поисках английских строк. Облегчает этот процесс то, что каждая строка начинается с синтаксически выделенного маркера. Выглядит он примерно так: <@label>text. Для примера:

<@О силе роботов>Роботы в 10 раз сильнее человека, но вся их сила идет на мирные цели вроде смешивания коктейлей.

Программка на Ruby находит и выделает это строку, потом делает запись в таблицу:

Маркер: О силе роботов
Английский: Роботы в 10 раз сильнее человека, но вся их сила идет на мирные цели вроде смешивания коктейлей.

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

Я опустил кое-какие детали, к тому же программка для извлечения текста наверняка будет совершенствоваться по мере разработки игры, но действует она примерно так. Решение отказаться от готовой системы (из Bard's Tale) было сложным, но правильным, поскольку потратило часть времени на создание специфических инструментов, необходимых дизайнерам Wasteland 2.


Заключение

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

Решения решения решения. Решения? Решения-решения! Р-р-р-решения.


#2 Ragdaj

Ragdaj

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 53 сообщений

Отправлено 10 Октябрь 2012 - 16:49

Подход радует.


#3 Vano

Vano

    Пользователь

  • Пользователи
  • PipPip
  • 19 сообщений

Отправлено 10 Октябрь 2012 - 17:39

Заранее предвижу глюк со съехавшими маркерами и, соответственно, с неправильно выдаваемым в игру текстом.


#4 hamster

hamster

    Pixelhunter

  • Пользователи
  • PipPipPip
  • 7 832 сообщений

Отправлено 11 Октябрь 2012 - 05:53

От багов никто не застрахован. Вне зависимости от выбранной системы. Особенно Obsidian.


#5 legmurdera

legmurdera

    Пользователь

  • Пользователи
  • PipPip
  • 14 сообщений

Отправлено 11 Октябрь 2012 - 06:24

Я начинаю вспоминать почему так легко отдал свои деньги :D




Похожие темы Свернуть

  Название темы Форум Автор Статистика Последнее сообщение


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных

Рейтинг@Mail.ru