Graff46 598 Опубликовано 16 Мая 2020 (изменено) Динамический сюжет и НПС выполняющие квесты Скрытый текст Данная система разрабатывается для решения развития сюжетных линий игры не зависимо напрямую от действий ГГ, также, учитывая особенности работы A-life и того, что отдельные задания должны выполнятся НПС. Всё вместе это должно обеспечить непредсказуемость развития событий и массу вариаций исхода этих событий. Для обеспечения функционирования данной системы потребуется определённое построение сюжетных линий и их поддержка в виде скриптовых функций, которые должны обрабатывать различные события и условия игрового мира для реакции текущих заданий из сюжетных линий. Можно сказать, что данная система, в какой-то мере реализует "A-life" для сюжетных линий. Подразумевается, что изначально задаётся минимальный набор входных данных (ид сюжетной линии, НПС/ГГ кто выполняет задачу, кто дает задачу, глобальная цель) и минимально необходимый набор скриптовых функций. Далее исполнители (НПС или несколько и ГГ) должны пытаться выполнить задание, но так как исполнители являются конкурентами и ряд факторов игрового мира могут (и должны) помешать выполнить задание исполнителю из-за чего должны появиться новые подзадачи и события в контексте всего задания. Скрытый текст Так как данная система достаточно сложная, то вся система была разделена на 3 подсистемы: Класс динамических квестов Схема поведения для НПС Менеджер (логика) динамических квестов Скрытый текст Скриптовая программа для построения динамического квеста. В ней данные для квеста парсятся из сторонних файлов, происходит проверка условий квеста, также выдача квеста делается этим классом, все параметры квеста находятся в этом классе, по сути этот класс и есть динамический квест. Скрытый текст Схема поведения для НПС которые были выбраны как исполнители динамических квестов. Запускается классом динамических квестов. Схема работает "напрямую", ей не требуются *.ltx файлы. Очень упрощённо говоря - данная схема "ведёт" НПС к цели и посылает сигналы о событиях (например достижении цели) Скрытый текст *На момент написания этот модуль только подразумевался как идея и не был начат делаться. Этот модуль должен обрабатывать сигналы от динамических квестов и изменять их в зависимости от принятых и текущих данных игрового мира. Нужно понимать, что нецелесообразно писать множество обработчиков для каждого возможного события, подразумевается, что должны быть реализованы общие функциональные зависимости которые будут процедурно генерировать события исходя из данных от квеста и мира. Нужно понимать, что разделение между Классом динамических квестов и Схемой поведения для НПС условно, в коде оба этих модуля очень тесно связаны Проект на GitHub Если Вы решите помочь проекту и не знаете с чего начать, то на страничке проекта в разделе issue будут написаны текущие задачи. В будущем будет работать трекер задач в разделе projects. Изменено 1 Июня 2020 пользователем Graff46 4 1 1 Поделиться этим сообщением Ссылка на сообщение
Graff46 598 Опубликовано 17 Мая 2020 @Malandrinus, хотел чтобы ЗП и были открытые исходники, сначала выбрал Open X-Ray, но не понравилась его не стабильность на тот момент, CoC устроил всем. Поделиться этим сообщением Ссылка на сообщение
Graff46 598 Опубликовано 19 Мая 2020 @Zander_driver, Посмотреть ее можно? Поделиться этим сообщением Ссылка на сообщение
Graff46 598 Опубликовано 27 Мая 2020 @Zander_driver, Посмотрел. Не много не то. Поделиться этим сообщением Ссылка на сообщение
Graff46 598 Опубликовано 1 Июня 2020 В проект был объединён с другим моим проектом - "Схема поведения НПС в оффлайне". Теперь схема работает с НПС в оффлайне и онлайне. Проект перешел с COC на обычный ЗП. Рекомендуется использовать Mixed сборку OpenXRay. 1 1 Поделиться этим сообщением Ссылка на сообщение