Как стать автором
Обновить

Комментарии 43

Хотя у статьи и стоит тег "Мнение", получилось ну очень сумбурно, слишком свободный поток мыслей на очень общую тему, даже в предложенных подходах "Снизу вверх" и "Сверху вниз", с большим количеством расплывчатых допущений "может быть, может не быть", "требует сложности, но можно упростить", "можно взять, но можно и не взять". Есть интересные частные наблюдения, но не хватает более чёткой структуры, может, рассмотрения одной конкретной задачи или темы, без уходов в сторону, так как просто "живущий мир" — это крайне расплывчатое понятие. Или, тогда уж, можно сделать краткий обзор всех известных тем и подходов в этом большом понятии, но сейчас получилось ни то, ни сё, к сожалению.

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

Возьмём ваш пример из параграфа "Снизу вверх". Вы выбрали три "базовые потребности: здоровье, пища, размножение" — и далее далеко уходите с ними тремя. Но давайте не уходить: почему вы выбрали именно эти три? А как же, например, сон?

Отставим вообще пока ИИ и программирование, попробуем концептуально. Вы внедрили учёт здоровья (допустим, по какому-то его числовому показателю, "полоске"), пищи (аналогично, "полоска голода") и размножения. Существа в вашей игре ходят в магазин за бутылками здоровья, за хлебом для еды и друг к другу в гости размножаться. Значит ли это, что мир ожил? Или надо ещё что-то добавить? А в какой момент нам решить, когда остановиться?

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

Снова вопрос: в каком виде вы хотите это увидеть? Именно, чтобы в игре была возможность (как у вас, так и у NPC) стать преступником, попасться и пройтись с конвоем по улицам? Или же стать стражником, ловить преступников и водить их в конвое самому? А если есть полноценная правовая система — то сначала попасть в суд? Выступать свидетелем защиты?

И теперь решающий момент — давайте объединим эти примеры:

1) Насколько важно для возможности ловить преступников желание есть?

2) Насколько решающе желание размножаться для выступления в качестве свидетеля?

и т.д.

Безусловно, всё влияет на всё, как и в реальной жизни (которую мы пытаемся симулировать). Но вот вопрос, когда нам остановиться и сказать, что мир уже достаточно "живущий"?

Любой (ну вот я, например) всегда может прийти и сказать:

1) У стражника со стабильной зарплатой нет мотивации становиться преступником — это не реалистично, ведь в мире зарплату задерживают — давайте введём финансовую модель.

2) А где конвой берёт одежду — она же просто есть? Это не реалистично, давайте введём профессии швеи, инструменты для работы и производственную цепочку тканей.

3) А почему все ходят в одной одежде круглые сутки, она же пахнет? Это не реалистично, давайте введём механику потения, вони, мытья, стирки, чистящих средств, их влияния на окружающую среду, чтобы это влияло на здоровье, политику и возможность вступить в партию зелёных.

Вы в одном примере тоже попытались глубоко уйти в "сложные механики условного зачатия, взросления и далее по списку". Мне кажется, вы всё равно недостаточно сильно представляете, насколько глубока эта кроличья нора, потому что даже когда вы реализуете всё вышеперечисленное из своего текста и моего комментария, любой (ну вот я, например) может прийти и сказать:

"У вас учёные занимаются какой-то неживой условной ерундой. Это декорация, а не учёные. Давайте они будут самостоятельно смешивать все магические стихии и строить большой адронный коллайдер?"

и т.д. — но в статье про все эти достаточно интересные вопросы ничего нет, хотя тут много есть, чего обсудить даже концептуально, помимо способов имплементировать это в конкретной компьютерной игре.

