Недавно наткнулся на доклады Николая Дыбовского на тему Хаоса в игровом мире.
Приведу и свои некогда написанные измышления на эту тему. Правда вышло немного сумбурно. Но писал я их ещё до того как услышал доклад.
Эмуляция собственной жизни виртуального мира (размышления)
Данный текст является лишь размышлениями на тему. Попыткой изучить вопрос и предложить свои варианты.
Буду рад если кому-то хоть как-то поможет данный текст. Читайте и пользуйтесь как угодно.
для более удобоваримого вида залил в формате Word на файлообменник.
http://www.sendspace.com/file/kkntwp
или
http://rusfolder.com/34628961
Ну и в менее удобном виде текст ниже.
Эмуляция собственной жизни виртуального мира посредством рандома. (И прочие дебри оригинальности в тёмном лесу.)
Данный текст является лишь размышлениями на тему того как заставить виртуальный мир выглядеть «живущим своей жизнью без вмешательства сценариста». Попытка создания концепции самостоятельно живущего мира, пусть основой будет простая РПГ в средневековом сеттинге (или уж целая вселенная если мало будет).
Суть проблемы: наличие сценарных рельс, по которым катят тележку с игроком. Либо наличие сценарных чекпоинтов. В итоге игры всегда должны начаться в точке А и закончится в точке Б или С. Что делает игру одинаковой для каждого игрока. (Исключения ELITE, Космические рейнджеры – я не рассматриваю так как имею в виду «нечто совершенно иное»). Игровая модель, в которой сами по себе происходят (или не происходят) события, которые бы не были банальными скриптовыми квестами, побочными миссиями, а действительно бы были независимыми событиями игрового мира со своими последствиями – в данный момент не существует.
Цель: попытаться создать основные принципы, законы такой модели, либо прийти к выводу о невозможности существования модели, которая в разы бы не уступала рельсовой\чекпоинтовой.
Условия.
За основу мира возьму игру Darklands (хотя и Daggerfall и Ultima 7 подойдет). Обычный мир в котором можно просто жить, бродить по карте, выполнять сценарные квесты, натыкаться на сценарные рандомные события.
Возможно ли заставить подобный мир жить своей жизнью? Рыцари (подданные феодалов) воюют, алхимики химичат, священники проповедую, инквизиторы выискивают ведьм… а что игрок? Помимо просто жизни в мире, в мире неужели его участие ограничивается сценарием (даже если весь огромный мир свободен для исследований). И каждое последующее прохождение игры не будет глобально отличаться от первого. Может ли в игре быть именно жизнь? Почему игрок может прокачаться до 60 лвл-а, а простой НПС так и должен довольствоваться ролью тупого статиста. Почему бы сидящему в замке барону не стать раубриттером, или не заняться колдовством, прокачавшись на купленных книгах.
Ведь в большинстве игр NPC – либо стоят на месте ничего не делая, если ходит собирает какой-то лут то просто для вида. Разве будет плохо если дать НПС часть возможностей, которые имеет игрок? Конечно полностью наделить NPC качествами игрока невозможно, но дать ему процентов 30% возможностей игрока необходимо. То есть немного расширить поведение NPC из Ultima 7. Помимо обычного распорядка (втстать идти, на работу, делать на работе предметы из других предметов и складывать их, ходить в церковь) НПС должен уметь иногда выкинуть что-нибудь этакое. К примеру сходить прогуляться город за вещами и стать свидетелем явления демона, шабаша, или просто взять купить книгу в лавке по некромантии и своими неумелыми действиями вызвать локальное бедствие. Конечно шанс что к НПС попадет такая книга ничтожно мал (а если он крестьянин, а не купец или священник, по почти нулевой), и может и не произойти за всю игру. И таких событий должно быть около тысячи (придумать тысячу событий не так уж трудно). О свидетельстве событий со стороны NPC чуть ниже.
Помимо роста самих НПС, в «живом мире» поселения так же должны жить. Вспомним игру жизнь. Где в поведение клетки зависело от состояния соседних клеток. Это можно спроецировать и на игровой мир. В местности где нет кузницы, её должны построить, причем сам процесс постройки должен занимать время. В районе крупных торговых центров просто обязано появится логово бандитов. Ну кузницу то не долго строить, а вот если во всей округи церкви нету то стройка будет очень долгой. И это то же событие, в котором надо дать возможность игроку поучаствовать ( Не хочу быть я Рыцарем, стану ка я вольным каменщиком ). Конечно, каждое здание должно иметь приоритет (никто не будет одновременно строить и кабак, и монастырь… хотя монахи были желанными гостями в борделях). Конечно здания должны иногда и разрушаться (пожары, плохой фундамент и т.д.). Появившийся между двумя большими городами постоялый двор может перерасти в городок, а затем уже и просто в город.
Но простого развития мира по законам СимСити вряд ли будет достаточно. Нужны события. Как явные – вроде между-усобных войн князей, нашествия норманов или монголов, восстаниям скелетов о которых трубят все глашатаи и пишут газеты (некоторые газеты выходят с 17 века).
Нужны и события о которых не каждый узнает. Я рассмотрю самый первый пришедший в голову случай. Обычное ритуальное убийство (как в начале Ультима 7). Произошедший случай знают только в самом поселении. Пусть причиной явления стал рандомно появившийся в игре демон (или колдун живущий недалеко который этого демона призвал, либо во время бури сломалась статуя в которую он был заточен, или копали копали и раскопали – причина не важна их может быть множество). В Малом Ключе Соломона описано около 70 демонов. Пусть в игре будет подобное описание каждого демона и признаки его появления. Пусть тот о котором идет речь будет выдуманный демон Х – чье появление сопровождается 1) следами огромной птицы 2) запахом миндаля 3) грозой 4) у жертвы вырвана печень и сердце 5) массовая гибель лесных голубей до пришествия 6)… и так далее. Главное событие конечно отложится в памяти NPC, но остальные могу и забыться или быть вообще не замеченными. Конечно возникает вопрос а игрок то тут причем. Вот тут то самое интересное, что игрок может вообще не узнать о событии как таковом. С чего бы это вообще игрок должен узнать, что в какой-то деревне, какое-то убийство. Тут на помощь и приходит распорядок НПС которые, кто на рынок ездит и там рассказывает о странном случае, либо купец проезжал через эту деревню и узнал что есть такое происшествие. И игроку – о чудо может повезти услышать новость и помчаться выяснять – в чем же дело. Вот тут может и начаться погоня за демоном как одно из незаметных скрытых событий, которые не всякий заметит. К тому же это занятие может оказаться бесполезным ибо NPC почти все факты позабыли и трудно будет выяснить, что за демон это был конкретно и где он появится вновь. Конечно у всего должен быть свой порядок. Демон может появляться допустим полнолуние и можно будет более подробно выяснить благодаря книгам, где его искать дальше и т.д.
И таких событий должно быть множество, но шанс их появления быть очень маленьким. Конечно что-то где-то в мире случается, и пусть герой гоняется за призраками.
Может в этом столетии как следует из манускрипта который рандомно хранится в отдаленном монастыре, что Камелот появится в месте А в год У и день Х. Или пришельцы приземлятся в глухой деревушке, дабы одолжить пару экземпляров для опытов (пусть шанс на токе уж невероятное событие будет настолько мал, что игрок у которого оно случится будет считаться троллем;) ) Либо где то у черта на рогах есть портал в долину фей. Или в горах живет один из последних драконов. Главное для таких событий – это отказ от принципа «Ну кто-то обязательно, что-то видел и теперь все НПС знают». На мой взгляд – событие если оно случается и не было поблизости НПС, то никто о нем и не узнает. Да и даже если видел НПС не каждый разболтает о нём всем подряд, чтобы новость дошла до ближайших таверн и там её смог услышать герой.
Так же возможно генерировать ложные события (НПС уверяет, что видел кого-то в лесу большого страшного, но на самом деле он просто мухоморов поел). Тут всё просто – с чего это все вдруг решили, что каждый квест должен быть выполняемым? Ну почему? Какой то умник может попросить нас завалить лешего который портит в лесу дороги, но может и не быть никакого лешего. Почему если НПС дает задачу достать филосовский камень – таковой обязательно должен присутствовать в игре? Должны быть расклады при которых может и быть в игре филосовский камень, а может и не сгенерироваться. Может лет через 10 в игре, какой-то прокачавшийся алхимик его и откроет. Но такого может и не произойти. Герою пора разучиться верить каждому простолюдину и помогать всем.
Конечно возникают вопросы – Будет ли интересно в это играть? Сколько нужно случайных таких событий запрограммировать? И какие права и полномочия следует дать НПС, чтобы они жили, а не были болванчиками для дачи квестов\экспы и т.д.?
Просто качать скиллы в игре ради самой прокачки, вряд ли очень интересно (кроме ММО). А я пишу про сингл (хотя многие мысли могут подойти и для ММО). Какой же тут интерес?
Разумеется большинство игроков хочет душевной истории, непохожей на те что были до этого (Ну сколько можно уже бороться с нашествиями демонов, восстаниями некромантов и нападениями пришельцев). «Ага сдаешься! Значит сценарий нужен?!». Я попробую на этот вопрос ответить двояко (сперва своим обычным голосом, а затем застегнув ширинку потуже).
Возможно отказ от превосходного сценария, с сохранением интереса задача невыполнимая. Но задать в мире рандомную последовательность микросценарных связанных событий, не уступающих среднепаршивому сценарию – вполне по силам. При создании таких событий пригодятся обычные законы из жизни. Тот кто богат – хочет стать ещё богаче. Кто у власти хочет – при ней остаться. Несправедливо лишенный престола – его вернуть. И т.п. То есть допустим в игре есть некий властный барон – сгенерировавшийся таким образом, что он стремиться захватить побольше земель. И он начинает у себя строительство бараков – превращением крестьян в солдат, или накоплением капитала (увеличивая плату за вход\выход из города, налоги) получает возможность нанять армию другую дикарей с севера. И по заложеной в нём механике он постепенно идет к своей цели. Разумеется соседи алчного барона пытаются ему противостоять, но у того армия сильнее и он начинает завоевывать земли соседей (попутно разрушая часть строений). Вот и получился сам по себе сценарий. В который герой может вмешаться во первых – на любой из сторон конфликта. Может вообще не лезть. Может влезть в начальной фазе (что-то этот барон повышает налоги да строит бараки и стрельбища – узнал один из соседей, найму ка я какого нибудь оборванца чтобы сжег их). Проще говоря – пусть НПС воюют между собой, или даже живут в мире – события всегда происходят потому что каждый НПС идет к своей цели. Булочник напечь и продать побольше булок – проапгрейдить себе дом. Алхимик – создавать всякие зелья, открыть чего-нибудь этакое (хоть примитивную пороховую бомбу изобрести). Купец обмануть\убить конкурента. То есть почти у каждого НПС должна быть цель (или отсутствие таковой – не у всех же в жизни цель есть). Ведь в 14 веке простой крестьянин смог пройти по лестнице до лорда-канцлера (дважды избирался на эту должность и основал колледж). Конечно изредка у некоторых персонажей цель должна меняться (возможно очень редко и у очень не многих).
НПС должны так же уметь накапливать информацию. Бывалый менестрель НПС может рассказать о чем-то странном, что произошло в другом конце карты, откуда он пришел. При этом память должна быть выборочная. Он может запомнить о том, что бандиты разграбили деревню, но не помнить какую именно («это было где-то на северо западе… постой может на западной границе?»).
Какое же количество событий должно сделать игру разнообразной? И как часто они должны происходить? С одной стороны реалистичные события должны происходить часто (нанятые наемники не хотят возвращаться домой, а остаются грабить сами знаете что), а иные раз в несколько игр. И если редчайшие события не обязательно создавать в большом количестве, то повседневные должны изобиловать разнообразием. Тут важно создать модель когда будут генерироваться элементы, которые в сумме дадут сами события. В качестве примера возьмем колоду игральных карт. Сами по себе они дают множество вариантов расклада 8*10^67.
Но пока это не покерная комбинация – они просто карты. И когда у игры выпадает 2 пик и 2 треф, или Валет черв и Валет буб – то это пара. Так же и у нас в игровой модели должны быть прописаны готовые комбинации для происхождения событий в игровом мире. Только у нас несколько колод. Колода НПС где масти это сословия, а старшинство карты ранг в сословии. О есть у нас получится сословия 1) духовенство, от 2ки – это послушник до Туза это Папа Римский(или Архипеископ). 2) знать от придворного до короля, 3) торговцы от ремесленника до главы гильдии, 4) крестьяне от простого до старосты, 5) бродяги – от нищего до менестреля. И т.д. В другой колоде находятся предметы. В третьей колоде находятся местоположение. И далее.
Таким образом можно будет представить обычное событие как выпадение нужной комбинации в нашем покере на кучу разных колод. И все наши события лишь выпадение комбинаций из собственный таблицы, а игровой процесс – просто перетасовка карт. То есть на пустынной дороге выпало – купец без охраны + бандит + пустынная местность = ограбление. Это конечно сильно упрощенный вариант.
Не знаю стоит ли продолжать…
Krstn
Keltik_2001@mail.ru