Наткнулся на ссылку к этой теме и сам с удивлением обнаружил тут свои посты

Подумал поднять такой важный топик.
Нелинейные логические системы.Реализовать сложно, но это будет чем-то очень специфическим. Идея такова: чтобы создать действительно нелинейную игру, необходимо думать так, как думали бы создатели большой многовариантной головоломки. Или как создатели шахмат, которые и сами не знают, сколько же вариантов решений может быть у их детища. Они думают над другим: как связать действие и последствия друг с другом.
Для этого надо создать большую сеть взаимосвязанных компонентов. Очень большую. Дело осложняется тем, что для текстовой игры каждый компонент надо прописывать, и большую часть автоматически. Где каждый компонент - отдельный квест, нпс или элемент мира. И с каждым из этих компонентов связано огромное количество факторов, присущих и другим квестам, нпсам, элементам. Решая квест тем или иным способом игрок меняет множество факторов, совершенно случайным для себя образом влияет на неявные счетчики и добивается некторого успеха, результата. Факторы, измененные игроком в процессе игры влияют на окружающий мир, слегка изменяя каждый его аспект. И соответсвенно условия решения и задания других квестов меняются в зависимости от факторов их вызвавших. Каждому квесту могут быть присущи требования и сила влияния на каждый из факторов при решении или провале квеста (что может считаться и в процентной велечине). Он запускается при соответсвии нескольких параметров заданным величинам, и тогда игрок может взяться за его выполнение. А результат решения конкретного квеста может как создать новую связь между компонентами, так и оборвать ее, изменив факторы влияния.
Таким образом мы создаем почти бесконечное количество решений. Главное - сделать факторы видимыми и существенными для игрока. Чтобы каждое отличие хотя бы одного фактора меняло бОльшую часть системы. Чобы при каждом новом прохождении игрок сталкивался бы с новыми ситуациями, так как создать туже ситуацию можно только при стечении множества обстоятельств (+можно же включить рандомники). Ситуации могут быть похожи на ту что игрок встречал раньше, но чем сильнее будет различие факторов, тем сильнее будут различаться условия квеста, задачи, цели, причины.
В общем... Это слишком гениально и сложно чтобы описать в общих словах. wink3.gif
Я еще сам не могу точно описать все что хочу сказать... Это экспромт, писал чтобы самому не забыть... Пока вот попробую привести еще и пример:
в мире существуют факторы (самые простые примеры, их может быть ТОННА: преступность, погодные условия, население, культура, количество магов, количество денег у торговцев, вещей у игрока в кармане, его параметров, параметров случайно сгенерившегося НПСа...) которые влияют на компоненты мира: ассортимент товаров, количество воров в городе, магических аномалий, исследованных территорий, на установившиеся связи сежду городами/государствами/фракциями... всего чего угодно. В соответсвии с этим квесты изменяются (например если преступность низка то у НПСа украли только кошелек, а если нет - статуэтку и собаку smile.gif которые и предстоит разыскать игроку )или вовсе исчезают/появляются.
Прописаны лишь возможные ситуации, а их комбинации генерятся в зависимости от факторов
соответсвенно расположение украденных вещей и время кражи будут рандомны. Также как и персонаж, подвергнувшийся краже т.е. практически полный рандом, исключая базовые диалоги.
а написать множество
базовых диалогов - задача простая, главное много рук и голов. А их наполненность уже не так и влияет wink3.gif
Но все это реализовать очень сложно по причине необходимости отладки логики возможных ситуаций... но можно. Хотя бы на 100 элементов, где связанными являются до 10 компонентов одновременно. Получится такой тонель 10^N*100 элементов smile.gif Который приведет к концу игры. Хотя я могу ошибаться, сейчас просто идет активный мывслительный процесс, поэтому излагаю все подряд в той форме в которой все приходит в голову wink3.gif
Если кто-то решиться взяться за подобный эксперемент, попробую более структурированно изложить свои мысли, а то все вышенаписанное слишком обобщенно и не конкретно+ сложно изложено в связи с фактором времени, которое на время написания поста было достаточно поздним prankster2.gif
Тут нужно не много квестов, а тут нужны такие скрипты которые бы создавали квесты сами, используя набор прописанных элементов. Игроки же могли бы во время выполнения заданий изменять ситуацию, смещать рычажки таким образом чтобы исходная задача была выполнена, а необходимые связи элементов не нарушены. Соответсвенно полного успеха добиться практически невозможно, поэтому изменившиеся во время игры факторы повлияют на последующие задания, на время их появления, на условия выполнения, на результат...Вот она, нелинейность smile.gif
теперь образно: представьте себе листок бумаги в клеточку, где в одной из верхних клеток расположена исходная точка, а снизу - конечная. Путь игрока будет возможен от одной клетки к другой по любому направлению: вверх, вниз, влево, вправо, по диагоналям, через несколько клеток сразу(к примеру по 10 направлениям) Когда игрок делает шаг, связи между всеми клетками (или областью клеток) изменяются: появляются, исчезают, усиливаются, ослабляются, создавая либо тупик, либо наоборот упрощая продвижение игрока к цели. Чем правильнее с точки зрения разработчиков игрок будет выполнять задания(делать шаги), тем сильнее или слабее будут изменяться связи. Именно эту реакцию действия на связи и нужно прописать скриптами. Универсальными. Чтобы путь был непредсказуем.
"Пойди, принеси, убей..." - это будут основные элементы заданий, присущие всем классическим квестам в РПГ. Однако, вы можте придумать что нибудь еще? Нет, дело в том что ничего кроме этих элементов быть не может. Может быть только разнообразие описаний квеста и целей. Весь интерес и будет заключаться (и заключается, и всегда заключался) в его связи с остальным миром, другими квестами, диалогами, нпсами. Даже в самых лучших РПГ большинство заданий сводятся именно к таким задачам. Друго дело - как они поданы и как происходит их выполнение. И еще:
Помимо таких "граундовых" (простейших, несложных) квестов, которые будут в ходе своего выполнения создавать условия (изменяя факторы) для получения и изменения других квестов, могут существовать более
ключевые связки. Например, систему логических связей можно расслоить на множество
измерений. (Вспоминайте образный пример с листочком, где после каждого шага пути отодной клетки к другой смещаются или изменяются) Измерения могут представлять как объединения малых логических подсистем (связок квестов, элементов) так и быть паралельными друг другу. Так и вовсе можно создать трехмерную логическую матрицу. Но легче всего расслоить матрицу на две-три параллельных.
Например, первый граундовый слой - простые квесты, не связанные заранее заготовленными сюжетом: они "генеряться" в зависимости от факторов и условий, и вступают в случайное соединение друг с другом. Этот уровень я описал, он дает игрокам возможность корректировать мировые глобальные переменные и изменять факторы воздействующие на все (или некоторое количество) других заданий и событий.
Пример.
Пойдя за украденной вещью к пьянице-свидетелю можно узнать у него о группе культистов. Соответственно если прикинуть и понять, что раз сложился такой квест, можно бы сходить в компетентные органы и узнать об этой группе больше, начать новый только что открывшийся для тебя квест.
Механически: вырос уровень преступности. Рандомником загенерился один из ее вариантов - появился какой-то культ (прописанный разработчивами). Игрок случайно наткнулся на персонажа, у которого открылся квест связанный с преступностью - кража. Он посылает игрока к пьянице потому, что уровень пьянства в городе достаточно высок и рандомники попали на этого НПСа. На пьяницу повешен диалог свидетеля. Он мог бы рассказать о бандите, если бы это был не культ, но так как преступность была вызвана появлением культа, он о нем и рассказывает. Как только игрок узнал о культе, у него появляется это знание, которое можно реализовать обратившись к магам(инквизиции, храму...не важно) или правосудию и получить новый квест. Выполнив его игрок 1 -возвращает украденную вещь 2- уменьшает уровень преступности 3-повышает авторитет правосудия 4 - повышает уровень пьянства так как заплатил ему за свидетельство smile.gif Фантазий море.
Может существовать второй слой, состоящий из ключевых моментов. К ним можно прийти выполняя граундовые квесты и добившись успешной структуры связей, позволившей попасть в ключевую точку. Ключевых точек может быть много. Например одна там где игрок пошел по пути закона и добра, другая где игрок отверг правосудие. Например, выполняя задания по избавлению города от преступной группы мы приходим к успешному итогу, где осуществляется постановка следующей глобальной (в масштабе игрока) цели. Например войти в группу префектов города и разобраться с коррупцией в префектуре :Р Он может этого не делать, просто это - его жизнь; он может руководствоваться своими побуждениями (которые даны в завязке игры или выдуманы самим игроком) Таких квестов может быть меньше, но они могут быть во первых - лучше проработаны сюжетно, во вторых - они будут направлять игроков на следующий уровень: к сюжетным квестам, которые уже и будут водить игрока по
линейному сюжету, подкидывая мотвации к активной жизни игрока или создавая условия в которых придется сопротивляться обстоятельствам. Это места где фантазия разработчиков не ограничена. Сюжет развивается вне зависимости от игрока. Если суждено случиться насшествию демнов - оно случиться. Это - задумка разработчиков, та история которую нам поведают в процессе игры. Можно конечно дать возможность предотвратить это сюженое событие, но это должен быть очень специфический путь. Вопрос в другом, когда и в каких условиях к этому моменту придется оказаться игроку. Это и будет его задача: идти по сюжету наиболее успешным путем и достигая своих целей жить в мире, живущем по готвому сценарию. Игрок должен руководствоваться собственной мотивацией, возникшей в завязке игры.
Литературные тексты как я уже писал буду писаться нормальным обычным способом, только с пропуском необходимых условий ("У меня украли ...! Вчера в ... утра/вечера прямо в таверне/на площади/из дома! Я хочу чтобы ты... с ходил к начальнику стражи/ погворил с местным выпивохой, который был свидетелем/чтобы ты проник в логово к бандитам...и узнал где мои вещи." примерно такой диалог, только лучше проработанный литературно). Там могут быть ветвления по тем путям, которые появились в связи с открывшимися игроку обстоятельствами. И все дельше и дельше игрок будет углубляться в мир, изменяя факторы открывать новые пути.
Ключевые квесты - более статичные задания, появлящиеся только при стечении определенных обстоятельств (возможно известных игроку с начала, с завязки или предыдущего сюжетного квеста) Этих ключевых моментов можно вообще не касаться, преследуя собственные цели, однако УСПЕШНОЕ продвижение по сценарной линии возможно только при точном знании ключевых моментов и исполнении узких необходимых действий, приводящих к необходимым условиям. Можно вообще не касаться основного сценария, однако это может привести героя в тупик, к гибели или просто к положению, когда все идет так как шло, если бы героя в мире не появилось.
Но итог всегда будет один - игра закончится.
Как и в шахматах мы можем только разветвить результаты окончания: кто-то один победил, или случилась ничья. И эта ситация может быть неоднозначным только для игрока (достиг он своей собственной цели или нет). А изменение концовок в масштабе вселенной в которой происходит действие останется на совести разработчиков. Сколько придумают столько и будет. Это и будет третий слой - сюжетные квесты. Тут про нелинейность речи не идет. Они могут быть хорошо проработаны сценарно и литературно, изменяемы в зависимости от характера героя. Но в целом - также как и современные квесты, сюжетные будут линейны (по крайней мере разветвленны). Но для них будет непредсказуем другой фактор - герой. Каким он пришел сюда никто не знает. Способен он повлиять на ход событий или останется простым наблюдателем или даже жертвой сюжета?..
Дело в том что даже 8*8 клеток шахматной доски создают такое огромное число комбинаций, что даже сверхъкомпьютеры не могут просчитать ВСЕ. Поэтому подобная система и может называться нелинейной. Такой, которая не подвластна пока 100% прогнозированию wink3.gif Я считаю что и в РПГ такая система вполне уместна. Но повторю что не требуется рассчитывать все комбинации самостоятельно - в этом и соль. Мы сделаем механизм который будет работать как шахматы, создавая каждый раз новую ситуацию, только с помощью скриптов.
________________
*Трехмерная логическая матрица - это если использовать систему не с листочком (как я описал ранее) а трехмерную, объемную, где элементы расположены в трехмерном пространстве. Просто тогда связей становится намного больше. Это просто как один из вариантов задания такой системы.
*Элементы матрицы. Как я уже говорил - все то что будет появляться/исчезать/изменяться, одним словом все что будет зависеть от факторов. Например диалоги или квесты, возможность купить новое оружие, возможность отправиться в другой город...и т.п.
*Под логикой я понимаю однозначное взаимодействие: "Если-то". Поэтому ее и можно заскриптовать не на уровне однозначных условий (как элементарные квесты сейчас меняются в зависимости от характера героя, к примеру), а на уровне общих зависимостей (от глобальных переменных и множества их комбинаций) в каждой части элемента (в каждом условии квеста например).
Если бы нам пришлось заскриптовывать однозначную реакцию, то тогда бы мы потеряли всю нелинейность, так как пришлось бы работать не много ни мало вечно. Но работы тут на самом деле меньше потому что мы не знаем какие комбинации условий могут сложиться и нам не надо прописывать однозначную реакцию на каждое конкретное стечение обстоятельств. В том и соль, мы даже не знаем как сложаться эти обстоятельства в тот или иной момент времени. Мы только можем сказать: они сложаться или не сложаться. Где и когда не важно. Но сложившись игрок получит квест и на это мы уже
можем подготовить ответ.
Вотъ

Обсуждаем если что не понятно
в этой теме.