Резюмируя, я бы посоветовал на будущее выбрать один из трёх подходов:

  • Начать имплементировать что-нибудь максимально простое "живущее", на уровне упомянутых игр математиков, может, чуть сложнее игры "Жизнь" — с клетками, питанием и т.п. И далее, так же мелкими шажками, это расширять. Об этом тоже можно будет написать статью, плюс самостоятельно напороться на упомянутые выше проблемы, чтобы лучше их "прочувствовать".

  • Или выбрать какое-то одно слабое место в большой игре (вот как тот же конвой упомянутый) и порассуждать / концептуально имплементировать его улучшение. Если сосредоточиться на одной задаче, например, водить/попасть в конвой, не распыляясь на еду/размножение/зарплату/одежду и т.п., то её вполне можно решить, возможно, даже мод настоящий написать. Вот так моды и пишут!

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

И вот тогда получится отличная статья. :-)

Не сочтите за рекламу, но что-то примерно такое делаю.

NPC могут и делают:

  • ищут залежи руды и добывают её;

  • складывают обжиговые печи и переплавляют руду в металл;

  • если не хватает дров разводят растения, чтобы потом получить из них дерево;

  • добывают материалы из поверженных противников;

  • изготовляют предметы;

  • строят стены и плавильни;

  • организовываются в поселения;

  • идут на голоса своих;

  • при торговле расчитывают цену на основании своего инвентаря и текущих потребностей;

  • ориентируются на точно такое же зрение, как у игроков, т.е. не имеют внутри себя встроенной карты мира.

https://titanplayers.itch.io/dwdung

Интересно. Подробностей бы про логику NPC - как реализовано. Типа "Нет дров у сообщества NPC - поселения" - тогда столько то NPC заняты выращиванием растений.

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

Само поведение НПС реализовано через некоторые эвристики + что-то вроде вероятностного конечного автомата.

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

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

Вот такие пирАГИ 😜

На мой взгляд тема поднята крайне интересная. Как и автор, задавался подобными размышлениями. Было бы реально здорово запилить полноценную "экосистему" экзистенциальной симуляции с балансировкой потребностей, поведенческой эволюцией и прочими занимательными плюшками ("а внутре у ней нейронка"). Пусть даже не сразу, а от меньшего к большему. Но в итоге для себя пришёл к двум тупикам, решения которых не вижу:

  1. Естественная социальная энтропия в такой системе неизбежно приведёт к определённому равновесному состоянию, и, как следствие, стагнации.

  2. Игроку нет места в этом мире. Какая роль может быть здесь у игрока, чтобы было интересно в этом всём участвовать? Когда нарратив создаёт историю, она вращается вокруг игрока и мы, временно забывая эту нарочитость, сами становимся её персонажем. Отсюда и геймерское удовольствие (в большей или меньшей степени даже от откровенно рельсовых сюжетов). А тут... Нечего делать, кроме как наблюдать, как "империи рождаются и умирают". Возможно я просто не поклонник симов, но выглядит крайне скучно. За океаном наблюдать интереснее :)

Первый, пожалуй, можно как-то компенсировать искусственными возмущениями, а второй - наверное слишком субъективный. Но они остановили размышления в этом направлении. Если у кого-то из вас есть мысли, как это можно разрешить, было бы интересно их услышать

Ну, в Космических Рейнджерах с этим как-то разобрались. И неписи вполне себе воевали, и чоловику было где потыкаться.

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

Симс упомянут очень кратко, а в нём это всё работает.

Персонажи умеют очень много что, взаимодействия многие и вполне гармоничные.

