Инструменты: Diagram и Twine для прототипа ветвящегося сценария

Привет, меня зовут Марго. Занимаюсь разработкой эротической визуальной новеллы в жанре городского фэнтези под названием "Tenebrae". Хочу поделиться опытом работы с парой полезных инструментов для прототипирования ветвящегося сюжета.

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

Поэтому, сегодня я хочу поговорить с вами о том, почему стоит рассмотреть для прототипирования именно Twine. Есть и другие альтернативы, типа Articy:draft, но я им не пользуюсь, поэтому не могу ничего о нём сказать.

Начнём с самого простого:

Диаграммы

Diagram.net - удобный сайт для создания блок-схем. В нём мы планировали переплетение антагонистов, локаций и любовных интересов, которые могут выступать совсем в разных ролях, в зависимости от маршрута.

Инструменты: Diagram и Twine для прототипа ветвящегося сценария

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

Инструменты: Diagram и Twine для прототипа ветвящегося сценария

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

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

Для задач с визуализацией подойдёт любой сервис блок-схем или доски, типа Miro.

Я выбрала Draw.io потому что он:

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

Twine

Разобравшись с лором, правилами мира, альтернативной историей вселенной, персонажами, основами их характеров, взаимоотношений и темами их сюжетов, мы подобрались к созданию прототипа.

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

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

Инструменты: Diagram и Twine для прототипа ветвящегося сценария

Какие у нас были потребности:

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

Twine подошёл по всем пунктам. Он не слишком интуитивен, его интерфейс не юзер френдли, мне пришлось посмотреть видео-гайд и прочитать туториал. Но в результате, я смогла делиться наработками с помощью простого html файла, который фокус группа запускала из браузера.

Инструменты: Diagram и Twine для прототипа ветвящегося сценария

Работа с блоками в Twine

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

  • В правой нижней части экрана по нажатию на большую зелёную кнопку.
  • Либо из тела других параграфов с помощью одной строчки.
    Например: [[Ответить на звонок|C7]]
    Двойные скобки обозначают инициализацию запроса.
    “Ответить на звонок” - как пользователь/тестировщик увидит ссылку.
    ”C7” - название параграфа, в который перейдёт пользователь по клику.

Я пользуюсь вторым способом, пока работаю с предыдущим блоком.

Инструменты: Diagram и Twine для прототипа ветвящегося сценария

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

Инструменты: Diagram и Twine для прототипа ветвящегося сценария

Примерно так будет выглядеть карточка “0.0.9”

Инструменты: Diagram и Twine для прототипа ветвящегося сценария

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

Но есть функции ещё более интересные!

Переменные

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

Создание переменных: (set: $William to 0)

Инструменты: Diagram и Twine для прототипа ветвящегося сценария

Изменение переменных: (set: $Sylvan to ($Sylvan + 1))

Инструменты: Diagram и Twine для прототипа ветвящегося сценария

Проверка переменных: (if:$Brothers >= 2)

Инструменты: Diagram и Twine для прототипа ветвящегося сценария

В примере видно условия:

Если переменная братьев больше или равна двум, то игрок увидит первый блок текста, где Уильям не поверил Беатрис и не оставил ей никакого выбора. Читатель попадает на маршрут братьев.

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

Архитектура

Чтобы не запутаться, я индексировала сцены. Пример: 1.2.12

1 - это глобальная ветка (фиолетовая, рыжая, синяя, красная)
2 - это маршрут внутри ветки (любовная линия персонажа)
12 - номер сцены

Получается, у нас двенадцатая сцена в маршруте Сильвана, который является вторым по счёту в рыжей ветке. Первый - Уильям. Нулевой - это блок выбора между персонажами.

Инструменты: Diagram и Twine для прототипа ветвящегося сценария

Но циферок, кажется, немного больше.

Например, на скриншоте есть 0.0.6/1 - вторая часть шестой сцены центрального маршрута. То есть, попав в шестую сцену, мы прочитали некоторый блок текста, а потом Беатрис получила SMS. Перед ней выбор - ответить на сообщение или проигнорировать его. Лишь совершив выбор, читатель получает следующий блок текста той же сцены. Событий в одной сцене может быть несколько и нам важно, что выбрал игрок, чтобы посчитать переменные.

Вот ещё один скриншот:

Инструменты: Diagram и Twine для прототипа ветвящегося сценария

Я группировала сцены и всё что к ним относится.
Из 0.0.16 у нас два события: SMS и звонок.
В 0.0.17 мы планировали выбор в диалоге и SMS от Мартина.

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

Итог

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

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

Стадии

Наша работа над сюжетом поделена на несколько итераций:

1. Прототипирование.
2. Тестирование.
3. Написание чернового текста.
4. Логическая сверка с аналитиком.
5. Переработка, улучшение, работа с ритмом текста.
6. Логическая сверка с аналитиком.
7. Редактура и коррекция.
8. Перевод.

Прототип

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

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

Ссылки

Где скачать Twine.
Документация Twine.
Видео на русском с разбором функций Twine.
Тестовая игра от Александра Залесского, которая наглядно учит пользоваться функциями приложения.

2525
3 комментария

Спасибо за столько подробный разбор!

2

Спасибо за статью, у вас классный проект — пусть все получится! Диаграмму взяла на заметку, так-то схемы тоже в миро рисую, но не то, что прям нравился финальный результат. А собираю игру в артиси:драфт 3, он в разы дружелюбнее и приятнее твайна, ну на мой взгляд.

2

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