[RPG] Другой мир внутри компьютера или создание жителей его.
| |
noname | Дата: Воскресенье, 19 Мая 2013, 23:46 | Сообщение # 21 |
заслуженный участник
Сейчас нет на сайте
| Цитата (eretik-games) я уже всё описал и всё друг с другом логически связал ты, образно выражаясь, описал дворцы, я же хочу докопаться до описания кирпичей.
нужно выстроить цепочку от информации к реакции. то есть- доступна боту какая-то информация. что из неё будет выделять бот, на что будет реагировать, как он будет превращать инфу в реакцию. не обязательно расписывать прям точный алгоритм, но мне кажется, что пока что тут вообще полные непонятки.
и ещё я начинаю понимать, что разнообразие информации, которое должен получать бот и разнообразие возможных его реакций, должно быть очень большим, чтобы получилось похоже на то, что вы расписываете.
вот например: Цитата (eretik-games) Допустим, убили короля... Эта весть пронеслась по всему игровому миру, от одного бота к другому, с какими то возможными искажениями или недосказами... то есть, помимо прочего, персонаж будет учитывать ещё и слухи. надо бы подумать, как персонаж будет обрабатывать слухи и в чём будет заключаться его реакция на такой слух.
но и без слухов- адекватная реакция на то, что происходит вокруг персонажа- это уже непросто.
и вот я хотел бы понять, как вообще это планируется делать.
все правила форумной игры Дуэль Программистов
|
|
| |
Ordan | Дата: Понедельник, 20 Мая 2013, 03:14 | Сообщение # 22 |
Главный зомби
Сейчас нет на сайте
| Цитата (eretik-games) Допустим, убили короля... Эта весть пронеслась по всему игровому миру, от одного бота к другому, с какими то возможными искажениями или недосказами... Можно сделать такую штуку как слухи и разделить на уровни к примеру глобадльные слухи "король умер" и локальные "свинопас переспал с конюхом" и можно ввести степень искажения 1) небольшая - в которой могут быть изменены небольшие детали "король умер в кровати" искажено на "король умер во время сэкса с молодой любовницей" 2) сереьзная - может поменять смысл на противоположный "свинопас переспал с конюхом" на "конюх изнасиловал свинопаса" 3) огромная - меняет слух до неузнаваемости "король умер" на "короля принесли в жертву злому богу что бы призвать армию зомби"
Думаю можно добавить еще пару степеней но я уже решил что в моей игре слухи я реализую)
Цитата (eretik-games) Допустим: при желательности в 39% - нам будет лень идти в магазин за мороженным. (мы совсем не хотим этого) при желательности в 61% - мы пойдём и купим мороженное. (мы очень хотим этого) при желательности от 40 до 60 - только тогда мы подключим рандом. (мы сомневаемся) Результат рандома будет пропущен через формулу: ((результат рандома - 40) * 5). И тут уже если меньше 50% то не идём покупать мороженное, если больше то идём покупать...
Не люблю проценты) Я по ролевой системе делаю проверки на волю(с различными бонусами или штрафами) если проверка прошла успешно то иду в магазин, если нет то на нет и суда нет
Цитата (noname) то есть, помимо прочего, персонаж будет учитывать ещё и слухи. надо бы подумать, как персонаж будет обрабатывать слухи и в чём будет заключаться его реакция на такой слух. Думаем одинакого) Цитата (noname) но и без слухов- адекватная реакция на то, что происходит вокруг персонажа- это уже непросто. и вот я хотел бы понять, как вообще это планируется делать. Я планирую сделать так: Для начала мои боты будут беседовать между собой, делясь информацией и просто удовлетворие потебности в общении. Каждому персонажу дам два контейнера(локальный и глобальный) для хранения информации (слухи тоже информация) В локальном хранятся лишь ссылки на слухи и информацию города где проживает персонаж В глобальном очивидно что слухи и информация глобального масштаба (Началась война, царь убит) Эта информация будет храниться определенное время(Дабы не переполнить массив но это надо тэстить если мощности позволят то лучше сделать процесс забывания, а мудрецы и просто умные будут реже забывать и помнить к примеру всю историю своего города и тп в общем получатся старейшины) При получении любой информации срабатывает процедура реакции к примеру узнав что началась война крестьянин может пойти в армию, а может начать эвакуироваться из города в более безопасное место. В общем как то так
Цитата недели: Из-за леса, из-за гор, кишки, месиво, хардкор. (Берсерк ТВ-2)
Мои проекты ТЫК Мои видяхи на ютубэ ТЫК
Если ты споришь с идиотом, вероятно тоже самое делает и он.
|
|
| |
stalker5889 | Дата: Понедельник, 20 Мая 2013, 15:01 | Сообщение # 23 |
Свободный игродел
Сейчас нет на сайте
| Ordan, и чем дальше от эпицентра слухи - тем сильнее искажаются. Цитата (Ordan) Для начала мои боты будут беседовать между собой, делясь информацией и просто удовлетворие потебности в общении. Что то не нравится мне эта идея. Нужно попроще. Просто определять расстояние героя от эпицентра распространения слуха и по нему выкидывать конечную информацию герою. Приправить рандомом по вкусу.
|
|
| |
Ordan | Дата: Понедельник, 20 Мая 2013, 15:04 | Сообщение # 24 |
Главный зомби
Сейчас нет на сайте
| Цитата (stalker5889) Что то не нравится мне эта идея. Нужно попроще. Просто определять расстояние героя от эпицентра распространения слуха и по нему выкидывать конечную информацию герою. Приправить рандомом по вкусу. Ну в моей игре просто упор на ИИ и взаимодействие между персонажами. По этому будет много таких мелких аспектов.
Цитата недели: Из-за леса, из-за гор, кишки, месиво, хардкор. (Берсерк ТВ-2)
Мои проекты ТЫК Мои видяхи на ютубэ ТЫК
Если ты споришь с идиотом, вероятно тоже самое делает и он.
|
|
| |
paranoya | Дата: Понедельник, 20 Мая 2013, 15:07 | Сообщение # 25 |
постоянный участник
Сейчас нет на сайте
| Цитата (Ordan) При получении любой информации срабатывает процедура реакции к примеру узнав что началась война крестьянин может пойти в армию, а может начать эвакуироваться из города в более безопасное место. А может ничего не делать. А может просто не успеть сделать, ибо в его дом уже стучат наёмщики и забирают всех в армию и плевать они хотели на хотелки крестянина. А может это продснабжение пришло за мясом, яйцами, хлебом или за конём.
Вместо написания примеров, как конюх изменил королю с ассасином, после чего король выпил яду и стал зомби, стоило бы потратить время на поиск материалов того, как в разных играх реализована симуляция жизни и исходя из этого, брать те идеи, которые подходят. Или, если не хочется этого делать, то изобретать свою систему с нуля. А для этого нужно прекратить обсуждения измен свинопасов и начать выстраивать, пока на абстрактом уровне, систему, имеющиеся в ней объекты и их взаимодействие, даже забыв на некоторое время про параметры/характеристики объектов. Два объекта, судя по сообщениям в теме уже есть, первый - это НПС, он же бот, он же человек, второй - событие. Так из чего состоит мир внутри компьютера?
Он был расстроенным трупом и потратил две минуты впустую.
|
|
| |
Ordan | Дата: Понедельник, 20 Мая 2013, 15:12 | Сообщение # 26 |
Главный зомби
Сейчас нет на сайте
| Цитата (paranoya) А для этого нужно прекратить обсуждения измен свинопасов Ну да мы только об этом и говорим) Новость века ведь)Цитата (paranoya) А может ничего не делать. А может просто не успеть сделать, ибо в его дом уже стучат наёмщики и забирают всех в армию и плевать они хотели на хотелки крестянина. А может это продснабжение пришло за мясом, яйцами, хлебом или за конём. Цитата (paranoya) стоило бы потратить время на поиск материалов того, как в разных играх реализована симуляция жизни и исходя из этого, брать те идеи, которые подходят. Открыл америку ..... Цитата (paranoya) рать те идеи, которые подходят. Так предлагай) Чтож ты только критикуешь)
Цитата недели: Из-за леса, из-за гор, кишки, месиво, хардкор. (Берсерк ТВ-2)
Мои проекты ТЫК Мои видяхи на ютубэ ТЫК
Если ты споришь с идиотом, вероятно тоже самое делает и он.
|
|
| |
eretik-games | Дата: Пятница, 19 Июля 2013, 12:36 | Сообщение # 27 |
постоянный участник
Сейчас нет на сайте
| Разгрёб немного завалы на учёбе и теперь появилось немного свободного времени на осмысление того что вы тут понаписали))
Продолжаем осмысливать слова noname из сообщения №9
Цитата (noname) например: действие "купить мороженое"(a,b,c,d,e,f) a- количество денег b- цена мороженого c- уровень сытости d- сытность мороженого e- параметр персонажа от 0 до 5, связанный с этим действием f- максимальный уровень сытости
оценка желательности действия "купить мороженое"= min( ((a div b)*( ((f-c)div d) +1 )*e), 100) - когда будут известны конкретные цены на мороженое и по какой шкале считается сытость, формулу можно будет настроить- добавить поправочные коэффициенты, чтобы в итоге получилось следующее: при e=0 персонаж никогда не ест мороженого(оценка желательности = 0), а при e=5 оценка желательности мороженого должна быть = 100, если только хватает денег. если денег не хватает, то оценка желательности должна быть равна 0. Хм... Размышления над написанным вами, натолкнули меня на некоторые мысли...
По сути мы каждый день не прочь покушать шашлычка, дорогого мороженного, Lay's и т.д. Ток есть небольшая проблема, рано или поздно деньги закончатся...
Поэтому бот должен уметь правильно распоряжаться своими денежными средствами в зависимости от ситуации.
Например: бот копит деньги на покупку дома, при этом ему ещё нужно удовлетворять свои основные требования. Так дом для него имеет наивысший приоритет, он будет экономить на всём остальном, то есть покупать более дешёвую пищу, использовать более дешёвые транспортные средства (общественные автобусы приоритетней чем такси) и т.д.
Играя к примеру в Сталкера, мы же ведь почему то выполняем именно основные задания нежели дополнительные... То есть приоритеты используются и здесь.
В процессе жизнепрожигания приоритеты меняются... Допустим, мы всё так же копим на наш дом, идём по улице в жаркую и сухую погоду, при этом наша потребность в прохладе и утоления жажды возрастает... Если магазин далеко тот уровень приоритета низок, ведь мы же не пойдём из одного конца города в другой что бы просто утолить жажду?))) А если магазин близок, то его приоритетность возрастает и если его уровень становится выше уровня других приоритетов-конкурентов (к примеру, экономия денежных средств), то мы идём и покупаем себе мороженное или холодную газировку или то и другое (выбор напрямую зависит от сущности). От уровня разницы между всеми приоритетами-конкурентами зависит стоимость покупки (или тархун какой то или Coca-Cola).
На изменения всех приоритетов влияет сущность, какие либо потребности и различные события...
Цитата (noname) вначале персонажей генерим полностью рандомно. потом, прежде чем пускать в мир игрока, хорошо бы прокрутить десяток поколений, чтобы вымерли все неадекватные стратегии и размножились более-менее разумные. Собственно, да. Не стоит пускать игрока в мир который только создался, а боты только только получили свои сущности.
Цитата (noname) самое сложное в этом- создать мир и продумать правила взаимодействия персонажей. Да нет, не сказал бы... Просто потребуется очень много времени... Цитата (noname) и надо ещё подумать заранее, что мы получим на выходе. в какие ситуации должны попадать персонажи и какие варианты выбора должны быть им доступны, чтобы участвовать во всём этом было бы интересно? Согласен, но всему своё время. Для начала нужно обговорить основные концепты, а там уже и прорабатывать всё по мере возрастания.
Цитата (noname) вообще без формул. Формулы нужны и сложные расчёты дадут более реалистичный эффект, чем ИИ который ориентируется на несколько переменных у которых всего 2 значения...
Добавлено (26.05.2013, 15:14) --------------------------------------------- stalker5889 Цитата (stalker5889) У каждого человека могут быть свои слабости и сильные стороны, а не простые "храбрость" и "трусость". Простой охотник может до смерти боятся пауков/скелетов/зомби, но земных, простых зверей убивать как только увидит. Так например воин при виде магии, мрака и кучи мёртвых тел может растерять веру в свои силы, нервно оглядыватся по сторонам и в крайнем случае даже деть деру. В той же ситуации маг-некромант будет чувствовать себя "в своей стихии". Кстати, да! Что то я даже об этом и не подумал)) Кто то до ужаса боится мышей и тараканов, но при этом без каких либо сомнений рубит людям головы!) Цитата (stalker5889) Что то не нравится мне эта идея. Нужно попроще. Просто определять расстояние героя от эпицентра распространения слуха и по нему выкидывать конечную информацию герою. Приправить рандомом по вкусу. Наоборот, чем сложнее тем лучше и реалистичней получится!))Добавлено (19.07.2013, 12:36) --------------------------------------------- Смотрю что то здесь всё совсем запылилось... Вроде и тема многим интересна...
В общем, эксперимент не удался, ведь и снова одним просто лень читать, другие просто сидят и ждут когда я расскажу свою идею что бы потом её по обсуждать нежели придумать что то своё, нечто более удачное чем моё. Пусть и да, есть и третьи, но их крайне мало... Благо хоть здесь мало флуда и много интересных рассуждений за что так и напрашивается сказать вам спасибо))
Чтож, теперь когда почти все дела сделаны, каждый день смогу уделить пару часиков на свои темы. Думаю разместить свои рассуждения и на Gamedev.ru. И начнём, пожалуй с того что продолжим комментировать все комменты по порядочку...
Ordan сообщение № 11, 13 Цитата (Ordan) У меня это реализовано как фобии причем есть три уровня, при самой сильной фобии персонаж может чуть ли не в стопор встать от страха. Я же в идеале вижу так... Есть полоска от изменений которой бот может не только всё сильней и сильней бояться, но и наоборот приобретать всё большую и большую уверенность и "бесстрашие". Тут так же как и со всеми параметрами сущности будут использоваться значения от 0% до 100% И как ты сказал, на разных значениях бот будет по разному будет себя ввести. Например при очень низком уровне страха, он может во время боя он может разбежаться и вперёд всёх своих собратьев ворваться в толпу врагов и вполне возможно что тут же умрёт от удачно выставленном впереди него копья от которого он не смог увернуться...
Цитата (Ordan) Вообще по ролевой системе гурпс у персонажа есть помимо основных параметров преимущества и недостатки К примеру персонаж может обладать феноминальной гибкостью это преимущество, а так же он может очень бояться темноты это недостаток. То каким человек является в 20 лет во многом зависит от того как его воспитывали, какие люди его окружали на протяжение этих 20 лет в том числе и родители... Это конкретно по твоему примеру... А вообще да, каждый человек с рождения имеет какие то предрасположенности и какие то недостатки. Кого то тянет к творчеству, кого то к спорту, при этом это идёт в ущерб другим возможным предрасположенностям...
noname сообщение №21 Цитата (noname) ты, образно выражаясь, описал дворцы, я же хочу докопаться до описания кирпичей. В том то и дело что я хотел всё проработать вместе с вами, а не как обычно. Прежде чем создать тему я сначала пытался всё продумать, всё подробно расписывать, готовил довольно солидный текстовый документ, но в конце концов решил что многим будет куда интересней вместе что придумывать, чем сидеть вдумываться в чужую идею которую сначала ещё полностью и прочитать нужно))
Цитата (noname) и ещё я начинаю понимать, что разнообразие информации, которое должен получать бот и разнообразие возможных его реакций, должно быть очень большим, чтобы получилось похоже на то, что вы расписываете. Да, но давай пофантазируем на тему того "а как будет выглядеть подобный ИИ в реализованном виде + анимированные модели?". Пришёл с работы домой, запасся попкорном или семечками, включил комп и запустил игру и не играешь, а просто наблюдаешь за тем что происходит в мире, наблюдаешь за определёнными ботами или за всеми ботами которые которые начинают вести какие то активные действия. Читаешь их мысли, сопереживаешь тем у кого в жизни сплошная чёрная полоса. Наблюдаешь за эпичными сражениями, за стараниями тех или иных сторон захватить контроль над целым миром, или просто напросто его уничтожить... Думаю некоторым будут интересны романтические моменты, например, принц начал ухаживать за юной красавицей))
А те люди которые решат таки самим окунуться в этот мир и постараться чего то добиться, получат огромный спект всевозможных квестов, Думаю многие оценят возможность натравить друг на друга двух королей выполняя не какой то набор квестов которые 100% процентов приведут к желаемому результату, а полная сводода действий и при этом что бы добиться нужного результата нужно будет не выполнять какой то набор квестов, а самостоятельно думать о том как же это сделать, как этого добиться, а также хорошее знание психологии, умение убеждать и другие умственные навыки используемые в реальной жизни)))
Ладно, помечтали и хватит)))
Цитата (noname) то есть, помимо прочего, персонаж будет учитывать ещё и слухи. надо бы подумать, как персонаж будет обрабатывать слухи и в чём будет заключаться его реакция на такой слух. По сути, слух - это звуковая дорожка + текст + набор параметров которые напрямую зависят от содержания слуха + коллизия размер которой зависит от громкости того кто ведает этот слух + id номер по которому боты смогут понимать и реагировать на слух.
Попав в коллизию, бот будет получать id слуха и обрабатывать его параметры, при определённых комбинациях параметров сущности и параметров слуха так же не мало важным будет то кто поведал слух нашему боту, будет срабатывать определённая ответная реакция бота на этот слух.
Собсно говоря, нужно будет ещё составить список различных типов звуков и чем они будут различаться между собой...
Даже в банальном можно найти что то интересное... Еда Еда (Update) Строительство и крафтинг Оживление города Реалистичное оружие Реалистичное оружие(Update) Искусственный Интеллект
Сообщение отредактировал eretik-games - Воскресенье, 26 Мая 2013, 15:21 |
|
| |
paranoya | Дата: Суббота, 20 Июля 2013, 18:03 | Сообщение # 28 |
постоянный участник
Сейчас нет на сайте
| Цитата (eretik-games) Поэтому бот должен уметь правильно распоряжаться своими денежными средствами в зависимости от ситуации.
Бот не должен уметь правильно распоряжаться деньгами, 80% реальных людей этого не умеют, а боты и подавно.
Цитата (eretik-games) Пришёл с работы домой, запасся попкорном или семечками, включил комп и запустил игру и не играешь, а просто наблюдаешь за тем что происходит в мире, Это будет выглядеть так: Пришёл домой, включил компьютер, запустил игру и всё, смотришь первый кадр, ибо компьютер задумался над ИИ всего одной НПС-маленькой девочки, которая никак не может решить - смотреть мультики, играть в одну из Н-дцать игрушек или посмотреть, как мама на кухне готовит. А может подойти к брату, пусть почитает? Когда вы спуститесь на землю? Всё, что вы тут придумываете, лишнее и нагружает компьютер. Именно поэтому всё симуляции просты.
Цитата (eretik-games) Играя к примеру в Сталкера, мы же ведь почему то выполняем именно основные задания нежели дополнительные... То есть приоритеты используются и здесь.
Не путай игрока, у которого есть цель в игре - пройти игру, узнать её историю, после чего удалить игру с компьютера и НПС, который живёт в игре, жрёт мороженки, копит на дом. Фермеру на хрен не нужны короли, ему завтра пшеницу убирать, а на улице уже неделю дождь льёт, да и ярмарка в соседнем городе закроется через два дня. Фермеру смысла нет идти покупать АК-47 и штурмовать Генераторы, чтобы проникнуть вглубь Зоны, потому как его туда послали.
Вот, что меня удивляет в ваших рассуждениях, вы не видите всего, о чём говорите:
Цитата (eretik-games) Допустим, мы всё так же копим на наш дом, идём по улице в жаркую и сухую погоду, при этом наша потребность в прохладе и утоления жажды возрастает... Если магазин далеко тот уровень приоритета низок, ведь мы же не пойдём из одного конца города в другой что бы просто утолить жажду?))) А если магазин близок, то его приоритетность возрастает и если его уровень становится выше уровня других приоритетов-конкурентов (к примеру, экономия денежных средств), то мы идём и покупаем себе мороженное или холодную газировку или то и другое (выбор напрямую зависит от сущности). От уровня разницы между всеми приоритетами-конкурентами зависит стоимость покупки (или тархун какой то или Coca-Cola).
Если очень хочется пить, то у человека один приоритет - найти быстрее где попить, и не факт, что это будет магазин, это может быть и кафе и бювет. И разница в пять рублей на бутылку воды уже не разница, потому как пить хочется. Технически, в игре должен быть, как минимум, общеигровой параметр температура, у НПС должны быть параметры: время прошедшее с последнего распития воды; время нахождения на улице (читай на жаре); приспособленность НПС к нахождению на жаре, причём последний параметр, это нехилая таблица соотношений диапазонов температуры и максимальной длительности нахождения на жаре без возникновения желания попить воды. К этому добавляется параметр желания напиться, который растёт со временем и через некоторое время все остальные желания перестают влиять на разум НПС, потому как он хочет пить.
И как только вы поймёте, что придётся составлять не меньше тысячи параметров и их взаимное влияние, как только подсчитаете, время которое будет затрачивать компьютер, чтобы вычислить приоритет одного только НПС, не говоря про сложность реализации алгоритма приоритезации, вы поймёте, что занимаетесь ерундой.
Потому как, что будет делать НПС, если ему хочется пить на 100% и он боится мышей, которые у него на пути к магазину с водой? Вариантов решения, с точки зрения реального человека под сотню и даже реальный человек может выбрать дурацкий вариант. А что говорить о том, когда человек добрался до магазина и в нём есть и Кола и просто вода и вода минеральная и ещё с два десятка напитков? Ещё одна таблица, но уже предпочтений. А если магазинов два и цены на воду в них НПС неизвестны?
НПС, по сути, как впрочем и человек, должен в вашем варианте жить в постоянной неизвестности и постоянно решать возникающие проблемы. А на это, как я уже говорил, не хватит ресурсов одного домашнего компьютера (вспоминаем шахматный компьютер Deep Blue, его мощность и размеры), да и у людей тоже не всегда это выходит.
И, опять же, осуждаются варианты поведения НПС, без попытки начать строить систему - чистое пустословие.
Что должен уметь ваш НПС с желаемым ИИ? Список есть? Привести его кто-нибудь может?
PS. И это не говоря про то огромное, просто невероятное количество контекста, которое должено быть в игре, хотя бы для того, чтобы игрок, находясь вблизи от НПС, не слышал сто раз одну и ту же фразу от десятка различных НПС, иначе все эти мороженки и хотения выпить будет пустой тратой времени.
Он был расстроенным трупом и потратил две минуты впустую.
Сообщение отредактировал paranoya - Суббота, 20 Июля 2013, 18:09 |
|
| |
eretik-games | Дата: Суббота, 20 Июля 2013, 21:12 | Сообщение # 29 |
постоянный участник
Сейчас нет на сайте
| Ordan сообщение №22
Как я ещё приводил пример про ограбленного торговца. У разных людей разные интересы, в том числе и в плане получение информации... Вот к примеру тебе. Ты много времени проводишь читая всякие книжки про любовь? А вот некоторые люди (в основном девушки) целыми днями сидят и читают, по нескольку раз за день пересматривают различные фильмы на эту тему и т.д.
По этому лучшим вариантом будет это если каждому слуху, впрочем как и к любой инфе кем либо распространяемой прикрепить определённый ряд характеристик, которые и будут решать как к этой инфе отнесётся бот. Не мало важным на мой взгляд, это ещё учитывать и то, кто распространяет эту инфу, ведь если люди болтающие всякую чепуху, а есть вполне адекватные, чьим словам можно реально верить.
paranoya сообщение № 25, 29 Если ты не знаешь для чего вообще люди что то объяснив, потом приводят пример, то я тебе объясню... "Пример" значительно повышает вероятность того что человек правильно поймёт суть преподносимой ему информации...
Цитата (paranoya) Вместо написания примеров, как конюх изменил королю с ассасином, после чего король выпил яду и стал зомби, стоило бы потратить время на поиск материалов того, как в разных играх реализована симуляция жизни и исходя из этого, брать те идеи, которые подходят. Или, если не хочется этого делать, то изобретать свою систему с нуля. А для этого нужно прекратить обсуждения измен свинопасов и начать выстраивать, пока на абстрактом уровне, систему, имеющиеся в ней объекты и их взаимодействие Не знаю как ты, а я хочу добиться того что бы ИИ мыслил максимально приближено к человеческому мышлению, что бы он допускал ошибки свойственные человеку, а не просто из за того что создатель этого ИИ что то не учёл...
И для такого ИИ большей проблемой будет являться не сколько сам процесс реализации в виде программного кода, а то чтобы придать ему человечности! А что бы это сделать, нужно учитывать много аспектов, нужно понять как мыслим мы, что, зачем и почему мы делаем. В общем сплошная психология. Даже поняв что да как, нужно ещё понять как заставить бота при определённых ситуациях мыслить как человек, а не как "компьютер"...
Поэтому, прежде чем начинать что то реализовать, нужно сначала всё хорошо обдумать...
Цитата (paranoya) Бот не должен уметь правильно распоряжаться деньгами, 80% реальных людей этого не умеют, а боты и подавно. Ну да)) Когда под конец недели половина общежития начинает бегать и клянчить денег в займы для того что бы уехать домой, я тоже порой так начинаю думать)))
Тем не менее любой видит разницу в вещи в стоимостью в 100р и стоимостью в 1000р. , а ведь порой куда выгодней купить вещь за 1000 руб... Каждый день приходя в столовую передо мною стоит выбор: либо офигенно покушать и потратить 200р или просто взять лапшу с соусом и пару кусочков хлеба в общую сумму в 50р...
Но к концу недели при первом варианте я потрачу 1400 р и в результате останусь совсем без денег, а при втором 350 и на оставшиеся деньги смогу купить к примеру, систему охлаждения для ноутбука без которого он перегревается уже через 10 мин работы, но при этом потерять вес и ослабнуть из нехватки различных веществ в организме...
И вот такой "тяжёлый" моральный выбор должен стоять перед каждым ботом, и принимать какое то решение исходя из приоритетов своей сущности...
Даже в банальном можно найти что то интересное... Еда Еда (Update) Строительство и крафтинг Оживление города Реалистичное оружие Реалистичное оружие(Update) Искусственный Интеллект
Сообщение отредактировал eretik-games - Суббота, 20 Июля 2013, 21:18 |
|
| |
paranoya | Дата: Суббота, 20 Июля 2013, 22:38 | Сообщение # 30 |
постоянный участник
Сейчас нет на сайте
| Цитата (eretik-games) Тем не менее любой видит разницу в вещи в стоимостью в 100р и стоимостью в 1000р. , а ведь порой куда выгодней купить вещь за 1000 руб Не фига не выгодней. Вещь сама по себе и применительно к тому ИИ, который ты задумал, стоит не 100 р. а столько, за сколько ты её сейчас можешь купить. Потому как, если ты вышел из пустыни на грани обезвоживания, то вода стоит ровно 1000 р. в том магазине, который оказался рядом, неважно какая это вода и плевать на твои остальные желания по накоплению на дом или что-то другое. У тебя в кармане всего 1000 р. и у тебя есть выбор, купить здесь и сейчас, но за 1000 р. либо попытаться, именно попытаться, найти дешевле, и не факт, что ты его вообще найдешь в этой деревни. Уровень взаимодействия НПС с окружающим его миром, а равно как и его возможности, которые ты хочешь видеть в своём ИИ, настолько велики, что, опять же, повторю, ни хрена ему не хватит мощности твоего компьютера даже на две минуты мыслей, желаний, целей и приоритетов одного НПС. Никакой реалтаймовости не будет, будет пошаговая игра, причём твоему ГГ придётся ждать твоих реальных лет Н-дцать, пока компьютер не посчитает все действия хотя бы 10 НПС в радиусе видимости твоим ГГ. И только на то, чтобы НПС вышёл из пустыни, не будем говорить по анимацию, антураж и текстуры, подошёл к магазину и сделал выбор: купить за 1000 р.; поискать другой магазин; постучать в ближайшую дверь и попросить воды; ворваться в ближайшее жилище; попытаться украсть из магазина и над этим выбором весит информация о том, что эта тысяча рублей не твоя и ты шёл её отдать.
Можно сколь угодно долго мечтать об крутом ИИ, который очень похож на реальный, обсуждать примеры с грабежом или выбором цвета мороженки, но всё это простая болтовня - ИИ занимаются учёные и на таких мощных компьютерах, но они ещё не дошли даже до симуляции 1% возможностей реального человека. И чтобы подлить масло в огонь, у людей есть эмоции, как ты с эмоциями будешь разбираться? С теми же анекдотами? Человек анекдот может не понять или ему будет не смешно или уже было "стописот" раз смешно и уже этот боянистый анекдот его не торкает. Или человек в трауре и ему поэтому не смешно? Тут простой логикой - да-нет, если-то не обойдешься и даже табличкой вариативности не обойдешься, тут нужно строить нехилую базу знаний.
И насчёт обсуждаемых слухов, проблема слухов в том, что слух - это совокупность информации и системы её доставки-распространения. Система распространения состоит из узлов, которые связаны друг с другом, причём каждый раз по-разному. Узел - это носитель, устный - НПС Вася, диктофон, глашатый, письменный - бумага. И узел может искажать информацию намеренно или не намеренно, в результате до фермера Васи дойдет информация о том, что король изменяет пастуху со свинопаской. А такое искажение хрен запрограммируешь. Доверенность узла может варьироваться в разных приделах и по разным причинам. Вчера бабка Маня сказала, что корова у Пети отелилась и это правда, а сегодня она всем говорит, что её соседка спуталась с пьяницей Витей из соседней деревни, потому как она видела их разговор и при этом, баба Маня зла на соседку. И опять же, вариативность всего этого просто ужасающая, никакие деревья выбора не помогут.
Он был расстроенным трупом и потратил две минуты впустую.
|
|
| |
RockDigger | Дата: Воскресенье, 21 Июля 2013, 00:42 | Сообщение # 31 |
частый гость
Сейчас нет на сайте
| Прежде всего нужно определиться для чего необходима разработка подобного ИИ. Если это научный проект целью которого является защита диссертации на тему "Симуляция разумного поведения при помощи ЭВМ", то затраты понятны и вполне оправданы, а если это необходимо для применения в игровых проектах, тогда скорее всего подобный размах ненужен. Первое о чём необходимо подумать - а будет ли интересным и захватывающим геймплей игры с подобным ИИ? Можно предположить, что допустим уже (гипотетически) имеется мощный компьютер, которому по силам рассчитать огромный пласт условий и зависимостей этого ИИ, но как будет выглядеть игровой процесс? Как реальный человек будет играть с нереально умными ботами у которых ещё есть и кое-какие желания (поесть мороженка например), не надоест?
К примеру TES III Oblivion, как напрягало действие по зарабатыванию симпатии у NPC к главному герою! Лесть, запугивание, развеселить и т. д. и т. п. В итоге получалось некоторое ухудшение общего игрового процесса, когда вместо выполнения заданий миссии приходилось тратить время на неписей наделённых характером. Трусов - запугивать, общительных - веселить, себялюбивым - льстить и это ради незначительных вещей для игры в целом. Спрашивается - зачем?
Кажется на первом месте должен стоять игровой процесс! Лучше реализовать интересный сюжет с несколькими вариантами развития событий в ключевых местах игры и несколькими вариантами концовки.
Разумность NPC должна быть условной и полностью входить в рамки сюжета игры - это должен быть приятный для игрока обман. Обычно игрок не замечает некоторой нелогичности поведения врагов, радуясь времяпровождению в игре с интересной историей сюжета, относительно сложными квестами и захватывающими баталиями. Ему не нужен ИИ максимально схожий с поведением реальных людей. Поэтому скорее всего не стоит так сильно мудрить с изобретением сверхреалистичного поведения ботов.
|
|
| |
Ordan | Дата: Воскресенье, 21 Июля 2013, 04:01 | Сообщение # 32 |
Главный зомби
Сейчас нет на сайте
| Цитата (RockDigger) Кажется на первом месте должен стоять игровой процесс! Лучше реализовать интересный сюжет с несколькими вариантами развития событий в ключевых местах игры и несколькими вариантами концовки. В том то и дела что сюжета нет) Тут обсуждаются основные принципы ИИ и как сделать его лучше)
Я все работаю над своим проектом и уже понимаю ИИ намного лучше и это здорово наблюдать как из пустой болванки вырастает персонаж который взаимодействует с миром. Как уже говорил надо начинать с малого. Вот мой план действий. Создать агрессивную среду(природу, хищники, болезни)->запустить туда группу нпц и научить их выживать в этом мире-> выжили? тогда усложняем, учим их взаимодействию друг с другом ради более высокой выживаемости->выжили и создали деревню? тогда добавляем больше агрессивных факторов и смотрим как себя ведут нпц и дорабатываем их-> нпц успешно объединяются, организовываются и справляются с трудностями?-> создаем больше народов и учим их взаимодействовать друг с другом(война, торговля, дипломатия и тп)->появилась торговля, надо учить нпц торговаться и вести дела->нпц торгуют? надо делать экономику, ценообразование и тп В общем это лишь часть плана) полностью и подробно сейчас расписывать нет смысла) А вообще мой проект(дэос который пока не активен) идеально подойдет для тестов ИИ так что можно орагнизоваться)
Цитата недели: Из-за леса, из-за гор, кишки, месиво, хардкор. (Берсерк ТВ-2)
Мои проекты ТЫК Мои видяхи на ютубэ ТЫК
Если ты споришь с идиотом, вероятно тоже самое делает и он.
|
|
| |
RockDigger | Дата: Воскресенье, 21 Июля 2013, 09:45 | Сообщение # 33 |
частый гость
Сейчас нет на сайте
| Цитата (Ordan) Создать агрессивную среду(природу, хищники, болезни)->запустить туда группу нпц и научить их выживать в этом мире-> выжили? тогда усложняем, учим их взаимодействию друг с другом ради более высокой выживаемости->выжили и создали деревню? тогда добавляем больше агрессивных факторов и смотрим как себя ведут нпц и дорабатываем их-> нпц успешно объединяются, организовываются и справляются с трудностями?-> создаем больше народов и учим их взаимодействовать друг с другом(война, торговля, дипломатия и тп)->появилась торговля, надо учить нпц торговаться и вести дела->нпц торгуют? надо делать экономику, ценообразование и тп Подобное поведение хорошо подходит для игр в жанре экономической стратегии, где игрок управляет происходящим в качестве царя или бога, но для игр стиля RPG из этого поведения NPC применима лишь малая часть принципов. Зачем в ролевой игре торговля ботов с ботами? Достаточно некоторых условий для того, чтобы NPC торговец торговал определённым типом товаров и не скупал у ГГ всё подряд, ну и как вариант допустим в зависимости от уровня симпатии к ГГ торговец варьировал цены на товар либо вообще отказывался торговать с ГГ. Только вот уровень симпатии должен рассчитываться автоматически в зависимости от произведённых действий ГГ - торгуешь честно - скидка, попытался обмануть - получи повышение цен, попытался украсть товар или избить и ограбить - полный отказ во всяческих торговых отношениях, и не надо рассказывать анекдоты и льстить кликая по различным пунктам диалогового меню.
А для реализации некоторых различий в поведении NPC хорошо бы использовать всю мощь ООП вместе с принципами компонентной архитектуры. К примеру есть сущность GameObject - это пустой контейнер в который можно напихать чего угодно. Если мы хотим создать живую сущность, то наделим этот контейнер соответствующими свойствами. Для этого реализуем систему классов и интерфейсов, чтобы описать все необходимые варианты поведения причём необходимо выделить основные поведения и от них наследовать другие. К примеру как базовый класс будет вообще само наличие поведения (скорее всего это должен быть класс с несколькими основными свойствами), затем поведение делим на два типа - разумное и интуитивное, а вот потом развиваем эти два типа поведения до того уровня который нам необходим. Для животных свойственно интуитивное поведение поэтому реагировать на происходящее они должны с преобладанием интуиции, процент разумности поведения зависит от класса животного, таракан явно тупее собаки и его действия на 99% интуитивны в то время, как в действиях собаки есть доля рассчётливости. Варьируя этим можно описать массу различных поведений.
Также и с разумными существами: у женщин процент интуитивного поведения выше, чем у мужчин. Если к примеру мужчина и женщина испытывают чувство голода, то вероятнее всего мужчина будет есть понемногу экономя запас еды, а женщина утолит своё чувство голода полностью. Но и из этого правила есть исключения, поэтому для разработчика должно быть достаточно лёгким производство различных экземпляров сущностей посредством изменения основных свойств, а также путём наследования и создания новых типов поведения.
Есть смысл разрабатывать свою систему ИИ, которая будет применима для различных миров и типов игрового процесса. Но подобная система поведения будет связана и с другими типами игровых объектов. Допустим в игровом мире NPC должны иметь органы чувств, как это реализовать? С помощью игровых объектов и ИИ NPC. К примеру различные виды одежды или доспехов - явно эти предметы должны быть видимы и по их виду можно определять противника: если у него богатая одежда, богатые и крепкие доспехи или крепкие, но простые внешне доспехи. Также одежда может иметь приятный или неприятный запах. Допустим внешне персонаж выглядит богатым, но у его одежды свойство запах имеет значение "неприятный", можно сделать вывод, что вероятно этот персонаж не тот каким он выглядит. В соответствии с остальными параметрами персонажа другой NPC может сгенерировать действия в зависимости от процентного соотношения интуитивного и разумного восприятия действительности. Таким образом будет симулироваться его зрение и обоняние. Также одежда и доспехи могут иметь параметр шумности, при помощи которого можно симулировать органы слуха у NPC. Так можно описать любой игровой объект с которым будут взаимодействовать игровые сущности. Поэтому мне кажется, что систему ИИ для RPG нужно рассматривать, как систему взаимодействия игровых сущностей с игровым миром в целом. Для полноценной работы этой системы нужно будет реализовать все типы игровых объектов, наделённых свойствами необходимыми для симуляции жизни в игровом мире. Это должен быть единый, работоспособный комплекс, применимый универсально для любого типа геймплея от реализма до стимпанка или фентези.
|
|
| |
Ordan | Дата: Воскресенье, 21 Июля 2013, 09:53 | Сообщение # 34 |
Главный зомби
Сейчас нет на сайте
| RockDigger, ну мой текущий проект и есть симулятор царя с элементами социальной эволюции) Цитата (RockDigger) Для этого реализуем систему классов и интерфейсов Ктоб спорил что надо делать классы) но мы тут не обсуждаем реализацию в программировании. Цитата (RockDigger) Допустим внешне персонаж выглядит богатым, но у его одежды свойство запах имеет значение "неприятный", можно сделать вывод, что вероятно этот персонаж не тот каким он выглядит. У меня есть параметр как Боевая репутация - персонаж оценивает внешний вид оппонента и определяет уровень угрозы, а дальше решает что ему делать.
Цитата недели: Из-за леса, из-за гор, кишки, месиво, хардкор. (Берсерк ТВ-2)
Мои проекты ТЫК Мои видяхи на ютубэ ТЫК
Если ты споришь с идиотом, вероятно тоже самое делает и он.
|
|
| |
RockDigger | Дата: Воскресенье, 21 Июля 2013, 10:31 | Сообщение # 35 |
частый гость
Сейчас нет на сайте
| Цитата (Ordan) У меня есть параметр как Боевая репутация - персонаж оценивает внешний вид оппонента и определяет уровень угрозы, а дальше решает что ему делать. Репутация тоже неоднозначный параметр, к примеру в игре Готика 3 репутация была в нескольких вариантах: репутация в конкретном поселении и репутация среди определённого клана или расы. Поэтому в принципе если персонажи вдруг не имеют представления о репутации друг друга (например они из разных областей и из разных народностей), их действия должны опираться на их визуальное восприятие и оценку ситуации. Система должна обработать любой вариант стечения обстоятельств. Допустим силу противника можно оценить визуально, а вот его выносливость и боеспособность визуально не оценить. Вероятно это можно понять из его репутации, как воина, но репутация не может быть известна всему игровому миру. Может в этом случае нужно ввести параметры типа "мировая известность" и "осведомлённость". Если персонаж известен в мире процентов на 70, то вероятно он встретит неосведомлённого персонажа, которому неизвестна его репутация. Опять же подобный подход, это некая рандомизация ИИ.
Сообщение отредактировал RockDigger - Воскресенье, 21 Июля 2013, 10:34 |
|
| |
Ordan | Дата: Воскресенье, 21 Июля 2013, 10:38 | Сообщение # 36 |
Главный зомби
Сейчас нет на сайте
| RockDigger, я о другом. Боевая репутация на имеет отношения к репутациям поселения и тп. Она расчитывается при встрече двух и более персонажей и зависит лишь от внешнего вида, персонаж может сделать ловкий трюк с оружием что покажет врагу что он еще и хорош во владении оружием что повысит его боевую репутацию. Так же на БР могут повлиять слухи и знания о рассе/виде/национальности врага. К примеру встречается игроку волк. Он оценивает его размер и агрессивность, у волка есть клыки что повышает его боевую репутацию. Следы крови на его морде показывают что он недавно кого то загрыз что тоже повышает его БР. Слух что в этом лесу волки людоеды еще сильнее повысят БР волка и персонаж может попытаться убежать, а не сражаться.
Цитата недели: Из-за леса, из-за гор, кишки, месиво, хардкор. (Берсерк ТВ-2)
Мои проекты ТЫК Мои видяхи на ютубэ ТЫК
Если ты споришь с идиотом, вероятно тоже самое делает и он.
|
|
| |
RockDigger | Дата: Воскресенье, 21 Июля 2013, 11:10 | Сообщение # 37 |
частый гость
Сейчас нет на сайте
| В принципе логика понятна и оправдана .
|
|
| |
paranoya | Дата: Воскресенье, 21 Июля 2013, 11:20 | Сообщение # 38 |
постоянный участник
Сейчас нет на сайте
| Цитата (Ordan) Он оценивает его размер и агрессивность Как можно оценить агрессивность? Даже реальный человек этого не может сделать при встрече с волком.
Он был расстроенным трупом и потратил две минуты впустую.
|
|
| |
Ordan | Дата: Воскресенье, 21 Июля 2013, 11:24 | Сообщение # 39 |
Главный зомби
Сейчас нет на сайте
| Цитата (paranoya) Как можно оценить агрессивность? Даже реальный человек этого не может сделать при встрече с волком. Думаю логично что если волк рычит, скалит зубы и идет на тебя то он явно настроен агрессивно) А если осторожно наблюдает и не двигается то явно он не оч агрессивен)
Цитата недели: Из-за леса, из-за гор, кишки, месиво, хардкор. (Берсерк ТВ-2)
Мои проекты ТЫК Мои видяхи на ютубэ ТЫК
Если ты споришь с идиотом, вероятно тоже самое делает и он.
|
|
| |
RockDigger | Дата: Воскресенье, 21 Июля 2013, 11:27 | Сообщение # 40 |
частый гость
Сейчас нет на сайте
| Цитата (paranoya) Как можно оценить агрессивность? Даже реальный человек этого не может сделать при встрече с волком. Поэтому я думаю и надо разрабатывать достаточно универсальную систему ИИ, чтобы потом адаптировать логику под конкретный проект. Игра не обязана отражать действительность на 100%. Если подобное поведение поможет улучшить геймплей, то почему ему не быть?
|
|
| |
|