Моддеры наверно знают больше, но из очевидных вещей (из симс)

  1. Есть потребности. Еда-сон-общение и прочие. Отображаются явно. Работают для всех нпс (т.е. даже нпс хочет есть), но имеют разную важность, нпс у меня лично никогда не умирали с голода.

  2. Есть возможность удовлетворять потребности. Т.е. для еды - холодильник, готовка, заказ еды. Для сна - диван, кровать, пол. У возможности удовлетворить есть ещё и предпочтения - т.е. кто то любит блины, а кто-то пиццу. Спать на кровати приятнее и комфортнее.

  3. Есть свободная воля. Даже персонаж игрока, если его не контролировать, будет ходить на работу, заводить отношения, смотреть телик. Совсем zero rpg наверное не выйдет хорошей, но можно.

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

  5. В 3 симс довольно открытый мир. Это источник тормозов (потому что всё надо рассчитывать), но это как раз очень классная вещь для погружения в мир. Можно пройтись по городу и постучаться в двери в каждый жилой дом. Школьники днём в школе, потом могут быть дома. Соседи могут быть на работе, а могут быть дома. Вы можете следить за каждым из них, какой дорогой они возвращаются с работы например. Можно найти дом на отшибе и рассчитывать что никто случайно не придёт во время ограбления. А можно в центре города в парк заявиться и там появятся персонажи которые потенциально могли бы сами пойти в парк (игрок тут является "центром интереса", т.е. к нему по ощущениям мир проявляет интерес, что неплохо).

  6. В игре есть сплетни. Не совсем хорошая механика, но для социалки тоже круто - условно, если вы изменяете жене, то в какой то момент по городу пойдут слухи и жена может вас бросить. Как это работает - не вникал, но сама идея - здоровская. Информация распространяется даже без явного указания от игрока. Аналогично есть механика "знаменитостей". Если вы знамениты, персонажи будут на это реагировать, восторгаться вами, все дела. Проработка не очень глубокая, но есть.

Именно с точки зрения "мир живёт сам по себе" мне Симс нравится больше всего из того во что я играл. Умирают целые поколения персонажей, их дети имеют похожие черты (как визуальные так и невизуальные), у вас есть друзья и есть враги, отвлеклись на пару минут - персонаж напился и подрался с соседом. Ощущается намного лучше, чем в свитках, где действительно бандиты нападают на драконорожденного высокого уровня =)

У меня когда-то была идея создать ММОРПГ, в которой персонаж игрока (аватар) не исчезал бы после разлогина, а продолжал бы действовать в соответствие в заранее подкрученными весами.
Увы, задача весьма непростая и я так никогда её не решил. Может быть, в будущем, когда у меня будет много времени и мало работы, вернусь к её реализации.

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

Я тоже думал и даже пытался сделать браузерку, где игрок - по сути глава клана, а члены клана живут и качаются "сами по себе" пока игрок не взял их с собой в данж (и по силе могут и даже должны быть сильнее самого персонажа игрока). Что-то типа ММО вариант МантЭндБлейд. Такой вариант позволяет не так беспокоится об инвентаре и смерти. Тем более всегда можно дать вариант "вселится" в одного из последователей как в нового лидера.
Но там тоже много всяких "орг вопросов" возникает, особенно с балансом. Тяжело научить "болванчиков" и не перекачиваться и не умирать и так чтоб ещё и играть игрокам было интересно.

В Космических Рейнжерах на легких уровнях NPC могут даже сами игру выиграть, без участия игрока. :)

В двадцать лет я тоже вынашивал кучу очень интересных (как мне казалось) идей. Сейчас мне сорок, и ни одна из этих идей так и не была реализована. Зато я понял, почему:

  1. Идеи дёшевы. Очень наивно было полагать, что некая идея пришла ко мне в голову единственному во всём мире. Если чего-то нет — вряд ли это потому, что никто просто не додумался так сделать. Скорее всего для этого существуют другие причины. Понять их помогут референсы и анализ рынка.

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

  3. Если сейчас у меня нет времени и навыков для проработки идеи — они не появятся в будущем сами из ниоткуда. Ждать бессмысленно, скорее будет наоборот — окажется занято то время, которое есть сейчас. Время и навыки появятся, только если сам целенаправлено выстроил систему, ведущую к их появлению.

Отсюда имеем важность референсов — надо изучать аналогичные решения, которые уже есть. Узнавать про авторов, у которых получилось. Смотреть, как это произошло, и что для этого было нужно.

Почему-то в статье их упомянуто очень мало, хотя озвученная идея (живой мир) в том или ином приближении есть много где. Навскидку в голову приходят такие игры как:

  • Shadows of Doubt, огромный живой город, где игрок — просто один из его жителей

  • Mount & Blade: Warband, игрок — наёмник в живом мире фентезийного средневековья

  • Серия X, где игрок — пилот корабля в целой галактике, живущей по своим законам

  • Kenshi, где игрок странствует по постапокалиптической пустыне

  • Middle-earth: Shadow of Mordor, где игрока могут фармить НПЦ и повышать свой статус

  • Dwarf Fortress, где и мир, и все его жители, и даже история и мифы генерируются процедурно и существуют по своим законам. При этом есть режим, когда игрок представляет не колонию, а конкретного персонажа.

