Диалоги в играх: Программные средства и дизайнерские идеи
В данной статье мы затронем две темы:
1. Как упростить написание игровых текстов?
Учитывая, что написание, скажем, частично ветвящихся диалогов – процесс специфический, то каким образом можно уменьшить влияние технических тонкостей исходных состояний и варьирующихся результатов на творческий процесс?
2. Как подходить к дизайну диалогового интерфейса?
Дизайну диалоговой системы обычно не уделяется столько внимания, сколько уходит на прочие игровые ассеты. Мы посмотрим на имеющиеся примеры и выделим идеи, достойные рассмотрения.
Небольшое замечание по поводу авторской точки зрения. Мы иногда пишем «мы», а иногда «я», когда речь идёт о чьём-то личном отношении к делу, будь то Даниеле или же Пьетро. Уж простите нас – его – меня :-)
Как упростить написание игровых текстов?
Сюжеты – отличный инструмент для создания хороших игр (не будем цитировать Богоста). Но писать истории для игр тяжело по нескольких причинам.
Адам Хайнс (Adam Hines) в своей статье «The future of dialogue in games» пишет:
“Писать тексты для игр и для всего остального – совершенно разная работа. Это скорее похоже на решение сложной математической задачи, чем на обычный труд писателя”.
Для большинства произведений характерен предопределённый, линейный прогресс сюжета. Даже когда автор старается скрыть это посредством запутанного повествования, путь из начала в конец всегда лишь один. Игры в этом плане сильно отличаются: здесь приходится иметь дело с мутирующим, ветвящимся сюжетом – это как если бы к написанию историй применялась теория хаоса.
Касательно специфики написания текстов для игр: вот вам цитата из книги «Writing for Animation, Comics, and Games»:
“Анимация, комиксы и игры попадают под категорию, которую я называю «сокращённым» писательством для контраста с обычной прозой, где автор не ограничен в длине описаний и диалогов и может охватывать все пять чувств – зрение, слух, обоняние, осязание и вкус – посредством как внешнего (диалоги и описания), так и внутреннего (описание мыслей и эмоций) повествования.
«Сокращённое» писательство требует умения писать в рамках чётко структурированного формата: урезать описания до абсолютного минимума, сжимать диалоги до их непосредственной сути, рассказывать ёмкие, плотно сплетённые истории”.
Далее мы рассмотрим, как облегчить сокращённое писательство, дополненное работой с переменными и состояниями, при помощи специальных программных средств. Методология прототипирования и тестирования игровых текстов может оказать существенное влияние на результат, поэтому будет не лишним обогатить свой набор писательских инструментов.
Другой особенностью работы игрового писателя является специфичность тестирования: когда вы, допустим, пишете обычный рассказ, для тестирования достаточно напечатать черновик на бумаге или прочесть его вслух, но в любом случае вы будете иметь дело с уникальным черновиком. В случае с играми вам необходима возможность быстрого тестирования и внесения изменений, при этом нужно проверять несколько потенциальных исходов.
Это, к примеру, позволит проверить реплики ваших персонажей в различных ситуациях. Сюжет в играх способен быть решением проблем, но он должен допускать внесение изменений в динамическом состоянии.
Вот описанная Даниеле проблема, которую может решить инструмент для работы с динамическим потоком с поддержкой интерактивного написания текстов и их тестирования:
“Немного отойдём от основной темы: Пьетро попросил меня написать об одной вещи, которую я упоминал в наших разговорах, она меня постоянно раздражает и представляет собой хороший пример плохо выдержанного темпа. Это то, что я называю эффектом «стены NPC», характерной для RPG и некоторых квестов.
Бывает, что вы за несколько часов игры разговариваете всего с парой человек, а потом вдруг приходите в город. Внезапно на вас обрушивается масса новых персонажей и если вы, как и я, не желаете упускать ни одной детали, вам ПРИДЁТСЯ разговаривать с каждым из них. Если бы их было, скажем, четверо, это было бы приятной сменой темпа. Но когда это целый город, повествование напрочь лишается плавности и вы оказываетесь перед «стеной NPC». Для меня такие моменты одновременно интересны и утомительны, поскольку новые люди представлены мне не постепенно, а все разом – это куча работы, которую мне предстоит проделать.
Одно из решений уже используется в играх с меньшим упором на диалоги, где большинство NPC просто болванчики, которым нечего сказать. Это лишает персонажей глубины, но сохраняет плавность темпа, поскольку игрок уже не видит в каждом встречном лишнюю нагрузку. Но я убеждён, что найдутся толковые решения и для игр с весомой ролью диалогов. Это так, пища для размышлений”.
Итак, давайте взглянем на существующие инструменты для работы с игровыми текстами.
Ink
Примечательный инструмент, позволяющий всё вышеописанное – Ink от компании Inkle, в общих чертах описанный Йоном Ингольдом (Jon Ingold) тут и более подробно в этой речи Джозефа Хамфри (Joseph Humfrey).
Это бесплатный скриптовый язык с открытым кодом, можете скачивать, устанавливать и работать. Текст пишется линейно (сверху вниз), синтаксис – своего рода язык разметки, вы всё контролируете прямо из текста.
Обобщающие слова самого создателя Ink:
- Оптимизирован для работы и переработки;
- Быстрый набор, сканирование и редактирование потока;
- Низкая стоимость логики, особенно для «истории»;
- Подборка и сопоставление структурных элементов;
- А также:
- Управление потоком: блоки if и switch;
- Полноценная логика: переменные, подпрограммы, функции, математика.
Потенциальным недостатком этого (замечательного) инструмента является сложность понимания чужих работ, да и в своей бывает непросто разобраться, когда она увеличивается в размерах.
Диалог в виде графа потока
Другим подходом к написанию текстов выступает соединение отдельных узлов в граф, как на картинке ниже:
В недавнем подкасте Кит Бургун (Keith Burgun) брал интервью у Рафа Костера (Raph Koster), который поделился несколькими замечательными наблюдениями об IDE (в частности, Unity), воплощающими в своей эволюции некоторые принципы гейм-дизайна. В случае с Unity кое-какие из этих принципов реализованы изначально, другие же предоставляются сторонними расширениями. Одно из таких мы и рассмотрим – это Outspoken за авторством Даниеле.
Outspoken
Немалое время назад я (Даниеле) ощутил потребность в редакторе диалогов, который можно использовать в Unity. Несомненно, у многих студий есть собственные восхитительные редакторы, но из того, что можно найти в общем доступе, меня ничего не устроило, главным образом потому, что все эти редакторы на редкость недружелюбны к писателям (за исключением Ink, который хорош, но ему не достаёт быстрого взгляда на организационную структуру, а для меня это, субъективно, самое главное). Так я начал свой утомительный путь к созданию собственного редактора Outspoken. Не примите это за рекламу, Outspoken предназначен для внутреннего использования и для друзей. Просто это хороший пример философии собственных редакторов диалогов, с которой я, очевидно, знаком не понаслышке.
Итак, я решил следовать такой философии:
1. Редактор создаётся в первую очередь ради писательских целей.
Я сам намерен писать тексты прямо в нём, поэтому меня интересует плавность потока, удобство и простота чтения/понимания. Если я потеряю концентрацию, отвлекаясь на лишние нюансы, пострадает живость и согласованность моего текста.
2. Работать должно быть весело, вплоть до того, что писатель почувствует себя автором комиксов.
Этот редактор многое для меня значит, и я сам работал с комиксами, так что данное правило мне отлично подходит.
3. Приятный глазу, не перегруженный деталями интерфейс.
Узлы диалогов не должны быть улеплены лишними элементами и должны быть как можно меньше сами по себе. В итоге я решил скрывать редко используемые элементы интерфейса (то есть, большую их часть), когда не нажата кнопка ALT.
4. Сочетания клавиш – ключ к успеху.
Так можно писать, не перемещая руку между клавиатурой и мышью, что мешает сконцентрироваться.
5. Очевидно, редактор должен быть снабжён всеми необходимыми функциями и быть расширяемым.
«Необходимыми» – значит необходимыми лично мне :P То есть акторы, ссылки на аудиоклипы, внутридиалоговый скриптовый язык, внутридиалоговые текстовые блоки, либо случайные, либо отбираемые по переменной/полу/ещё чему-то, локализация, глобальные и локальные переменные и так далее.
Работы было немало, но я уже опробовал редактор в нескольких играх и вполне им доволен (как и несколько моих друзей, первым из которых был Пьетро). Разумеется, я его постоянно дорабатываю.
Как подходить к дизайну диалогового интерфейса?
Как красиво оформить диалог в игре? Мы представим образцы из существующих игр, а потом расскажем, чему нас научил опыт разработки игр с такими диалогами.
Уроки из комиксов
Я (Даниеле) – выходец из культуры комиксов. Я любил, изучал и восхвалял комиксы всех видов – да и сам немало их написал. Поэтому, когда я делал свой первый мини-квест Faith No More, для меня было вполне естественным смотреть в том направлении и экспериментировать.
Есть одна вещь, которую комиксы не могут не понимать. Оформление диалогов и шрифтовка должны быть искусством сами по себе. Они должны передавать эмоции, атмосферу, напряжение столь же хорошо, как и смысл слов (или даже ещё лучше). Игры вместо этого преподносят текст в виде обычных субтитров, даже когда нет звука, или же в виде красиво украшенной книжной страницы. Среди немногих исключений я могу назвать Night in the Woods и Oxenfree – и обе игры взяли пример с комиксов. И получается, что каждый диалог – если и не стена, то кирпичик текста. И это плохо: шрифтовка была бы в разы лучше. И в плане отображения текста, и в плане композиции его элементов, их разбиения, сжатия или искажения, что оставило бы на них режиссёрский след. Просто взгляните на эти чудесные работы – можете увеличивать и наслаждаться ими во всей красе.
Cerebus (Dave Sim и Gerhard) и Snapchat (Chris Ware)
Arkham Asylum (Grant Morrison, Dave McKean и Gaspar Saladino)
Giallo Scolastico (Andrea Pazienza) и Elektra Assassin (Frank Miller, Bill Sienkiewicz и Jim Novak)
Конечно, комиксам проще. Там всё (как бы) заранее собрано воедино, с прекрасным пониманием каждого, сугубо статичного, элемента. Игры же пребывают в динамическом состоянии, где многочисленные переменные вмешиваются в происходящее. Тут всё куда сложнее. Так что я не говорю: «Вот, смотрите на комиксы! Давайте просто делать такие же диалоги!» Я лишь хочу сказать, что это отличная культура, с которой неплохо начинать поиск собственного пути.
Уроки из игр
Давайте начнём с обратных примеров: «как не надо делать», стандартные, очевидные подходы. Я (Пьетро) выбрал для этого The Banner Saga, потому что это восхитительная игра с чудесным сюжетом, но реже всего её наверняка хвалят за интерфейс диалогов, в чём можно убедиться на скриншотах:
Высокое качество графического дизайна несколько контрастирует с диалоговой системой. Похоже, кинематографическая жилка дизайнеров не подразумевает, что некий «интерфейс пользователя» достоин лишнего внимания.
Положительным (весьма и весьма) примером диалоговой системы выступает Night In The Woods (на наш взгляд лучший образец, вдохновлённый комиксами – она просто прекрасна):
Диалоги Night in the Woods лучше всего оценивать в анимации (а это уже о многом говорит).
Для каждого образца мы кратко подытожим дизайнерские идеи.
Особенности интерфейса: весь текст заглавными буквами, фиксированный размер шрифта, анимированный фон, выравнивание по левому краю.
В 80 Days есть два вида диалогов. Наиболее часто использующийся – простой проматывающийся текст в рамке:
Второй – с персонажами по бокам:
Особенности интерфейса: обрамление диалога, отсутствие «пузырей», выравнивание по стороне персонажа.
Теперь рассмотрим три примера из наших собственных игр:
Faith No More + Nothing Can Stop Us
Примечания по интерфейсу: (Даниеле) кроме вдохновения комиксами можно отметить идею остающихся на фоне пузырей завершённых реплик. Я считаю, что это помогает лучше всё понимать, ведь игрок видит частичную историю диалога (хотя, в своей новой игре я отделаюсь от идеи «истории» в пользу одиночных анимированных пузырей, так что всё зависит от контекста – ниже показан пример ранней версии «мысленного пузыря»).
Оглядываясь назад, я могу назвать диалоговый интерфейс с двух примеров выше не более, чем интересными экспериментами, лишёнными желаемого шарма и глубины. Пример пониже уже движется в нужном направлении. Ух, наверное, я многовато пишу. Пьетро меня за такое не ругает, вот я и распоясался!
Football Voodoom
Особенности интерфейса: выравнивание по центру, фиксированный размер шрифта, стандартный «резкий» указатель, выделение говорящего персонажа.
Заключение
Выше приведены примеры дизайна диалоговой системы, черпающие идеи и приёмы из комиксов и других игр. Какое заключение можно из этого вывести?
Заключение в том, что никаких заключений нет. Вы что, с ума сошли, полагая, будто творческую работу по созданию интерфейса диалогов можно привести к какому-то итогу? Это непрерывный процесс, и вдохновение комиксами – лишь наводка, в основном, призванная выделить одно из направлений за пределами «широко распространённых» и «общепринятых» :-) Однако игры – это игры, а не комиксы или фильмы, так что они открыты для экспериментов и привнесения толики собственной индивидуальности. Удачи!
Оригинал – “Videogame Dialogues: Writing Tools And Design Ideas” на Gamasutra.