Залежить саме від того, як складається ваша система. Якщо це просто розгалуження, то просто розглядайте його як лінійну історію з деякими прапорами, щоб точно сказати, на якому шляху ви рухаєтесь (або якщо ви віддаєте перевагу візуалізувати таким чином, бінарну структуру дерева, де кожен вузол - це пункт вибору історії та поточний місце в оповіданні - вказівник на один із вузлів). Трохи більш задіяна історія з кількома шляхами, які можуть перетинатися один з одним, може бути змодельована як спрямований ациклічний графік за допомогою тієї ж методики.
Що робити, якщо у вас одночасно триває кілька дужок, як типова квест-система «відкритого світу», де у гравця може бути кілька квестів одночасно? Якщо квести не взаємодіють один з одним, ви можете просто розглянути кожен з них як своє окреме лінійне або гіллясте міні-дерево. Що робити, якщо вони змінюють один одного? Ось мій кращий варіант:
Змінений спрямований графік, де кожен вузол представляє квест. Тут у вас є два основних види стрілок між вузлами: "активувати" та "відключити". Таким чином, завершення квесту може відкрити нові квести, а також може визнати недійсними старі квести, які вже не мають сенсу (наприклад, якщо вам надано набір квестів, кожен з яких повинен допомогти іншій стороні деяких ворогуючих. фракції, виконавши один квест, може автоматично приховати інші квести, якщо ви хочете змусити гравця вибрати одну сторону і дотримуватися її). Ви також захочете зберегти у кожному вузлі його поточний статус: активний (наразі бачний гравцеві), неактивний (ніколи не був видно гравцеві), завершений (гравець закінчив квест), невдалий (гравець бачив квест але пізніше вона була інактивована, наприклад, шляхом виконання окремого конкуруючого квесту).
Забавна сторона: будь-яка система, яка працює для квесту / сюжетної лінії, також працює для індивідуального дерева розмов з NPC, і навпаки. Тож якщо ви знайдете підходящу систему для бесіди для своєї гри, запитайте себе, чи варто її змінити і для системи розповідей.