Dwarf Fortress вообще очень знаковый проект, давший начало целому жанру. Очень долго (лет 15) его разрабатывал фактически один человек. Именно разрабатывал, а не вынашивал идеи.

Вообще концепт "ИИ играет наравне с игроком" не такой уж редкий. В той же серии Civilization ИИ-игроки — это полноправные участники, играющие по тем же правилам. Стоит упоминания Songs Of Syx, где с одной стороны есть равноправные игроки-правители, а с другой каждый житель — это самостоятельно живущая сущность со своими интересами.

Вот примерный чеклист, по которому стоит пройтись в процессе проработки идеи:

  • Зачем? Какую проблему я пытаюсь решить?

  • Эта проблема есть только у меня, или у других людей тоже?

  • Как её решают другие люди?

  • Что я хочу предложить в качестве решения?

  • Как именно предлагаемый механизм ведёт к решению?

  • Как будет выглядеть минимально рабочая реализация?

  • Чего будет стоить такая реализация? Оценить сроки.

  • Не приведёт ли она к другим проблемам, которые перечеркнут полученную ценность?

  • Какие примеры уже есть? Привели ли они к решению? Если нет, то почему?

Так Дварф фортресс - это как раз про это. Особенно когда играешь в режиме приключенца, а не крепости.

Только у всех таких проектов есть большая беда - их мир сам по себе скучный и однотипный. Единственное что спасает ДФ или Римворд - это комичность абсурдных ситуаций - но не более того. После десятой колонии спасают от скуки только "челенджи" которые сам на себя накладываешь (если что я - большой фанат этих игр)

Проблема в том, что у модель поведения персонажей не может быть сложной - компьютер не "резиновый". Потому получается всегда что-то типа очередной вариации игры Жизнь. Но только сильно несбалансированной. В результате получаются три варианта:

  • персонажи просто тупо вымирают (ну либо тупо расходуют все ресурсы) - и приходится делать всякие "костыли" и "подпорки" (из серии "как-то Полпатин вернулся ..."), чтобы мир не был пустынью и/или не был монополизирован одной расой, например. Или просто персонажи застывают ввиду исчерпания любых возможных действий (все враги убиты, все ресурсы добыты, все склады заполнены)

  • персонажи "находят" устойчивые паттерны поведения (аналог всяких осциляторов из Жизни) - в результате получается те же циклы, только в профиль. Причём ещё однотипные и очень "хрупкие" - действия игрока легко могут привести к предыдущему сценарию.

  • начинается "расколбас" когда в одном месте пусто, в другом густо, а через некоторое время - наоборот (глобальные осцилляции). Казалось бы интересно - но на самом деле - нет, т.к. "внутри" каждая волна имеет очень низкое разнообразие. А смена "волн" происходит обычно довольно быстро и опять таки типично (орки вырезали эльфов -> люди вырезали орков-> эльфы вырезали людей: повторить так 10 раз)

Так что самые лучшие проекты, что я видел всегда стараются как то совмещать такую вот "свободную жизнь", скрипты и псевдослучайные "костыли", чтобы исправлять постоянно разбалансирующуюся систему (те же Симс так делают)

В качестве примера могу порекомендовать игру "Кенши" - там как раз очень хорошо это сделано. Мир с одной стороны живой, с другой мягко держится скриптами в задуманном разработчиками равновесии, но в тоже время и не то что бы рельсовый.

На досуге я продумал смысл "живущего мира" как геймдизайнер, и пришёл к заключению что это крайне нестабильная система.

1 - Игрок это бессмертная неутолимая машина разрушения. Ограничивать действие игрока, говоря ему - "можно делать лишь 5 действий в день", очень сильно раздражает. Но если не ставить палки в колёса, то игроку вполне по силам истребить местную фауну и наблюдать как в соседней деревне начинается голод и разруха. Как это балансить по геймдизайнерски я не понимаю.

