Управление сложной игровой сюжетной линией или системой квестов


14

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

Ответы:


4

Зависит от того, как именно ваша система собрана. Если это простое ветвление, то просто рассматривайте его как линейную историю с некоторыми флагами, чтобы точно сказать, на каком пути вы находитесь (или, если вы предпочитаете визуализировать таким образом, бинарную древовидную структуру, где каждый узел является точкой выбора истории и текущей место в истории - указатель на один из узлов). Немного более сложная история с несколькими путями, которые могут пересекаться друг с другом, может быть смоделирована как ориентированный ациклический граф с использованием той же техники.

Что если у вас одновременно происходит несколько сюжетных дуг, например, типичная система квестов с «открытым миром», где у игрока может быть несколько квестов одновременно? Если квесты не взаимодействуют друг с другом, вы можете рассматривать каждый из них как отдельное линейное или ветвящееся мини-дерево. Что если они изменят друг друга? Вот мой предпочтительный вариант:

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

Забавное примечание: каждая система, которая работает для квеста / сюжетной линии, также работает для отдельного дерева разговоров с NPC, и наоборот. Поэтому, если вы найдете подходящую систему разговоров для своей игры, спросите себя, стоит ли ее модифицировать и для системы историй.


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

9

В набор инструментов Neverwinter Nights входит интересная попытка решить эту проблему, известная как Мастер графиков. Изначально он не поставлялся с набором инструментов, поэтому вам, возможно, придется попробовать его снова, если вы занимались разработкой модулей несколько лет назад. Вот длинный учебник, в котором рассматриваются различные компоненты, предназначенные для разработки сюжета RPG.

Основная сводка заключается в том, что «мастер сюжета» позволяет строить сюжетную линию и квесты сверху вниз. Например, вы можете сказать ему сгенерировать соответствующий сценарий для квеста «извлекать 10 вещей», который приводит к fedex, что приводит к пользовательскому сценарию. Затем мастер сгенерирует серию связанных компонентов, которые связаны со сценарием печати, и затем позволит вам разместить их в мире. Это позволяет вам легко перемещать NPC или врагов по всему миру, не разрывая сценариев.

Я не знаю ни одной другой коммерческой игры, которая использует эту технику (большинство, кажется, использует тонну одноразовых переменных, которые проверяются с помощью сценариев), но я всегда чувствовал, что это была разумная основа для создания полной RPG или приключения стиль игры.


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.