Зависит от того, как именно ваша система собрана. Если это простое ветвление, то просто рассматривайте его как линейную историю с некоторыми флагами, чтобы точно сказать, на каком пути вы находитесь (или, если вы предпочитаете визуализировать таким образом, бинарную древовидную структуру, где каждый узел является точкой выбора истории и текущей место в истории - указатель на один из узлов). Немного более сложная история с несколькими путями, которые могут пересекаться друг с другом, может быть смоделирована как ориентированный ациклический граф с использованием той же техники.
Что если у вас одновременно происходит несколько сюжетных дуг, например, типичная система квестов с «открытым миром», где у игрока может быть несколько квестов одновременно? Если квесты не взаимодействуют друг с другом, вы можете рассматривать каждый из них как отдельное линейное или ветвящееся мини-дерево. Что если они изменят друг друга? Вот мой предпочтительный вариант:
Модифицированный ориентированный граф, где каждый узел представляет квест. Здесь у вас есть два основных вида стрелок между узлами: «активировать» и «деактивировать». Таким образом, выполнение квеста может открыть новые квесты, а также может сделать недействительными старые квесты, которые больше не имеют смысла (например, если вам дан набор квестов, каждый из которых должен помочь другой стороне враждующих сторон). фракции, выполнив один квест, могут автоматически скрывать другие квесты, если вы хотите заставить игрока выбрать одну сторону и придерживаться ее). Вы также хотите сохранить в каждом узле его текущий статус: активный (в настоящее время видимый игроку), неактивный (никогда не был виден игроку), завершенный (игрок завершил квест), потерпел неудачу (игрок видел квест но позже он был инактивирован, например, завершением отдельного конкурирующего квеста).
Забавное примечание: каждая система, которая работает для квеста / сюжетной линии, также работает для отдельного дерева разговоров с NPC, и наоборот. Поэтому, если вы найдете подходящую систему разговоров для своей игры, спросите себя, стоит ли ее модифицировать и для системы историй.