2 - Контент конечен. Чем лучше графон тем меньше разнообразия получится сделать. Согласитесь что быть в живом фентези мире где есть только одно разумное существо, довольно скучно. А делать системы процедурной генерации балванчиков довольно трудоёмко. В этом плане DF всех переплюнул а, у тебя есть буква и огромное текстовое описание - фантазируй)

3 - Как задавать хоть какие-то цели игроку? Сделать функциональный ИИ который бы мог собирать информацию и передавать её другим болванчикам вполне можно. Но из-за их самостоятельности нет никаких гарантий что квест "узнать рецепт пирога" не обернётся трагедией где чисто случайно на наш болванчик умирает а игрок ничего не получает. Это сильно демотивирует, когда цель к которой ты идёшь недостижима. Учитывая рандом может быть такая ситуация когда будут находится игроки которым постоянно невезёт. И надо как-то это всё продумывать так, чтоб игрокам везло по чаще, а это математика, это сложно.

2 пункт ещё хуже. Есть пример No Mans Sky, где реализовали довольно сносную графику для "миллиардов" процедурных объектов, в итоге получив неисчислимые комбинации существ ради... ощущения пустоты и "плоскости" игрового мира. Ну да, на этой планете динозавры с 3 ногами, а на этой - с пятью, толку-то, если оно играется одинаково?

С удачей можно наборный рандом, либо генерализацию. Это когда мы случайность делаем не каждый раз 15 из 100, а делаем так что на 100 повторений гарантировано 15 будет удачных и если даже 85 подряд были не удачными - остальные 15 будут успехом. Восстанавливает «справедливость» в голове. А про генерализацию - если 5 раз подряд с рецептом пирога было плохо, то на шестой удачный награда как за 6 таких квестов. Возможно как-то дополнительно обыграно. И вот уже квесты про пирог ощущаются не 6 раз повторяющихся, а один большой на 6 попыток и ты в конце таки урвал за это достойный приз. При этом и генерализация и наборный рандом могут быть весьма процедурными. В конце концов даже если ресурсно не сходится и у нас совсем уж симулятор и награда тоже не из воздуха - можно найти этот воздух - опыта побольше отсыпать и прочее такое.

Проблема тут в том, что мы не можем ничего контролировать ибо это симуляция.

В итоге получается так, что поверх системы с "сильным ИИ" требуется некий "директор", который бы подкручивал вероятности в определённых сценариях. В такой игре вполне реально собирать большую числовую статистику по статам-действиям и можно создать такой алгоритм который бы подкручивал рандом/статы болванчикам в ту сторону, которая с меньшим шансом вергнет игрока в пучину безумия.

Условно, балванчику выставлено высокое значение характеристики "любопытство", но "директор" может видеть что корреляция между "смертность" и "любопытство" высокая и понизить болванчику стату, на время когда у игрока есть цель его найти.

Но это всё лишь добавит ещё одну ступеньку сложности без того сложной системе симуляции. Но да, это сильно спасёт и сделает такую игру даже играбельной. Но ёкарный бабай, как же много работы предстоит...

Так не убивайте персонажей автоматически. Т.е. если НПС убит игроком - окей. Но сам мир никогда пусть не убивает НПС, если это важно для системы\игры.

Основная проблема - любой игрок в игре по факту герой, тоесть нарушающий мир персонаж. Если все НПС - АИ, то они не будут действовать в угоду герою, будут вести себя еще скучнее и часто отсутвовать во ВСЕХ местах где их можно найти по квесту.

Ну к примеру, повезло с охотой охотнику, он взял 10 уровней за пару дней и переместился в локацию, где есть смысл вообще охотится с новым уровнем.

Для перебалансировки результатов миру будет нужен пантеон богов супер-АИ которые устраняют последствия работы "смертных". Собственно проще просто богами сделать всю сюжетную линию для "героя", чем исправлять повседневность.

