Nightfall StoriesРемесло
Дизайн ветвления
Выборы против ветвей, ложный выбор, и сколько концовок история выдержит.
Ветвление — самая дорогая часть интерактивной истории, и считают его чаще всего неверно.
Выбор и ветвь
Выбор — момент, когда читателю показали меню. Ветвь — момент, когда история из-за этого пошла иначе.
Три опции, сходящиеся обратно в один узел, дают один выбор и ноль ветвей. Такие выборы дают читателю голос и стоят дёшево, но последствий у них нет.
«12 выборов, 2 ветви» и «12 выборов, 12 ветвей» — разные истории. Метрики главы показывают оба числа рядом.
Три вида выбора
Окраска. Ветки нет, есть тон: огрызнуться или промолчать, обе дороги ведут в одну комнату. На этом строится большая часть диалога.
Отложенное последствие. Ветки нет сейчас, есть флаг: через две главы дверь окажется открытой или запертой. Цена маленькая, ощущение сильное.
@set told_truth = 0
* choice "Сказать как есть"
@set told_truth = 1
-> after
* choice "Промолчать"
-> after
Настоящая развилка. Дороги расходятся и не сходятся. Дорого: каждая ветка — это текст, который прочтёт часть аудитории. Тратить на неё стоит там, где сюжет действительно поворачивает.
Ложный выбор
Меню обещает последствие, которого нет: «спасти» и «бросить», после чего в обоих случаях одно и то же.
Проблема здесь в тексте опции, а не в отсутствии ветки. Читатель заметит на второй читке и после этого перестанет верить остальным выборам, включая те, за которыми последствия есть.
Лечится формулировкой. «Броситься к двери» и «Замереть» законно ведут в одно место: они обещают действие, а не исход.
Сколько концовок
Каждая концовка должна быть достижима хотя бы одним маршрутом и отличаться от соседних тем, куда пришёл читатель, а не последним абзацем.
- Достижимость проверяется бот-обходом. Чаще всего мешает не граф, а арифметика: порог выше потолка накопления.
- Флаг, который никто не читает, механикой не является. Если
mark_fateрастёт всю историю и не входит ни в одно условие, концовок у вас на одну меньше, чем кажется. - Похожие концовки хуже, чем меньшее их число. Две развязки, отличающиеся судьбой второстепенного персонажа, читаются как одна.
Что делает движок
| Директива | Что даёт |
|---|---|
@if на опции |
опция недоступна, пока условие ложно |
@cost |
опция стоит валюты или предмета |
@timer |
на выбор ставится таймер, секунды |
@skill_check |
проверка навыка против сложности |
Таймер превращает выбор в давление. Не ставьте его там, где читателю нужно подумать: у части аудитории это занимает больше времени по причинам, не связанным с нерешительностью. Истечение таймера должно быть осмысленным исходом, а не наказанием.
Синтаксис опций — выбор, полный список директив — справочник.
Практика
Ветвите поздно, сходитесь рано. Развилка в начале главы удваивает всю главу. Та же развилка перед финалом стоит двух сцен и читается так же значимо.
Флаг дешевле ветки. Прежде чем разводить дороги, спросите: нельзя ли запомнить и отыграть потом.
Одна настоящая развилка на главу — уже много. Если их три, глава распадается на восемь версий, из которых семь никто не прочтёт.
Директивы этой темы
Собрано из реестра движка: каждая директива этих категорий ведёт сюда из справочника.
@choice_shakeДрожащая кнопка выбора@choices_fadeОпции проступают с задержкой@hapticТактильная отдача@hold_to_actУдержание для действия — блокирующий жест (§17: с доступной альтернативой)@skill_checkПроверка навыка: стат против сложности (± RNG)@timerТаймер-бар на выборе, мс (§17 — доступное окно)