Документация Nyxtale

Nightfall StoriesРемесло

Дизайн ветвления

Выборы против ветвей, ложный выбор, и сколько концовок история выдержит.

Ветвление — самая дорогая часть интерактивной истории, и считают его чаще всего неверно.

Выбор и ветвь

Выбор — момент, когда читателю показали меню. Ветвь — момент, когда история из-за этого пошла иначе.

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

«12 выборов, 2 ветви» и «12 выборов, 12 ветвей» — разные истории. Метрики главы показывают оба числа рядом.

Три вида выбора

Окраска. Ветки нет, есть тон: огрызнуться или промолчать, обе дороги ведут в одну комнату. На этом строится большая часть диалога.

Отложенное последствие. Ветки нет сейчас, есть флаг: через две главы дверь окажется открытой или запертой. Цена маленькая, ощущение сильное.

@set told_truth = 0
* choice "Сказать как есть"
    @set told_truth = 1
    -> after
* choice "Промолчать"
    -> after
движок принял set×2choicejump

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

Ложный выбор

Меню обещает последствие, которого нет: «спасти» и «бросить», после чего в обоих случаях одно и то же.

Проблема здесь в тексте опции, а не в отсутствии ветки. Читатель заметит на второй читке и после этого перестанет верить остальным выборам, включая те, за которыми последствия есть.

Лечится формулировкой. «Броситься к двери» и «Замереть» законно ведут в одно место: они обещают действие, а не исход.

Сколько концовок

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

Что делает движок

Директива Что даёт
@if на опции опция недоступна, пока условие ложно
@cost опция стоит валюты или предмета
@timer на выбор ставится таймер, секунды
@skill_check проверка навыка против сложности

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

Синтаксис опций — выбор, полный список директив — справочник.

Практика

Ветвите поздно, сходитесь рано. Развилка в начале главы удваивает всю главу. Та же развилка перед финалом стоит двух сцен и читается так же значимо.

Флаг дешевле ветки. Прежде чем разводить дороги, спросите: нельзя ли запомнить и отыграть потом.

Одна настоящая развилка на главу — уже много. Если их три, глава распадается на восемь версий, из которых семь никто не прочтёт.

Директивы этой темы

Собрано из реестра движка: каждая директива этих категорий ведёт сюда из справочника.

  • @choice_shake Дрожащая кнопка выбора
  • @choices_fade Опции проступают с задержкой
  • @haptic Тактильная отдача
  • @hold_to_act Удержание для действия — блокирующий жест (§17: с доступной альтернативой)
  • @skill_check Проверка навыка: стат против сложности (± RNG)
  • @timer Таймер-бар на выборе, мс (§17 — доступное окно)