часто отсутвовать во ВСЕХ местах где их можно найти по квесту

Тут нужен совсем другой подход к квестам, нежели фиксированный "подай-принеси". Встреченный НПС должен просить ровно то, чего ему не хватает для какой-то его задумки. Может он хочет построить материал для какой-то постройки. И если ты ему принесешь - он построит, например, доменную печь. И будет в этом поселении производство чего-то такого, что раньше не было. Т.е. у квестов далеко идущие последствия в будущем, естественным образом возникающие. Или ты принесёшь, а ему уже кто-то другой принёс или вообще этого НПС убили. Ну какой-нибудь другой попросит. Задания не должны быть фиксированными и выдаваться раз и навсегда.

сюжетную линию

Заданных сюжетных линий в таких системах тоже быть не должно. Сюжет должен возникать непосредственно в ходе игры.

Справедливости отмечу, что "правильные" системы стремятся к некой стабильности и диапазон параметров при которых мир бы приходил к этой стабильности может быть относительно большим. Можно как-то имперически посчитать, при каких параметрах система сходится к нужному "сюжету" и дело в шляпе. Делаем пресет "боги vs технологии" и кидаем кости.

Мне кажется, что при выводе логики поведения NPC на максимум, получится, что когда герой начнёт расти в скиллах, местный правитель может очень быстро заподозрить, что герой может и его свергнуть. Он быстренько соберёт армию, против которой невозможно будет выиграть даже ненулевому герою.

Даже если такая возможность для нейтралов будет лимитирована, например, моральными установками, то либо такую же операцию проделает антагонист игры, либо он начнёт всячески прятаться от героя, либо вообще капитулирует без боя. Можно, например, представить, что в шахматах одна из пешек после каждого взятия повышает уровень и может стать даже сильнее ферзя. Соперник просто признает поражение задолго до объявления мата.

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

Ни в статье ни в комментариях не упомянута серия RTS-игр Majesty с непрямым управлением (экономическим "принуждением"):

  1. Героям нельзя отдавать приказы напрямую;

  2. Игрок может предложить награду за атаку живого/неживого объекта или за разведку местности. Величина награды участвует в системе весов принятия решений героев;

  3. Герои тратят заработанное/награбленное в тавернах, рынках, кузницах, на тренировки;

  4. Налоги с построек собираются в казну мытарем...

Экономическая система всё-таки не замкнутая (деньги появляются из спавнящихся монстров, из сокровищ), но сам подход весьма интересен и перекликается с тем, о чём говорит автор.

Stronghold (Crusader) туда же. Там тоже непрямое управление крестьянами + налоги с них.

Статья сумбурная получилась, но тема интересная.

Я в свое время тоже размышлял на эту тему, и несколько элементов вывел для построения «живого» мира:

  • Управление миром через сеть нейронок

  • Цикличность. Буквально у всего. Круговорот воды, рождение, старение и смерть и прочее. Включая глобальные планетарные циклы. Даже если это не планета, все равно должно быть что-то цикличное. Потому что реальная жизнь тоже циклична.

  • Энтропия. Это основа для цикличности. Старение NPC, предметов. Вещи изнашиваются и ломаются. Дома разрушаются от ветхости, королевства разваливаются со временем и т.д. Даже горы со временем разрушаются и становятся менее высокими. Это глобальная штука.

  • Реактивность. На любые действия должна происходить реакция. Между живыми существами, так и в неживой природе.

  • Реалистичная физика. Не обязательно как в жизни, главное чтобы в нее можно было поверить, реалистичная.

  • Сеттинг, сформированный в результате «ускорения времени» от некого стартового состояния, что заложили разработчики. Мир должен пожить сам, до того как в него запустят игроков.

  • Мультиплеер, тут и так понятно.

Как этого достичь? Кажется нереальным. И я соглашусь. На текущем уровне пока еще это так. Но в остальном…

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

Их некоторую часть даже можно сделать игровыми богами, чтобы еще больше экшена добавить.

Энтропия это две нейронки: старение и случайность. Первая добавляет всем создаваемым объектам срок жизни, вторая - отправляет сигнал в другие нейронки, чтобы вносить элемент «случайности»

