После выход киберпанка и гта 5 с которой его все сравнивают, стало понятно, что даже такие гиганты гейдева не в состоянии создать живые города. Такие, чтобы было интересно по ним передвигаться, а npc были бы наделены хоть какой-то душей и сутью.
Как это делается сейчас: в игре есть ключевые заскриптованные персонажы, а все остальные, это болванки генерирующиеся вокруг героя и так же бесследно исчезающие когда героя проходит мимо них не оглядываясь. Понятно, что этот вариант был выбран не из-за хорошей жизни, ресурсы ограничены и все такое, но время идет и пора двигаться дальше.
Мои тезисы просты: 1. Производительность ПК однажды достигнет такого уровня, что можно будет расчитывать +- жизнь города. Речь не о ближайших 2-5 года, если что. Даже если на это потребуется 100 лет, все равно, этот день настанет 2. Кто-то должен начать двигаться в эту сторону уже сегодня
По поводу ОП-пиков: Графы - это простейший способ описать маршруты движения в городе и перемещения по ним НПС Принцип неопределенности - тут уже сложнее. В первом приближении, я вижу решение проблемы расчета таким:
В самое первое мгновение старта мира мы получаем среднестатистическое что-то, где ничего не известно о конкретных личностях, но мы знаем, что кто-то учится, кто-то работает и вот это вот все. Например, мы появились в квартире типовой пятиэтажки. И в идеале мы будем иметь возможность выйти в подъезд и постучаться в дверь каждой квартиры. Как только мы в нее стучимся или просто видим ее, схлапывается функция и для этой квартиры генерируется ее конкретное население. Например, это семья из двух взрослых и один из них - рнн. Стучимся в квартиру, а мамки нет дома, поэтому нам открывает сына-сыч. И если мы зайдем в квартиру, то можно будет подождать и дождаться когда его мать придет с работы Очевидно, что реалистичной реакции на какие-то конкретные действия можно от них не ожидать, но как минимум движение из точки А в точку Б можно реализовать
Ещё один аутист, думающий что надроченные алгоритмы вдруг станут интереснее вручную написанного и сделанного контента, и что кому-то ещё кроме него будет интересно ходить по домам и смотреть как болванчики ходят туда сюда
>>714327 (OP) Для нормального кодинга графов нужно знать дискретку. Сам я в ней плаваю но какой нибудь матанон вполне может тебе накидать нормальную тему.
>>714327 (OP) Знаешь что? Создавай проект на гитхабе и давай делай фремворк для всего этого на плюсах или крестах. В идеале что бы на выходе была длл или со чтот бы можно было её подключить. Назовем гд комьюнити фреймворк "навуходоносор"
>>714350 >Для нормального кодинга графов нужно знать дискретку Могу ошибаться, но достаточно знать алгоритмы, которые уже и так все запрограммированы и оптимизированы
>>714356 Ну например что бы обойти граф попав в каждый узел лишь раз или минимальное количество раз обходя по связям нужно знать формулу. Которую я кстати забыл. Не думаю что такое уже закожено.Такие мелочи потом костью в горле встают когда ты пишешь обходы, изменения эелементов или что то такое.
>>714358 Прекрасно. Создавай проект, доску на трелло и можешь еще в юмл нарисовать прототип. Юмл помогает структурировать мысли. Да и в картинках воспринимать что то новое проще.
>>714359 Так смысл графа как раз в том, чтобы избежать тех ситуаций, когда надо обходить весь граф, иначе бы он не выигрывал у какого-нибудь массива или связанного списка
>>714361 Ну для самого короткого пути от а до б с минимальным количеством прыжков тоже нужна формула вроде. Иначе как раз полным обходом дело и закончится. Ну еще можно рекурсивно ходить пока не придешь.
>>714362 Еще нет окончательного варианта того, как это должно выглядеть. Для начала все распишу на бумаге. Максимум сейчас - это какие-то мини эксперименты, на основании которых можно будет сформировать понимание
>>714331 >Как только мы в нее стучимся или просто видим ее, схлапывается функция и для этой квартиры генерируется ее конкретное население С квантовой физикой это не имеет никакой связи, это издроченный в программировании паттерн "lazy initialization"
>>714372 Как вариант. Еще я пробовал вики движок с мермейдом- штукой для генерации из текста схем. Но забросил. В чем то было удобнее чем писать текстом в файлик или рисовать схемы руками.
>>714412 Ленивая инициализация - это паттерн в программировании. Коллапс волновой функции - это физический феномен. Чтобы утверждать, что это связанные вещи, или, тем паче, что одно - частный случай другого, нужно обладать некислой шизой, ну или быть школотроном, как ты. У меня к тебе встречный вопрос, а почему ты стыдишься того факта, что ты шкальник? Тут полборды или такие же юные, или по ментальному развитию недалеко от тебя ушли.
Аноны, раз такая бадяга пошла, а не посоветуете книг с чего начинать изучение ИИ? Желательно с чего-нибудь простого и не привязанного к конкретному движку. Алсо, желательно еще на плюсах или на каком-нибудь псевдокоде.
>>714424 >Физический феномен Нет, лол. Это математический прием, а далее:
Before collapse, the wave function may be any square-integrable function. This function is expressible as a linear combination of the eigenstates of any observable. Observables represent classical dynamical variables, and when one is measured by a classical observer, the wave function is projected onto a random eigenstate of that observable. The observer simultaneously measures the classical value of that observable to be the eigenvalue of the final state
Грубо говоря, мы (наблюдатель) измеряем волновую функцию жителей квартиры, когда стучимся в нее
>>714436 Да. При обходе графа или при поиске кратчайшего пути можно расчитать сколько итераций нужно что бы не перебирать все целиком. Если есть количество граней или известные свойства то по формуле считается. В графах же и циклы бывают и вложенные циклы.
>>714430 > Грубо говоря, мы (наблюдатель) измеряем волновую функцию жителей квартиры, когда стучимся в нее Это не "грубо говоря", это профанация. Макрообъекты не могут существовать в суперпозиции, это призван показать, например, мысленный эксперимент с котом Шредингера, сводящий образ мыслей, подобный твоим, к абсурду. Электрон может находиться в суперпозиции положительного и отрицательного спина, потому что это квантовый объект. Кот и дядя Вася из квартиры - макрообъекты, они не могут одновременно быть живыми и мертвыми, существующими и несуществующими. Твой энтузиазм я поощряю, но матчасть надо тоже подтягивать.
>>714450 Вообщето уже доказали что волна и частица сосуществуют. Бред про суперпозицию - математическая абстракция не более. https://youtu.be/WIyTZDHuarQ
>>714450 ОФФ НАУКА: Достоверно ничего не известно о применимости принципа суперпозиции (как и квантовой механики вообще) к макроскопическим системам.
ЧЕЛ С ДВАЧА: Макрообъекты не могут одновременно быть живыми и мертвыми, существующими и несуществующими
Впрочем, ты все еще рассуждаешь в контексте физики, когда как речь идет о самом принципе суперпозиции и применении его в гейдеве.
>одновременно быть живыми и мертвыми А никто и не говорит, что они одновременно живые и не живые, мы всего лишь утверждаем, что в квартире кто-то живет с вероятностью в 75% и никто не живет с вероятностью в 25%. Это не значит, что там одновременно кто-то живет и не живет. Там будет что-то одно, но только тогда, когда волновая функция схлопнется
>>714346 > как решить конкретную проблему мертвых городов в играх Не делать игры-кинцо про пустые города с болванчиками. Я вот смотрю стрим по киберпунку и дошёл до неуклюжей, постыдной сцены интима между главным героем и сюжетной тяночкой. Блять, до сих пор испанский стыд, блять. Блять.
Игры надо делать, а не симуляцию подката к пизде. Тьфу, блять.
>>714349 > Всю малину палить не буду Охоспаде! Кодзима в треде, лол. Тему он палить не будет. Ты даже 1% тех наработок, что есть у ААА-студий не сможешь повторить, не говоря уже о том, чтобы превозмочь. Любой GOAP при правильной настройке (и зашкаливающем трудолюбии в написании сотен томов диалогов) даст пососать твоей секретной малине с аутистографами. Без обид, анон, ничего личного, просто факты.
Я бы в качестве отправной точки брал космических рейнджеров. Там космос создает ощущение населенности, всюду снуют различные корабли, кто-то занимается торговлей, кто-то грабит корованы, кто-то воюет с доминаторами. Можно в глобальном поиске найти местоположение любого из них, прилететь и найти его. А может его кто-то собъет за это время или он сядет в тюрьму.
>>714488 Зря ты так. Цели разные. Маркетинг решает. Из 200 гигабайт игры максимум 1 мегабайт кода. Остальное звуки шейдеры текстуры модельки анимации. Вот куда идут бюджеты и человекочасы. Никто не старается прыгнуть выше головы и выдать сомнительный геймплей с риском оказаться недопонятым и без подотчетного результата. Картинку и модельку сразу видно Бабло потратилось получился обьект. А вот живой город непонятно назуя нужен и сколько стоит. Если когда то ааа и сделают то живой город будет целиком геймплеем вообще без всего остального.
Вот ты говнодела кодзиму вспомнил. А ведь в стрендинге ты ничего не делал кроме ходьбы и лайков. Геймплейно игра полный провал а играли в нее изза катсцен и говноедства уровня консолей.
>>714583 Ну и долбоёб, если уверен. Сначала напиши функцию "паниковать и дать по газам" лучше, чем в ГТА5 (это на самом деле возможно, только ты ведь кукаретик ёбаный и не сделаешь нихуя), посмотри, сколько времени займёт её написание и дебаг с составлением хороших тестбедов, а потом кукарекай.
>>714661 Ну не траль, давай ты тут сам объяснишь. Если честно, я просто не осилю сейчас изучать то, что ты там скинул. Нет, у меня на самом деле претензия в другом: подавляющее количество кода сегодня пишется в парадигме структурного программирования, а это всего три структурных блока (пикрил). И то, что ты сейчас принес, это всего лишь еще одна абстракция над этими блоками, не более. Если ты хочешь сказать, что "правильный" ИИ не может быть построен на if, то это будет звучать как: "ребята, я ничего не понимаю в программировании, но осуждаю"
>>714666 Там написано про стейтмашины. До середины норм а потом пошло гуляние в наследовании и полиморфизме по моему лишнее. Лишняя сложность там где можно без нее.
>>714667 >Там написано про стейтмашины Ну это я по заголовку понял. Но чем if не угодил? Дополнительные абстракции это круто, но только там, где они действительно нужны
>>714669 Бывает иногда полезно несколько булевых переменныйх обьединить в один енум типа enum Enum:int { a=1<<1, b=1<<2 } Что бы потом проверять один стейт вместо кучи ветвлений иф.
>>714671 > a=1<<1, > b=1<<2 Зачем ты задаёшь константы таким образом? Битовым сдвигом, если я правильно понял. Не впервой вижу. мимо ньюфаг но хочу понять
>>714679 В первом случае получается ...0010 во втором ...0100. Тоесть два булева значения упакованы в оду переменную. Можно их двоично складывать и тогда получится ...0110 например что бы одновременно определить бег и плавание типа ты и плаваешь и ускоряешься. Одновременно.
>>714691 >А что не так? Все так, но всему свое место. С бинарной логикой все ок, но если тебе надо описать два состояние или даже три, она не нужна. Во главу угла я предлагаю ставить читаемость и поддерживаемость кода, так как именно в этом случае ты сможешь его в будущем доработать так, как тебе это нужно. А если ты начнешь применять стейт машины и бинарную логику там, где этой самой логики на 1-2 if, из этого ничего хорошего не получится
>>714327 (OP) Да нахуй это не нужно, зачем эти огромные города, куча квестов, персонажей вот это все, ведь они все по прежнему сводятся к сними шкуру с 10 волков и доставь письмо, только в огромных масштабах. Какое тут развитие? Ну ходишь, ездишь на тачке, слушаешь диалоги, стреляешь в тупых врагов, прокачиваешь хуйню, нечего не поменялось.
>>714695 У меня хобби ммо писать. Без байтоебства тут никак. Мне больших трудов стоило что бы для 300 клиентов мой сервак мог отдавать дату 60 раз в секунду. Но этого оказалось мало. Теперь я скриплю мозгами как бы эту дату уменьшить что бы не засорять 100 мегабитный канал.
>>714699 Ну а что думаешь в стейтмашинах не нужно байтоебствовать? Вот будет у тебя хотя бы 500 жителей города и тут окажется что они съедают весь проц и весят 2 гига. Вот тогда тебе придется скрипеть мозгами что бы было быстрее и меньше.
>>714700 >Ну а что думаешь Premature optimization is the root of all evil. Думаю, что инструменты и средства должны выбираться исходя из конкретной задачи
>>714703 Алсо у опа цель живой город. Это например 1000 жителей. Все они должны не только отрисовываться но и принимать решения. У меня вот 1000 чаров без ии и без инвентаря весят 8 мегабайт на диске и около 100 мегабайт в памяти.
>>714708 Первична задача, все же, а архитектура должна позволить легко доработать решение под хранение состояния хоть с учетом байтоебства, хоть без. Именно в этом суть архитектуры паттернов, а не в использовании конкретного решения
>>714711 Так никогда не достичь совершенства. В диздоке написано(гдето) что 1000 игроков значит 1000. В крайнем случае занижу количество апдейтов до 20 на игрока, но с количеством даты все равно нужно что то делать.
>>714712 Алсо я уже все перепробовал. Все что было в справке мсдн. Сделал все асинхронным. Игрался с тредами. Все равно не получается на моем проце выжать больше. А ведь как то работают хпц системы что гигами дату отдают миллионам пользователей... Пожалейте меня.
>>714716 Я здесь. Извини, друг, сейчас НГ на носу, я пока просто отдыхаю. Могу репозиторий запилить на днях, но ничего путного там не будет какое-то время
>>714696 Нужно чтобы в каждое строение можно было войти. Вот в любое входишь и там кваритры, бары, нпс живут там. Вот тупо каждое, если это огромный небоскреб то там должно быть 1000 помещений, в каждое можно зайти или какая нибудь хижина на окраине.
>>714685 Спасибо, теперь я допёр. Это удобный способ задавать сразу нужный регистр. А вот я ещё видел твои посты, где такими же шифтами производится сравнение входных данных с имеющимся набором битовых флагов. Тоже пока не могу понять логику. Можешь на пальцах объяснить?
И ещё вопрос, если мне нужны не битовые флаги, а многобитовые? Это возможно организовать? Например, если стейтмашина состоит из наборов стейтов, каждый из которых занимает, скажем по 4 бита, и может содержать в себе, как несложно вычислить по 15 стейтов. Как это организовать? С заданием понятно, я беру нужный стейт и сдвигаю его на нужное количество регистров, например a=12<<4 я правильно понимаю, что это даст нам паттерн 1100 сдвинутый на 4, что значит 11000000? Как потом мне парсить такой инт? разбивать на слова по 4 регистра и вычислять паттерны по маске в каждом? Какие есть удобные операторы для этого?
>>714748 > приблизит к ее решению Тут на ютубе один ютубер буквально вчера высказал интересную мысль: Когда игра создаёт атмосферу открытого мира, не претендуя на реалистичность, мозг автоматически принимает этот расклад и не докапывается к болванчикам, что они болванчики. И напротив, если игра понтуется, что у неё крутой ИИ с полной реалистичностью, мозг наоборот начинает искать косяки. В пример приводились две игры. В качестве понтовой игры, кичащейся своими болванчиками - обла (ЧСХ не скайрим, а именно обла), где всем болванчикам тщательно сгенерировали имена, ГОАП-распорядки-дня, простенькие диалоги, рандомные на 6-8 строк, в качестве скромной игры - ведьмак 3, где болванчики с общими именами типа "крестьянин1" и одним диалогом из 1 строки.
>>714757 Что бы узнавать какие булевы там активны нужно делать примерно так. state.running & test==state.running где стейт это сам энум а тест это экземпляр с актуальными данными.
Что бы сравнивать многобитовое используется та же конструкция. В результате её выполнения все единицы которые есть и там и там сравниваются с шаблоном. То есть
...0011 0011 & ...0110 0001 это будет ...0010 0001 если твой стейт и есть ... 0010 0001 то сравнивание с ним будет истинно. Так же ты можешь сравнивать не с одним стейтом а с несколькими опять же через булевы операции.
Я делал так - оборачивал все это конструкцией public bool test(state a, state b) { return a&b==b; } а потом через любимые всеми ифы.
>>714806 Мне важно было понять, как запихнуть в одну инт-переменную несколько многобитовых "сиквенсов", каждый из которых был бы субсостоянием общего состояния, чтобы в одной переменной можно было комбинировать "ходьба_на_кортах", "ходьба_с_мечом" и т.п. и эффективно различать такие сорта состояний, и независимо изменять одно субсостояние, не трогая остальные (или трогая, но только согласно игровой логике). До этого я городил низкопроизводительный костыльный массив. Теперь-то я сделаю круче.
>>714808 Только не забудь сделать битаррай что бы дебажить. Типа что бы видеть какие единички и нули в инте или что у тебя там будет. А потом когда как надо заработает закомментишь.
>>714811 Мне в любом случае придётся городить визуализацию. Для совмещения с другими частями кода. Ты прям в энуме битовые сдвиги задаёшь, а я хочу попробовать задавать их в сеттерах, типа: SetState(int State, int Shift) а внутри { mySyperState = mySuperState & (State << Shift)}
>>714812 Алсо я бы сделал иначе всетаки. С енумами по коду очевидно какие где стейты. А так не очень. Неделя пройдет и забудешь. В крайнем случае сделай энум для стейтов так enum state { running=1, walking=2, something =3 }
А потом уже
SetState(int State, state S) а внутри { mySyperState = mySuperState & (State << (int)S}
Однако все равно странная конструкция получится. Я бы так не стал.
>>714820 Ну вот, значит я ещё не до конца понял. Покажу мою идею бинарно:
0100 0001 0011 0100
В каждый сиквенс из 4х регистров предполагается обращаться независимо. И доставать оттуда независимое число, от 0000 до 1111 (15). То есть, в данном примере мы можем задать отдельный энум до 15-ти последовательных констант на отдельный субстейт. Если надо больше - мы увеличиваем сиквенс. Главное, чтобы все они влезли в 64х битный инт (насколько я знаю это максимум, что завезли на сегодняшний день, но если я ошибаюсь, то можно и в 128-битный влезть, если есть, и если прям такая сложная машина, на практике такая сложность редко встречается) Далее в игровой логике можно будет задать паттерны соответствующие тому или иному набору субсостояний, описываемые этим 32битным числом. И в едином свиче их все чекать и роутить.
Например, 0011 0000 - это скажем, состояние выставленного оружия, а 0100 - это состояние ходьбы, следовательно паттерн ходьбы с выставленным оружием - 0011 0100. А скажем, состояние пребывания на скользком полу - это 0001 0000 0000, значит, чтобы определить, что персонаж на скользком полу, движется с выставленной пухой, нам понадобится вычислить, соответствует ли общее состояние паттерну (маске) 0001 0011 0100. И последний сиквенс 0100 0000 0000 0000 у нас допустим, означает что перс идёт пешком, а не на каком-либо транспорте, проверка аналогичная.
>>714826 Ну в принципе да. Но я довольно глупый и большие штуки в голове хранить не умею. Поэтому я всегда делю задачи так что бы в любом состоянии сознания суметь прочесть код и понять что происходит.
Ты прав что можно упаковать в лонг 64 бита про все на свете. Я вот в инт упаковал 32 различных ячейки инвентаря. Он у меня такой. Например бутылки не должны принимать ничего кроме жибкости, порошка и газа. Дрова в бутылку ты не положишь. Или например мешки для денег принимают только монеты.
Но воротить 64 бита это слишком. Если на твою анимацию что то влияет это не всегда стоит упаковывать так.
Не знаю короче. Рад что ты разобрался с системой но по моему ты слегка усложняешь себе задачу.
>>714759 >Когда игра создаёт атмосферу открытого мира, не претендуя на реалистичность, мозг автоматически принимает этот расклад и не докапывается к болванчикам, что они болванчики Ну во-первых: это больше похоже на обычную проекцию, когда человек свое очень важное мнение выдает за какой-то общепринятый факт. Ну не может быть такого, что у всех людей будет именно так же работать мозг. С ним может быть это так и есть, но конкретно у меня очень большие претензии к сегодняшним играм Во-вторых: все течет и все изменяется. Не может быть такого (я надеюсь), что даже в ближайшем будущем игры будут на том же уровне, что и сегодня. Ну представь, ты попадаешь на 20-30 лет вперед, а там ГТА 12 с еще более реалистичной графикой и еще большей картой, но во всем остальном - это тот же ГТА 5 со всеми его дубовыми НПС. Меня даже дрож берет от такой перспективы. Надеюсь, каждый отдельный аспект игровой механики будет развиваться во времени
>>714906 >>714903 энкаунтеры потому и работают лучше, чем квесты, мир кажется живым но зачем, когда кал про 10 шкур волков жрут основные два рынка - азия и сшп? их приучили за 20 лет. у японцев дрочба одного и того же - это прокачка мэджикарпа, им нормально, но традиции типа шикоукенкецу сглаживают эффект от дрочильней, и японская дрочильня всегда отличима от любой другой страны, да и игры ли это? в англосфере есть термин GEMU и он отдичается от видеогейм
>>714327 (OP) Лолд блядь Чисто технически уже все это реализуемо было давно, тут мощность компов непричем. Можно делать степени симуляции, вокруг персонажа в 200м - максимально точно, далее - раз в секунду.
Алсо >>714488 двачую гоап, гуглите мамины говноделы, все уже придумано до вашего рождения
запости сюда статью one city block rpg yakuza 0 пока самое близкое к описываемому самосбороигры сосут именно поэтому: хуй ты даже майнкрафтоподобный гигахрущсгенеришь
>>714327 (OP) > Производительность ПК однажды достигнет такого уровня, что можно будет расчитывать +- жизнь города Пчел, дело не в производительности. Она уже давно достигнута. Просто кибербанк обосрался ввиду того что что бы сделать интересный город придется нехило поработать над ним. Но додики думают что если закидать пшеков шекелями, то из этого что то обязано выйти, а если нет - значит это невозможно. Производительность ПК, лол. Не смеши мои тапки, анон. >>714360 > Прекрасно. Создавай проект, доску на трелло и можешь еще в юмл нарисовать прототип. Юмл помогает структурировать мысли. Да и в картинках воспринимать что то новое проще. Это даже не смешно. ЮМЛ мертв, и идеи с ним связанные. Его только в вузах и шарагах зачем-то еще вспоминают.
>>714327 (OP) дурик, это придумали еще в 2007. все неписи в свалкере могут взаимодействовать с другими неписями в риалтайме, даже когда игрок находится вне локации, эти события генерируют квесты, а также действия и реплики некоторых нпс. к примеру прибежали собаки на дикую территорию и сразу же генерируется квест на убийство собак. или ты освободил дикую территорию от наемников и после этого прибежал долг. дело в том,что это никому нахуй не уперлось.
>>747527 Поясни про "всех со всеми". Вот алкоголик Вася пришёл к другу, алкоголику Пете. Они выпили, побеседовали, подрались, выпили, помирились, уснули. Зачем остальным двум сотням жителей того же дома знать об этом событии и как-то на него реагировать? В лучшем случае источник шума заденет десяток ближайших соседей, но реагировать им на это не обязательно. Аналогично на улице, пока у магазина толпится очередь, человеку достаточно держать в поле зрения того, кто впереди, если он в очереди. А простой прохожий может вообще игнорировать очередь как объект, ведь он идёт по своим делам, а не в магазин.
Можно прикинуть, что какой-нибудь мэр города должен анализировать состояние каждого жителя, но, во-первых, если он и будет работать с анкетами жителей, то в них отображается фиксированная на какой-то период информация, а не актуальные данные последней секунды симуляции, а, во-вторых, мэр не должен управлять каждым жителем, он только анализирует статистику и раздаёт приказы подчинённым структурам. И в-третьих, прежде чем симулировать такие обширные структуры, было бы неплохо для начала сделать простых жителей, которые дома спят и развлекаются, в магазине закупаются продуктами, а на работе получают деньги для продуктов и развлечений. Это уже покрыло бы 99% жизни обычного города, оставшийся 1% происходит редко и малозаметен с позиции обычного жителя. А уж для игры этот процент реализовывать вообще не нужно.
>>714349 >теория которая оперирует 5 понятиями Слишком высокоуровнево и слишком отдаёт пустой философией. Если такое реализовывать на практике, рано или поздно запутаешься что куда относить и либо забьёшь, либо начнёшь упрощать.
>уникальной человеческой эмоции отвращения Ничего уникального в ней нет. Отвращение есть и у животных. Говно, например, отвратительно высшим животным, даже если им приходится его натурально жрать (чтобы очистить место обитания от отходов детёнышей). В целом любые резкие запахи могут вызывать отвращение у животного с хорошей обонятельной системой, т.к. выбиваются из привычной картины мира животного. Человеческое отвращение ничем от животного не отличается, просто человеческий мозг создаёт связи более высокого порядка, связывая с эмоцией отвращения вещи, которые непонятны другим животным.
>одни способы жизни и поведения – чистые и возвышенные, а другие – грязные, низменные, отталкивающие Если отбросить философскую шелуху, "способы жизни" могут вызывать отвращение только по ассоциациям. Ассоциируется с отвращением всё, что опасно для жизни. Контакт с говном, например, опасен заражением различными инфекциями, и поэтому отвращение к говну закодировано в наших и не только наших генах. А человек, убивающий других людей, вызывает отвращение потому, что убийство человека человеком опасно для ещё живых людей, следовательно его нужно избегать и всеми силами предотвращать, иначе ты сам можешь стать чьей-то жертвой. Конечно, чтобы построить логическую цепочку "человек убил человека, следовательно он может убить меня, следовательно он опасен" нужно обладать человеческим мозгом или чем-то подобным человеческому мозгу, однако к эмоции отвращения это не имеет никакого отношения.
Эмоции вообще не участвуют в мышлении, а только мешают, переключая организм в древние и зачастую неактуальные состояния, потому что формировались они задолго до развития этого нашего мышления и были необходимы для выживания без способности мыслить. Так что не надо делать эмоции фундаментом ИИ, нужно абстрагироваться от них.
>>747555 >>может вообще игнорировать очередь >может просто пройти сквозь очередь пьяниц и... Ты не понял. Прохожий игнорирует очередь в том смысле, что он не пытается изучить детали: кто с кем разговаривает, кто куда смотрит и т.д. Он просто обходит очередь стороной, как обычное препятствие. Его не интересует очередь, пока он идёт куда-то по своим делам.
Если, например, пьяница в очереди захочет пристать к этому прохожему, очевидно, прохожий обратит внимание на пьяницу, оценит его параметры и предпримет какое-либо решение относительно своих действий. Ему по-прежнему не обязательно изучать всю очередь, также как людям в очереди не обязательно наблюдать за конфликтом пьяницы и прохожего. Большинству людей вообще безразлично, что происходит с окружающими, пока к ним лично никто не пристаёт. "Меня это не касается" и всё, а часто и вообще без мыслей.
Если же прохожий не идёт куда-то, а вышел погулять с целью познакомиться, он может быстро оценить людей в очереди и пристать к кому-то конкретному, начав с ним диалог. Ему опять же не обязательно держать в фокусе внимания всех остальных людей в очереди и людям в очереди должно быть плевать на этого прохожего, он им не интересен, пока не мешает лично им.
>>747576 Видимо, он имел в виду экспоненциальный рост сложности, а точнее комбинаторный взрыв. Главное что суть понятна, а какими словами он неумело выразился не столь важно.
>>747577 Сложность линейная. Я не знаю, чуваки, вы когда на улицу выходите в магаз и каждый шажок делаете перед ним, вы со всеми льдьми в городе созваниваетесь? А они со всеми остальными? Или когда на митинге стоите (если стоите), тоже от всех стоящих людей высчитываете свою траекторию ходьбы? Я не знаю как тут может получиться придумать worst-case сценарий, потому-что это бред нахуй.
Нет, если макаку заставить помолится, она может и расшибет себе лоб и сделает все-ко-всем, и у нее будут комбинаторные взрывы и вообще что угодно, но нормальным людям то это нахуй не надо. Не разводите шизу, постыдитесь.
Прочитал тред целиком. Сотню постов настрочили на тему "как паковать булеаны в биты, шоб компактно хранилось". Теперь я понимаю чувства того геймдизайнера, который жаловался в ньюфаготреде что /gd/ суть фиал /pr/, те же попогромисты. Начинался тред с чего? С желания анона сделать игру с живым открытым миром, то есть симулятор жизни. Нет, нужно всё свести к обсуждению битов в памяти...
>>747626 Вот именно, вот об этом я и писал. Взаимодействия между ботами минимальны, они даже не знают о существовании друг друга пока лично не встретятся.
Но вообще, прежде чем думать о сложности симуляции целого города, квартала или дома, ящитаю, нужно хотя бы одного бота симулировать, чтобы он мог заниматься повседневной деятельностью, реагировать на окружающую обстановку и её изменения, действия игрока и т.д. Добавить второго такого бота и наладить между ними возможность коммуникации. Будут ли проблемы с производительностью на сотни таких ботов - вопрос не срочный, всегда можно докинуть процессоров или урезать симуляцию до одной маленькой деревни. Речь-то идёт о живом мире, а не городе на миллион жителей.
Кстати, а что на счёт симс? Я помню, их хвалили за подробную симуляцию жизни персонажей, да и разработчики признавались что симуляция жизни была главной целью разработки симсов. Не нравится жта из-за "тупых болванчиков" - идите играть с симсами, а жта не про интерактивных кукол которым нужно жрать и срать.
Хотя я бы хотел сделать жта с ботами уровня симсов. Да, это потому что я сыч и с людьми не хочу контактировать.
>>747638 https://www.popularmechanics.com/culture/gaming/a10698/inside-the-mind-of-the-sims-4-16906802/ > So, when making every decision, a Sim considers all possible actions, analyzes their outcomes, references the utility curve, and selects the best one. However, these actions are somewhat randomized by design so the AI doesn't start to feel predictable. > In The Sims 4, developers have improved the AI's efficiency by creating an autonomy hierarchy. "Instead of considering everything in the entire world every time a Sim is deciding what to do, we first evaluate all of the commodities and figure out what sorts of things are most important to the Sim," Ingebretson says. "That lets us eliminate from consideration a large amount of possibilities." This means Sims become faster and more efficient at making decisions and can multitask rather than following a strict "first this, then that" script. Крч как я понял, у сима есть какие-то возможности и исходя из его потребностей, вычисляется топ возможностей и сим начинает по ним работать. Наверное каждая возможность имеет какую-то длюннющую формулу от персонажа (включая условия). Как я понял нет каких-то долгосрочных целей а-ля goap, все на уровне амёбы, пусть и сложной. Интересно что есть мультитаскинг, кстати. Хотя я в симсов никогда не играл, поэтому не вкурсе как там что работает.
> Будут ли проблемы с производительностью на сотни таких ботов - вопрос не срочный, всегда можно докинуть процессоров или урезать симуляцию до одной маленькой деревни. Речь-то идёт о живом мире, а не городе на миллион жителей. Я думаю, что на сотни - это вообще раз плюнуть. Конечно зависит от того насколько крутых хочешь ботов, но все равно. Еще не обязательно каждый тик обрабатываеть всех, можно просто просчитывать только часть популяции за момент времени. Или если игрок может наблюдать только одну часть локации за раз, то и думать нечего, это старый трюк. Оптимизаций куча.
>>747523 Не совсем согласен, что это нахуй никому не уперлось. Даже в свалкере могли бы это сделать на уровне, но они зачем-то обдолбились и начали отпрявлять неписей на выполнение квестов игрока. Идею реально развили только в клир скае, с фракциями которые пиздят друг друга. Но особо там и правдо это нахуй не надо. Но в киберпанке бы точно зашло. Сука, просто видеть живой город, с людьми которые не очевидно-деревянные додики. Ну просто типа следишь за челом, а он идет пьет кофе, потом идет в толкан, потом расплачивается на кассе, пиздует домой. Но пшеки решили жидко обосраться со своим police.spawn("behind") или как там было, и когда оборачиваешься и старые прохожие исчезают и появляются новые. ААА. Позор блеать.
>>747694 А если N = 1000, то тоже все всех должны оценивать за раз? Охуенно. Братан, у того что ты говоришь есть лимит, который вписывается в линейную константу. Лимит того что человек может воспринять за раз. И для людей (или мы нахуй киборгов моделируем уже?) этот лимит довольно низкий и от кол-ва населения вокруг него не зависит. ИРЛ ты тоже за одну единицу времени не оцениваешь всех прохожих идущих тебе на встречу, насколько ты их там уважаешь, ты оцениваешь одного либо небольшими группами.
>>714327 (OP) Главный вопрос: зачем? Геймеры покупают картинку, а не симуляцию. Разработка такой симуляции так же очень сложа и ведёт к проблемам с балансом, историей и прочим. Игры с симуляциями такого рода надо искать в индиках, приличную часть можно сделать хоть сейчас.
>>751848 >>751848 Это именно что модель "психологии и психотерапии" которую психологи и психотерапевты и то и другое - суть цыгане и мошенники впаривали лохам, во времена расцвета психотерапии в США.
Достаточно просто попробовать написать простенький сюжет, руководствуясь этой моделью, чтобы понять примитивность этой модели. Зато нервическим домохозяйкам очень хоходит. Жертва-преследователь-спаситель. Для женских романов разве что пригодится.
>>751917 Я реально пытался использовать эту схему для написания сценария.
Но то ли слова "агрессор" "жертва" "спаситель" сами по себе лишком сильные и настраивают на определённый лад, либо схема сама по себе придумана для увлечённых эмоциями дамочек, либо и то и другое но выходит из этого именно такая женская "драма ради драмы".
Посмотрите на саму постановку сцены. Тут обязательно есть жертва. И тут отключён нейтралитет. Либо жертву спасают, либо травят. И выхода нет.
>>751903 > Это именно что модель "психологии и психотерапии" которую психологи и психотерапевты и то и другое - суть цыгане и мошенники впаривали лохам, во времена расцвета психотерапии в США. ага, и как видно, впаривают до сих пор. лох таки не мамонт и таки не вымер. как вся эта тупистика дожила до 21 века вообще не понятно.
>>714327 (OP) Задачу нужно решать аппаратно. Множество параллельно работающих процессоров уровня STM/AVR. Множество объектов (педестрианы, здания, авто). Отображаем одно множество на другое. На один проц придется, как правило N игровых объектов. Поскольку, размер такого компа и энергопотребление будут сильными, все это дело помещается в сервере аналога интернет-провайдера и за вход в игру ты платишь абонентскую плату. Это все можно сделать, но для этого нужны деньги, исследования и т.п.
>>770063 Ну ты пориджа совсем разъебал я то хотел хотябы Обливион 2006 года упомянуть, где помимо всего тобой описанного были курьезные случаи, когда баг в расписании графини заставлял ее ебашить пешком в другой город каждое утро, где ее убивали в лесу грязекрабы с медведями (без всякого присутствия игрока)
>>714327 (OP) Тупа Симс. Тут проблема не в мощностях, мощностей давно хватает, тут проблема в необходимости, которой просто нет. Никому это нахуй не нужно. У тебя ирл сотни многоэтажек вокруг с такой вот "жизнью города". Они тебе интересны? И никому они не интересны. Интересны истории, для придумывания которых нужен талант.
>>771151 >У тебя ирл сотни многоэтажек вокруг с такой вот "жизнью города". Они тебе интересны? >И никому они не интересны. А там ничего и не происходит в этих многоэтажках. Мы ж в эмуляции. Люди скрываются из твоего поля зрения и растворяются за дверью подъезда, который и не подъезд вовсе, пока тебе в голову не придет его посетить. Меня тоже не существует, есть только этот комментарий, который ты прочитаешь, а иных комментариев не существует, чтобы ресурсы не тратить, ты же их не прочитаешь. Нет вообще никакой возможности доказать, что у "вон того дерева на холме" есть другая отрисованная сторона, пока её никто не видит.
>>714327 (OP) >Мои тезисы просты: >1. Производительность ПК однажды достигнет такого уровня, что можно будет расчитывать +- жизнь города. Речь не о ближайших 2-5 года, если что. Даже если на это потребуется 100 лет, все равно, этот день настанет >2. Кто-то должен начать двигаться в эту сторону уже сегодня > >Я начинаю движение в этом ИТТ. Погнали!
В GTA 4 всё это нормально реализовано. В Hove beach - русские, в shottler - жиды, на star junction - офисные педы, в alderny - байкеры. Что не так? Это норм развитие. Как раз и пресеты сделали и подгружают их если попадаешь в район.
>>771151 >Никому это не нужно. Нормисам может и не нужно. А я вот хикка, за ручку с тян не держался, вся жизнь прошла мимо меня и продолжает проходить, пока я годами не выхожу за пределы квартиры. С какой стати ты решаешь за меня, что мне не нужно симулировать тян, чтобы ходить с ней в её виртуальном мире в парк или на пляж, играть вдвоём в разные мини-игры, считать звёзды и встречать рассветы? И один ли я с таким желанием?
inb4 >делай Не получается.
>истории, для придумывания которых А не нужно ничего придумывать. Полностью симулированный город суть песочница, а в песочнице истории возникают сами по себе, остаётся лишь искать их и следить за ними или участвовать. Жители взаимодействуют друг с другом, дают друг другу задачи, торгуются, встречаются, женятся и заводят детей, и т.д. Наблюдая за обсуждением разных игр, я обнаружил, что многим людям нравится обнаруживать такие генеративные истории, возникающие лишь благодаря компьютерной симуляции, а не прописанным сценариям. Сценарист всё равно не сможет придумать всего того, что может возникнуть в симуляции, его мозг слишком ограничен опытом.
>>714327 (OP) В Cities Skyline население занимается жизнью, пусть и очень примитивной (дом-работа). Да даже Simcity 2000 по-моему у каждого человека тоже были свои занятия.
>>782159 >Купи себе ВР Меня не интересует ВР, мне нужна симуляция жизни/ИИ. >няшь там тянку Какую, лол? Я хочу свою создать, копаться у неё в мозгах.
>эта не та задача, которая обсуждается А какая тогда обсуждается-то, лол? Живой город - это не просто болванчики, которые двигаются от точки "дом" до точки "работа" и обратно, а полная симуляция взаимоотношений людей, как между неигровыми персонажами, так и между игроком и этими персонажами. Т.е. в идеале игрок должен мочь подружиться и завести романтические отношения с любым персонажем города, если будет правильно себя вести.
Вот в GTA SA и GTA IV были романтические отношения, а в GTA IV и GTA V - дружеские, но всё это заскриптовано, ограниченно и доступно лишь с несколькими специальными персонажами. Тем не менее, это создавало ощущение, что город живёт своей жизнью, что персонажи чем-то своим занимаются, выделяют тебе своё время, хотят отдохнуть или повеселиться, изменяют своё отношение к тебе в соответствии с твоими поступками. Да, все остальные жители города - призраки, возникающие за спиной и исчезающие за углом, но даже небольшая группа полностью скриптованных товарищей делает мир игры более живым.
Так что если и делать симуляцию города, без таких отношений никак не обойтись, и игрок должен мочь активно участвовать в них. Короче, полноценный подробный симулятор города подразумевает включение симулятора свиданий как доступную ветку взаимодействий с персонажами, иначе это неполноценный симулятор города про бесполых болванчиков, движущихся по скриптованным маршрутам от дома до работы и обратно. Зачем вам неполноценный симулятор?
>>782231 >проблема ИИ - он не понимает че происходит Даже самый примитивный ИИ понимает в меру полноты своей картины мира, которая зависит от сенсоров/датчиков. Если ИИ имеет возможность рейкастами сканировать пространство перед собой, он поймёт, когда его путь преградит непроходимое препятствие, а если у него таких рейкастов нет - будет долбиться лбом об стену, которую игрок видит, а он - нет. Так что проблема в том, чтобы снабдить ИИ всем необходимым, тогда он и будет "понимать, что происходит" в рамках своего мира.
>поиске пути заметно, если его обгородить машинами, он будет просто стоять Тут проблема системы поиска пути, которая не учитывает подвижные объекты. Если бы бот лучами сканировал пространство перед собой и умел перепрыгивать препятствия, такой проблемы бы не было, но это сложнее делать, чем обычный поиск пути по вейпойнтам или по клеткам.
>у него нет более глобавльного видения картины, типа он опаздывает на работу В играх типа ГТА у пешеходов вообще никакой работы нет, они никуда не опаздывают, они просто движутся по рельсовым маршрутам и зачастую даже не заходят в дома, а просто ходят по кругу вокруг нескольких кварталов. В играх типа Симс персонаж может впадать в панику, если не сможет найти путь до нужного ему места, но что может сделать сим против всемогущего игрока, который закрыл сима в коробке из стен без окон и дверей? Ничего, если не давать возможность ботам ломать препятствия.
>должен впасть в берсерк и начать крошить всех вокруг, нечего терять У людей разные характеры. Кто-то взбесился и начнёт всё ломать, кто-то попытается позвать на помощь, а кто-то просто сядет на пол и будет плакать из-за того, что не может выбраться из этой ситуации. Т.к. мы говорим о полноценном симуляторе города с людьми, должны быть разные характеры у разных персонажей, а не полный город неуравновешенных психов. Более того, персонаж должен всегда соответствовать своему характеру, а не выбирать стратегию рандомно, люди крайне редко меняют сложившийся характер.
>>714327 (OP) >Такие, чтобы было интересно по ним передвигаться Это скорее вопрос геометрии и декораций, а не NPC.
>npc были бы наделены хоть какой-то душей и сутью Я понимаю, ОПа давно нет с нами, но дайте кто-нибудь определение "души и сути" в контексте NPC, а то я что ни придумаю - получаются >заскриптованные персонажы, которые хоть и могут принимать решения, но все решения прописаны заранее, в скриптах.
Можно сделать примитивную систему самообучения, по проблема любой такой системы в том, что её результат может оказаться "неправильным" с нашей точки зрения, хотя и оптимальным в математическом смысле. Скажем, жители города вокруг горы обнаружат, что переть через гору эффективнее, чем по дороге вокруг горы, и будут массово переть через эту гору, а на дороги вообще забьют. Или обнаружат какой-нибудь нетривиальный баг физического движка и научатся его эксплуатировать, чтобы добиться максимально эффективной жизни. Нельзя их за это ругать, мы бы тоже воспользовались багами своей Матрицы, если бы их нашли, но игроку вряд ли интересно наблюдать, как боты эксплойтят баги вместо него.
>>714327 (OP) > а все остальные, это болванки генерирующиеся вокруг героя и так же бесследно исчезающие когда героя проходит мимо них не оглядываясь. Понятно, что этот вариант был выбран не из-за хорошей жизни, ресурсы ограничены и все такое Недавние секс-скандалы в крупных студиях показали, почему конкретно так происходит. Ничего не мешает сегодня сделать так, чтобы генерируемый болванчик сохранялся в файле сохранения своим GOAP-планом и чтобы была вероятность встретить знакомых болванчиков в открытом мире. Ресурсов хватит. Однако, для этого нужно, чтобы девелопер подходил к вопросу с душой, а это невозможно, блять, если в офисе царит жесточайший кранч, хейт, доёбы. Лютая текучка кадров не позволяет никому сконцентрироваться на деталях. Геймдизайнерам поебать на такие мелочи, как детально воспроизводимые открытые миры. Им акционеры приказали ебашить по формуле из экономического отдела бизнес-модели шапок для отбива вложений.
И напоследок вот вам живой пример. Вот такие мудаки олицетворяют большинство в геймдев-продакшене. Вот этот хуй по вашему будет с душой корпеть над открытым миром? Врядли. >>782389 (OP)
>>782807 >Ничего не мешает сегодня сделать так, чтобы генерируемый болванчик сохранялся в файле сохранения своим GOAP-планом и чтобы была вероятность встретить знакомых болванчиков в открытом мире. Не мешает. Но смысла нет.
Вот смотри. Ты делаешь игру про преступника в большом городе, который гоняет на дорогих ворованных тачках, убивает всех, включая толпы копов и военных чисто в одиночку, в одиночку грабит банки и так далее. Ты прекрасно знаешь свою ЦА - твоя ЦА будет давить пешеходов не задумываясь, устраивать массовые расстрелы, погони, взрывы и тому подобное. Будут собирать толпу народа, закрывая их автомобилями, и затем всё это закидывать динамитом, чтобы посмотреть, как будут разлетаться рэгдолы и куски машин.
Теперь подумай: что будет, если все болванчики уникальны, следуют своим маршрутам, имеют сложное поведение, всегда сохраняются и не спавнятся рандомно? Да большинство игроков выпилит всё население города за первые полчаса игры и потом будет писать негативные отзывы на тему "город мёртвый, никого нет". Тебе оно надо? А игрокам это надо? Кому это вообще нужно, мёртвый город в первые полчаса игры из-за того, что игрок может безнаказанно убивать всех уникальных ботов, которые не респавнятся?
Если ты попытаешься сделать полноценную экономику, производство и тому подобное в виде полной симуляции, то вся симуляция очень быстро сломается, когда игрок поубивает большую часть ботов, а остальные не смогут ничего произвести/купить/продать. Город будет не совсем мёртвым, но и боты будут тупить или шляться без дела, потому что не могут найти себе задачу.
Короче, полная симуляция жителей имеет смысл только в игре, в которой игрок не имеет возможности или задачи свободно и массово убивать жителей. Вот в РПГ, где за любое преступление героя сажают в тюрьму или вообще делают геймовер, там симуляция будет работать, пока игрок не найдёт какую-нибудь уязвимость. А в игре по типу ГТА такое нормально не заработает, пока не будет полноценный ИИ, способный дать отпор игроку - но с таким сложным ИИ большинство игроков откажется играть, им хочется тупое мясо, чтобы гиперкомпенсировать свою ИРЛ немощность. Если игрока и босс на работе нагибает, и игроки в онлайн-играх, и даже ИИ в ГТА - вряд ли он согласится покупать эту самую ГТА.
>кранч, хейт, доёбы Это касается только легко заменяемых работников: программистов, художников, звуковиков и т.д. Геймдизайнер скорее всего один и работает совершенно без стресса - не ему ведь контент делать, он только придумывает задачи для всех остальных.
>>782938 >должны приезжать боты Я рассматривал такую идею. Проблема в том, что нарушается симуляция, это всё равно что спавнить мобов за спиной игрока. Какая разница, спавнится моб за спиной игрока или в самолёте, летящем в аэропорт города? Он так и так материализуется из ничего. Если мы рассматриваем полноценный симулятор города, он не может быстро и без последствий получать новых ботов взамен старых. Тем более если старые погибают от рук непобедимого серийного маньяка.
>они должны были понять Обычный бот сможет понять только то, что ты закодишь в него, а ты не сможешь закодить все возможные ситуации. Мало того, что у тебя сложная симуляция на сотни ботов, так ещё и игрок совершенно непредсказуем - даже в обычных играх игроки постоянно находят и эксплойтят кучи багов.
>начать адаптироваться Как ты это себе представляешь? Нейронные сети, генетические алгоритмы? Или жёстко прописанные рельсы от дизайнера? С рельсами уже выше описал - ты не сможешь прописать все возможные варианты адаптации, как не сможешь даже просто представить себе все возможные ситуации. Даже простейший процедурный генератор способен удивить своего создателя, а мы обсуждаем сложную симуляцию.
Генетические алгоритмы позволяют виртуальным существам адаптироваться к, наверное, любым возможным ситуациям, но чтобы ГА заработало, нужно много поколений - даже с простыми формами виртуальной жизни ГА требуются сотни, а то и тысячи поколений. ГА можно использовать для начальной инициализации жителей города, чтобы они были уникальными, но в процессе игры ГА в таком виде неприменим.
Как вариант, с помощью ГА можно вырабатывать стратегии поведения внутри каждого персонажа без его гибели, т.е. в одно поколение персонажа, но всё равно потребуются сотни и тысячи поколений стратегий поведения, чтобы получилось что-то юзабельное. Учитывая то, что ботов в городе должно быть много, а каждое поколение ГА подразумевает какие-то расчёты, предполагаю слишком сильную нагрузку на компьютер. Для пошаговой игры сойдёт, но не для экшен-игры уровня ГТА или любой современной РПГ.
Нейронные сети пока не могут адаптироваться на лету к сложным ситуациям. Т.е. да, они чему-то могут учиться, но это занимает уйму времени, требует уйму данных и памяти. Уже пытаются внедрять "нейрочипы" в качестве стандартных ускорителей (по аналогии с видеокартами), но до масс это дойдёт не скоро. К тому же, по-моему, с ними намного сложнее работать, чем с ГА. В принципе, можно объединить ГА и НС, т.е. вместо обучения НС, просто делать новую как потомка/мутанта старой, но недостатки всё те же, что у любых ГА.
ГОАП и другие специальные типы ИИ вообще не предполагают адаптации, т.е. будут работать только в изначальных условиях, к которым ты их подготовишь (возвращаемся к тому, что ты не сможешь учесть все возможные ситуации).
Если знаешь какие-то другие подходы - рассказывай, интересно. Я тоже хочу такой город с симуляцией жизни, но пока, можно сказать, в самом начале пути (очень затянувшемся начале).
>>783461 >Ведь если у тебя не симулируется весь мир, а только 1 город, то и так симуляция нечестная, какая разница? Одно дело симулировать какие-то глобальные события во внешнем мире, которые косвенно влияют на город (погода, войны, неурожай и т.д.), совсем другое - спавнить толпу новых ботов, которым ВНЕЗАПНО захотелось переехать в город, в котором орудует серийный убийца. Разве что это будут какие-нибудь безумцы, ищущие себе приключений, либо агенты спецслужб; все остальные постараются убраться из этого проклятого города подальше. Иначе получится эффект бесконечных жителей из ГТА: ты можешь уничтожать жителей в огромных количествах, но меньше их не становится, потому что всякий раз появляются новые, и эти новые совершенно не боятся находиться в одном городе с серийным маньяком, давящим всех подряд машиной.
>Игрок не должен быть непобедимым. >они могут применять изоляцию района, вплоть до установки непроходимых барьеров и групп зачистки. Ослабление игрока ниже возможностей ботов или усиление ботов выше возможностей игрока помешает игроку влиять на симуляцию, то есть быть её частью, это ломает погружение и лично мне не нравится в той же степени, что и обратная ситуация с более сильным относительно ботов игроком. В той же ГТА арест/убийство игрока при 1-2 звёздах розыска выглядит достаточно правдоподобно, но тот хаос, что творится на 5-6 звёздах просто бесит своей неадекватностью, граничащей с безумием. На игрока насылают БТР, танки, толпы военных и т.д. На одного человека! Ты когда-нибудь видел, чтобы против одного человека высылали танк, стреляющий из пушки прямо в городе, заодно вынося кучу мирного населения? Было бы намного лучше сделать перманентную смерть и позволить ботам-копам делать хэдшоты игроку, после чего игрок вынужден создавать нового персонажа и развиваться с нуля, не имея доступа ни к чему (на оружие нужна лицензия и деньги, которые нужно заработать, ведь даже на кражу сколь-либо значимой суммы нужны инструменты). Ну и тюрьма, разумеется, игрока не должны отпускать на свободу через 6 часов, поймав за массовое убийство; если игрок будет вынужден просидеть в тюрьме несколько игровых лет/десятков лет, город с его населением успеет восстановиться; алсо никто не запрещает сделать смертную казнь при условии перманентной смерти игрока. Что угодно лучше тупых болванчиков, которые едут на танках по городу и специально промахиваются мимо игрока.
>Я бы начал с чего-то типа минимального общества, из нескольких человек покрывающих нужные профессии. И эти скиллы могут быть у неписей даже в запасе неиспользуемыми. Грубо говоря как васян готовит мясо 1 раз летом на шашлыке, а в случае БП он стал бы штатным поваром. А при благополучной жизни они по пирамиде маслоу будут уже будут пользоваться другими скилами, например работой в офисе и программированием игр. Хорошая идея, но это всё равно подразумевает только заранее запрограммированный набор скиллов. Если игрок начнёт творить нечто, что боты не ожидают (Васян ожидает стать поваром в случае гибели штатного повара), они не смогут адаптироваться и адекватно на это реагировать. Скажем, игрок может спрятать всех коров в каком-нибудь труднодоступном месте, и Васян, пытаясь приготовить шашлык, будет тщетно пытаться достать хоть одну корову, вертясь вокруг этого места и не находя пути/способа. Окей, мы можем поставить условие "если не удалось достать %предмет% за %N% минут, пойти искать другой источник %ресурс%", но это опять же попытка захардкодить все возможные ситуации, которые мы не можем предусмотреть полностью в достаточно сложной симуляции.
Вообще, обсуждение началось с того, что ты утверждаешь, что у разработчиков нет подходящих условий для создания симуляции. Я же утверждаю, что они не делают симуляцию, потому что она не имеет смысла. Даже если возможно создать сложную симуляцию, которую игрок не может слишком просто сломать (т.е. не может случайно сломать и разозлиться из-за этого), на её создание уйдёт много ресурсов (человеко-часов в первую очередь), а прибыль с неё достаточно сомнительна в большинстве жанров - в той же ГТА от города не требуется симуляция жителей, воевать против копов, спецназа и военных достаточно весело, и на реалистичность всего происходящего целевой аудитории просто насрать, они купили эту игру чтобы устраивать хаос в городе, а не наблюдать за сложной симуляцией жизни. Т.е. многим игровым жанрам симуляция не только не нужна, но и будет мешать - как минимум тем, что игрок может её нечаянно сломать, неосознанно испортив себе игровой процесс, а разработчикам придётся вложить больше ресурсов в разработку игры, отсрачивая её выход на рынок.
>>783655 > Было бы намного лучше сделать перманентную смерть и позволить ботам-копам делать хэдшоты игроку Хммм... ГэТэАшные звёзды, являющиеся множителем урона игроку? Наверняка эта идея не нова и уже есть в куче игор. Осталось только найти анонов, которые в такое играли.
Какой же кринж вы тут развели... Все реализуется гораздо проще, если вам нужно прямо симулировать жизнь
Весь город должен быть размечен на зоны интереса - работа, учеба, дом, развлечения
Т.е. имеем жилой блок, вокруг него в ближайшей доступности - магазины, офисы, школ. Причем не во всех зонах все должно быть в шаговой доступности (объясню позже почему)
НПС генерируются с определенным паттерном поведения - если это личинка то в зависимости от времени суток ее можно будет обнаружить рядом со школой, в магазине, в кинотеатре, около дома Взрослая баба - дом, офис Работяга - любое место работы, дом
Таким образом конфиг поведения будет состоять из посещения точек интереса, где одна из точек будет удалена дальше остальных, тем самым НПС будут выбираться за пределы своего жилого района и создавать видимость движения. Подробности расписывать не буду, тут поймет и ребенок. В случайные дни часть точек посещения будет исключена из маршрута, чтобы придать поведению реалистичность. На месте этих точек нпс будет заниматься одним из нескольких видов активности : Кинотеатр - симуляция толпы на улице, очередь, вход в зал, просмотр Магазин - вход в здание, хождение между стеллажей, очередь на кассе
Что еще тут можно добавить? Да много чего на самом деле. Например привязка количества и состава НПС к конкретному дому или квартире - детей всегда меньше чем взрослых/в одной квартире не больше двух взрослых мужчин или женщин и т.п. ___________ Вишенкой на торте могут стать случайные ивенты либо ивенты создаваемые игроком.
>>784222 > все, что содержит в себе больше разнообразных деталей, интересно Проблема в том, что разнообразие деталей должно быть видно игроку. Всё описываемое ИТТ - игроку не видно. Ему на поверхности геймплея видны скучные, реалистичные обыватели, спешащие по своим делам. То ли дело - залихватский Скайрим Тодда "купи его ещё раз" Говарда! Болванчики разнообразные! Разнообразно мёртвые, механические игрушки! Всем своим видом и словами показывают, что стоят они тут исключительно для увеселения игрока. Двигаются по примитивным маршрутам, на которые всем в общем посрать.
>>784229 > он начал сворачивать не туда Не туда с точки зрения морроутёнка, которому наванговали светлое будущее. А с точки зрения окупаемости и коммерческого успеха - очень даже туда.
>>784128 >>сделать перманентную смерть и позволить ботам-копам делать хэдшоты игроку >Хммм... ГэТэАшные звёзды, являющиеся множителем урона игроку? Ват? Как это связано? Хэдшот коп может тебе сделать и на первом уровне розыска, если ты будешь размахивать перед ним волыной или стрельнешь в любом направлении. Ботам не нужен никакой "множитель урона", чтобы убить тебя. Криворукие боты в большинстве шутеров криворуки специально, чтобы поддаваться игроку, чтобы любой игрок мог у них выиграть. Но если ты делаешь симуляцию, то не должен делать ботов поддающимися, ты должен делать ботов такими, чтобы они действовали в своих интересах. А в интересах ботов - выжить, и чтобы выжить, им нужно убить или иным способом обезвредить опасный элемент (игрока или агрессивного бота).
>>784199 >если вам нужно прямо симулировать жизнь >В случайные дни часть точек посещения будет исключена из маршрута, чтобы придать поведению реалистичность. Ты обосрался. "Придать реалистичность случайными изменениями" не имеет ничего общего с симуляцией жизни. Имитация - да, но не симуляция. Симуляция действует по строгим правилам и не пытается создать иллюзию того, чего нет. Если боту не нужно менять маршрут для того, чтобы выжить (или жить счастливо) - он этого делать не будет.
>Подробности расписывать не буду, тут поймет и ребенок. Ловко выкрутился. Вейпойнты и точки интереса любой дурак знает и может реализовать. Ты самую интересную часть упустил - собственно симуляцию жизни.
>детей всегда меньше чем взрослых/в одной квартире не больше двух взрослых мужчин или женщин и т.п. В симуляции такие вещи должны возникать сами по себе, без контроля со стороны разработчика симуляции. Боты сами должны определить, как им выгоднее жить, и группироваться по квартирам в соответствии с этими выводами. Иначе это не симуляция, а всего лишь имитация жизни.
Сравни это с обычными модельками деревьев и фрактальными рисунками деревьев. Обычные модельки делает художник, изображая дерево так, как он хочет. Фрактальный рисунок описывается специальными математическими или логическими выражениями, из которых в процессе симуляции "вырастает" рисунок, похожий на реальное дерево. Реальные деревья в лесу никто не собирает из кусочков, они сами растут, по определённым правилам, имеющимся в их генетическом коде, а также благодаря определённым законам физики, которые в том числе повлияли на генетический код. В этом вся суть симуляции: она создаёт новую (виртуальную) реальность, повторяя базовые принципы (правила, формулы) нашей, а не имитирует нашу реальность копированием внешних проявлений. Имитаций полно в видеоиграх, а вот симуляций очень мало.
>>784206 >ЗАЧЕЕЕЕМ? Чтоб было. Потому что можем. Потому что хотим.
>>784216 >изменится игровой процесс Симуляторы - отдельный жанр, никак не связанный с обычными играми. Нет смысла смешивать симулятор с обычной игрой, нет смысла тащить любителя обычных игр в симулятор. У симуляторов своя аудитория, как и у любого жанра.
>сделал арканоид и получил прибыль Если тебя волнует только прибыль - или делать гиперказуалки на мобилки, тебя никто здесь не заставляет делать симулятор.
>>784223 >игроку не видно Если делаешь игру для тупых с двухзначным айкью - да, тебе не нужна симуляция жизни или вообще какая-либо симуляция.
>Вот что срубает бабла Иди руби бабло, что тебя сдерживает?
>>784547 >Игроку должны объясняться последствия каких-то поступков. Сам пусть догадывается. Достаточно объявить, что последствия есть, а дальше желающие будут искать их, если захотят.
>с позиции режиссера фильма, который рассказывает зрителю историю от лица разных участников. Думаю, процедурно осуществить это слишком сложно. Намного сложнее, чем просто сделать симуляцию. Да и кинцо-мыльцо всё же отдельный от симуляций жанр, со своей аудиторией, которая симуляции никогда не ждала и не просила.
>>784842 >В игре тебе могут показать детально проценты попадания в любую цель, слоу-мо пробитие танчиков, затопление кораблей по отсекам. Бессмысленная мишура. Ну, ладно, с танчиками более-менее полезно, т.к. так становится понятнее, куда именно нужно стрелять. Но в остальном бесполезная хрень, которая надоест очень быстро. Вот в Макс Пейн было слоумо, камера следила за пулей, всё такое. Это было в диковинку и походило на кино. Ну и где это всё теперь? В каких-нибудь играх такое есть? Нет нигде. А циферки урона в РПГ вообще доисторический маразм, ненавижу их, бесят, никогда не обращаю на них внимание.
>С точки зрения психулогии симсы в голову приходят, там значками их хотелки показывают. В Симсах значки нужны, потому что без значков непонятно будет, чего персонаж хочет или собирается сделать. Потому что персонажи не умеют говорить и не имеют мимики или её сложно разглядеть. К тому же Симс - это кукольный домик, симсы не полностью автономны, за ними нужно постоянно следить и ухаживать. Как лолька (ЦА игры) поймёт, что её куколке нужно? По пиктограммам, конечно. А если бы было непонятно, чего хотят симсы, они бы дохли как хомяки - быстро и глупо.
В этом треде мы обсуждаем автономных ботов, которые живут сами по себе, без участия игрока. Игрок может жить среди них от первого лица, даже не зная, чем занимаются боты в его отсутствие. Конечно, можно сделать пиктограммы для обозначения эмоций, но нет смысла демонстрировать все мысли бота игроку - это, как минимум, нарушит погружение. Да и играть в детектива не получится, если тебе не нужно ничего выяснять, не нужно изучать ботов через наблюдение за их действиями и т.д. Намного интереснее проследить за ботом и узнать, что он идёт в магазин, чем увидеть у проходящего мимо бота над головой пиктограмму "хочу есть - иду в магазин".
>>785035 >Только пока нет поатомной симуляции, это все равно нечестная симуляция Поатомная существует с прошлого века, абсолютно честная и даже демонстрирующая поведение, свойственное реальным бактериям. А реализация столь проста, что работает даже в браузере на телефоне: http://www.michurin.net/online-tools/life-game.html
>что плохого в дополнительных условиях Ты предлагал не "дополнительные условия", а просто игральный кубик кидать - какая цифра выпадет, то бот и будет делать. Это противоречит строгому выполнению правил системы/модели. Представь, что по ссылке выше клетки РАНДОМНО меняют своё состояние - что тогда будет? Белый шум тогда будет, а не симуляция.
>если так получается большая правдоподобность Правдоподобие - это >сходство с правдой, а использование рандома там, где игрок/наблюдатель ожидает некие строгие правила - это однозначная ложь. Конечно, ГПСЧ тоже по правилам работает, но это совсем не те правила, которые ожидает игрок. Использование ГПСЧ оправдано только в тех случаях, когда тебе нужно по-быстрому имитировать сложное поведение. Вот боты в ГТА могут рандомно выбирать, куда им идти, потому что они в любом случае бесцельно блуждают. А боты в симуляции - не могут, потому что от этого их жизнь зависит, а жить им по определению хочется подольше. Если ты делаешь чатбота, который выбирает ответ на вопрос рандомно - ты пытаешься ввести пользователя в заблуждение, создавая ложное впечатление о том, что твой чатбот думает над вопросом. Реальное обдумывание вопроса ботом не может включать в себя случайные числа и его ответ всегда будет следовать из каких-то определённых, неслучайных причин.
>Так симулируется какое-то социальное поведение. Ну хорошо, нарисуй кружочки на фоне квадратиков: пусть квадратики будут неподвижны, а кружочки будут рандомно выбирать направление каждый тик таймера, смещаясь на одну позицию за раз. Потом опубликуй это с громкими надписями "правдоподобная симуляция какого-то социального поведения" и посмотри, что получится.
Вот, у меня есть webm с похожим поведением. Что ты видишь? Движущиеся кружочки? Движущиеся с разной скоростью? Какие-то шустрые, какие-то ленивые? А зачем и куда они двигаются, можешь предложить? Спойлер: они двигаются совершенно рандомно, выбирая новое направление после каждого шага. Их движение может казаться осмысленным, но на самом деле оно совершенно бессмысленно. Здесь нет никаких скрытых правил, кроме того, что у каждого кружочка своя фиксированная скорость - это единственная "психологическая" разница между кружочками, в остальном их поведение абсолютно одинаковое. Здесь ты был обманут рандомом, но ты не должен быть обманут настоящей симуляцией, в ней всё должно иметь смысл, даже если его сложно обнаружить.
>все равно непонятно что человек хочет или собирается сделать Так и должно быть. Сегодня боты в играх чрезвычайно предсказуемы без каких-либо специальных индикаторов. Цель любой симуляции - сложное поведение, которое нельзя так просто предсказать, но теоретически возможно (т.е. не рандом!).
>>785652 Полезный видос. Однако афтар не догнал самого главного в конце (ну или забайтил на комменты, лол). >Зачем всё это добавляли? Для задротов же, очевидно. Нормис пробежится по сюжету, а там и пивас закончится, и нормис заснёт, довольно урча. А задрот соберёт все допки, захватит все вышки. И попросит ещё.