Публикация Школы траблшутеров

Графы ветвящихся историй в нарративном дизайне

Время чтения: 6 мин 50 сек
3 августа 2026 г. Просмотров: 23
 Геймификация,  Геймдизайн
Антон Бессарабов

Интерактивная история – ориентированный граф: вершины – сцены и реплики, рёбра – выборы игрока. Форма графа и есть нарративный дизайн: топология определяет, сколько стоит текст, где сходятся судьбы и какие финалы достижимы. Аппарат теории графов превращает споры о сюжете в проверяемые утверждения.

Графы ветвящихся историй в нарративном дизайне

История как ориентированный граф

На языке математики ветвящийся сюжет – граф G(V, E) с точкой входа, множеством финалов и рёбрами-выборами. Наивная форма – дерево, где каждая развилка порождает независимое продолжение. Такая структура не масштабируется: при b вариантах на узел глубина n даёт bⁿ листьев, уже десять бинарных решений требуют свыше тысячи концовок.

В классификации, прижившейся в индустрии с лёгкой руки Сэма Кабо Эшвелла, такое дерево зовут «пещерой времени» (time cave) – россыпью коротких историй, расходящихся из общего корня. Игры чаще строят ориентированные ациклические графы со слияниями (fold-back): ветви разбегаются и вновь сходятся. Эмили Шорт в разборе 2016 года расширила словарь форм «за пределами ветвления» – вплоть до структур, где граф не рисуется заранее.

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

Схема 1. Три канонические формы графа истории: дерево растёт экспоненциально, слияния удерживают объём, карта допускает возвраты.

Бутылочное горлышко и цена выбора

Рабочая лошадка жанра – «ветвление с горлышками» (branch and bottleneck): разбежавшиеся ветви обязаны сойтись в ключевых сценах. Объём текста растёт линейно, а не экспоненциально, потому что узкие места гасят комбинаторику. Память о выборе при этом не исчезает, а переезжает из топологии в переменные. Состояние истории – вершина графа плюс вектор флагов, и компактный граф с флагами эквивалентен огромному развёрнутому дереву.

На подобной механике держалась серия игр Telltale вплоть до финального сезона The Walking Dead (2018): формула «Клементина это запомнит» записывает решение во флаг, сюжет складывается обратно в прежнюю колею, а отметка стреляет позже – репликой, сценой, смертью.

Рис. 1. The Walking Dead. Игровой процесс.

Статистика в конце эпизода («так поступили 54% игроков») честно показывает: важен не маршрут, а вес решения. Если же флаги ни на что не влияют, игрок быстро распознаёт иллюзию выбора – болезнь дешёвых горлышек. Есть и обратная сторона: тестировать приходится не отдельные сцены, а сочетания вершин с флагами, и число состояний растёт быстрее, чем сам текст.

Detroit: Become Humanфлоучарт как интерфейс

Компания Quantic Dream в Detroit: Become Human (2018) сделала радикальный ход и показала граф самому игроку. После каждой главы открывается флоучарт (flowchart) – пройденный маршрут, заблокированные узлы и мировая статистика выборов. Масштаб внушительный: сценарий – свыше двух тысяч страниц, три протагониста, десятки концовок.

Рис. 2. Detroit: Become Human. Игровой процесс.

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

Схема 2. Флоучарт главы по образцу Detroit: Become Human: пройденный маршрут, процент игроков, слияние ветвей и скрытые узлы.

Twine, ink и проверка достижимости

Рис. 3. Инструмент Twine. Пример использования.

Инструменты закрепили мышление в терминах теории графов. Twine – визуальный редактор: сцена – карточка на холсте, автор буквально смотрит на граф. Язык ink студии inkle, открытый в 2016 году под лицензией MIT, устроен противоположным образом – как текст: блоки-узлы (knots & stitches) соединяются переходами-«дивертами», а конструкция с точками сбора встраивает мини-горлышки прямо в синтаксис.

Рис. 4. Инструмент ink. Пример использования.

Главное преимущество формализма – проверяемость. Компилятор ink предупреждает о «висячих концах» (loose ends) – рёбрах, за которыми нет продолжения: тупики обнаруживаются ещё на этапе сборки. Достижимость концовок выясняется классическим обходом графа в глубину или в ширину.

Крупные студии устраивают тестовые прогоны «ботами»: тысячи машинных прохождений измеряют покрытие узлов и вылавливают запертые ветви задолго до релиза. Формат окупается масштабом: на ink написаны миллионы слов отгруженного текста, а игрок за один сеанс видит лишь малую долю корпуса.

Сторилеты: граф, который не рисовали

Студия Failbetter в Fallen London довела идею флагов до предела и убрала рёбра вовсе. Единица контента здесь – сторилет: по определению Шорт (2019), фрагмент текста, предусловия доступности и эффекты после прохождения. Предусловия и эффекты выражены через качества (qualities) – числовые переменные персонажа.

Рис. 5. Fallen London. Игровой процесс.

Рёбер в явном виде нет: сторилет Б следует за сторилетом А, если эффекты А удовлетворяют предусловиям Б. Связь не нарисована, а вычисляется – граф существует только в пространстве состояний. Кремински и Уордрип-Фруин каталогизировали семейство подобных систем в академическом обзоре (ICIDS 2018) – от карточных Reigns до платформы StoryNexus.

Выгода очевидна: новый контент добавляется без перерисовки схемы, объём растёт линейно, формат идеален для живых игр – Failbetter доливает сторилеты в один и тот же Лондон уже больше пятнадцати лет. Достижимость проверяется поиском по состояниям: «запертый» сторилет, скрытый от любого игрока, – типичный баг жанра.

Заключение

Форму графа нарративный дизайнер определяет первой – ещё до написания текста.

Практический порядок:

  • выбрать топологию под задачу: дерево – для коротких историй, горлышки – для сюжетных игр, карта и сторилеты – для долгих миров
  • хранить комбинаторику в переменных состояния, а граф держать компактным
  • тестировать сюжет как граф: достижимость каждой концовки, отсутствие висячих концов, покрытие узлов автоматическими прогонами
  • решить, показывать ли граф игроку: Detroit продаёт схему как фичу, Telltale прячет ветвление за процентами статистики.

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