Общая физика может задаваться нейросетью типа sora от OpenAI. Как среда для работы прочих нейронок. Кстати, для этого ее и разрабатывают, а не для генерации реалистичных видосиков.

Подобная игра потребует мощности сотен тысяч, если не миллионов современных чипов от нвидиа и энергии объемом генерации с АЭС. Если не больше. В зависимости от количества игроков.

Но кто знает, прогресс очень быстро идет, может через 10-20 лет такие игры станут реальностью.

Обычно, иллюзия живости мира создается скриптами и сценариями

Все как в жизни по сути, просто скрипты сложнее, параметров больше. Начиная с базовых, пососать мамкину грудь, покушать, размножиться. И кончая приобретенным набором скриптов в зависимости от типа юнита. Стучать молотком по стенке или тыкать пальцами в клавиатуру с утра до вечера. Ехать в отпуск к морю раз год. Заниматься рандомным хобби из списка.

Так что нормальное решение, реалистичное. Чем проще общество, тем меньше набор скриптов требуется. Начать с каменного века и потом развивать добавляя скрипты.

В MMORPG так и есть, с разницей только в том, что вместо npc там живые игроки.

Есть книжки по геймдизайну виртуальных миров - про баланс, экономику и круговорот ресурсов в ней - чтобы мир мог существовать более-менее устойчиво. Большую часть подходов можно перенести в мир "умных" npc.

По моему опыту, игры с интересным поведением персонажей типа dwarf fortress или rimworld имеют очень схематичную графику и для добавления новой механики зачастую достаточно программиста - действие персонажа не требует анимаций или сложных проверок в 3д.

Рекомендую посмотреть игру Majesty, в которой это удалось. Интересно что игрок, как и в ДФ/Римворлдах не один из толпы, а некая сущность с непрямым управлением.

По поводу сверху-вниз и дороги. Все начинается не отсюда, а немного раньше. Что за игра? Какие игровые объекты, их свойства и методы. Насколько высоко стоит ползунок абстракции и как герои взаимодействуют с миром. Что они двигают, какие объекты.

Этот патруль может быть сам по себе объектом, может быть методом собравшихся в группу НПС, а может быть чем-то стихийным, что рождается далеко не каждый раз и почти случайно. Например, пара стражников которые пытаются догнать монстра, будет казаться что они выпроваживают его из города за край карты.

Определив поле игры и объекты, определите выборы, решения которые стоят перед персонажами. В готике это идти работать или идти жарить мясо на костре. Действий может быть много доступно, там какие-то характеристики и минимакс будет работать. Примерно как в Sims или Space colony.

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

Про распространение информации. Интересно с искажениями при передаче. Обычный лог, который видит вокруг себя персонаж передается с небольшим искажением (1 слово) дальше и может достичь игрока. Чем ближе мы к источнику информации - тем она точнее.

Про постановочность. Рекомендую посмотреть сайт tv tropes. Есть ожидаемые и применяемые клише в каждой истории. Лучше пытаться строить мир не от физиологических потребностей, а перешагнуть миллионы лет эволюции и идти от троповых элементов конкретных жанров. Зомбиапок - свои, классический английский закрытый детектив - свои. Драматургия. Драматизм. Важные решения, рычаги, роли и все такое.

Обидно за серию gta немного было, никто не упомянул) Играл с 1 части, тогда тоже казалось, город живет сам по-себе, я могу выполнять миссии - а могу как зритель, кататься и смотреть пейзажи...

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

Стать политиком - мэром, выбирающим путь развития города. Где строить новые дома, какие магазины закрыть - открыть, прокладка дорог = строительство вдоль них новой инфраструктуры npc-шниками.

Ну и криминальный путь для любителей "классики" - вплоть до главаря-босса, руководящего несколькими группами npc - банд, давать им задания: одна идет грабить банк, другая - вымогать деньги у владельца клуба, третья распределяется по району и следит за обстановкой - появлением конкурентов/полиции.

Можно стать летчиком и зарабатывать на этом. Можно врачом - не только водителем скорой, но лечащим людей, открыть свою клинику, сняв помещение, постепенно расширяться. Больше вылеченных = больше опыта = больше новых клиентов = новые клиники в других частях города, руководимые npc, которые делятся частью дохода.

Получается целый живой город, приделать мультиплеер, возможность общаться с живыми людьми - разговаривать на улице, звонить, оставлять сообщения - не оторваться, как 2-я жизнь может быть.

Second Life кстати, была, когда-то популярной игрой

Second Life, насколько я знаю, не позиционировался как игра. Это был проект вроде виртуального мира Meta. Т.е. 3D социальная сеть.

Ну, с одной стороны да, с другой - это такая же песочница как Симс (только без ботов) или Майнкрафт. Можно строить дома, строить (делать?) свои острова и т.п.

На самом деле, это очень интересная идея, и я хотел бы воплотить её в минималистичном стиле, например, текстовом или 2D.

**Кто желает помочь в этой задаче?**

Мне нужны все данные о реальном мире, вплоть до минимальных задач. Например: человек чистит зубы, сходил в туалет, дал взятку и так далее. Мне необходима вся информация, желательно подробно расписанная. Если у вас есть предложения, пишите в Telegram: [t.me/botorotss2](https://t.me/botorotss2).

Мир, скорее всего, будет в жанре средневекового RPG.

Возможно, я создам Telegram-канал с информацией о разработке. Проект будет полностью open source, с возможностью мультиплеера или полностью онлайн.

https://dtf.ru/gamedev/2078130-kak-sdelat-analog-radiant-aibgs-dlya-sozdaniya-zhivogo-mira
Сделать аналог Радиант АИ например проще чем кажется
Главное работать не с НПС -а с понятием "локации" и тогда все становится до предела простым

Идея классная и можно придумать разнообразные концепции по реализации в той или иной мере "живого мира". Но, по моему субъективному мнению, это как то не особо ложится на сюжетные игры. Во многих комментариях выше детально были описаны проблемы возникающие при такой реализации.

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

Интересно смотрелось бы создание квестов для игрока через желание или потребностей непесей в определенный момент. Предположим житель деревушки захотел свадьбу сыграть, но дел и так много, а на своих двоих всем приглашения не разнесешь. Вот и завязка для квеста ограниченного по времени самой свадьбой. Хотя из такой постановки тоже возникает несколько проблем: как игроку искать адресатов, если они мертвы, то как должен реагировать мир и "жених" В частности. Такие проблемы, как по мне, проще скинуть на ии, что будет модератором или богом мира. Скрипты могут привести в тупик ибо все ситуации не рассмотришь, а костылями решать... Сломается сам концепт живого мира

Если в игре будут диалоги, то может все разбиться о них:

  1. Если это будут заранее заготовленные варианты, то это сломает всё погружение от вариативности NPC. Как раз можно словить диссонанс, когда они бегают, прыгают, живут своей жизнью, а отвечают всегда однотипно.

  2. Если подключать какой-то GPT и его аналоги, то он все равно уплывает не туда и трудно все это настроить адекватно.

Возможно, есть смысл рассмотреть такой вариант, что для диалогов будет использован GPT условный, но он будет оперировать той информацией, которую мог конкретный непись получить живя в игровом мире (кто то рассказал, что-то увидел и т. д.) .

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

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

Актеры обладают многоуровневой системой целей, где на каждом уровне цель может вымещать текущую. Выбор идёт по максимальному приоритету. Достижение цели идёт через цепочки действий, которые наполняются для актера самой целью, так, если актер построил неудачный маршрут до рынка по памяти и пришел в тупик, то цепочка будет упредительно завершена, а цель создаст новую цепочку действий.

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

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

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

Звучит это очень интересно. Прототип бы ещё увидеть воочию — вообще было бы хорошо.

Есть ли какие-нибудь существующие аналоги подобным системам? Насколько я знаю, в рамках AGI подобные вещи в разных вариантах рассматривались, правда, применимо к решению практических задач.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории