Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Флейм
  • » Разрабатываю проект виртуального мира будущего. [RSS Feed]

#1 Сен. 25, 2008 08:13:45

PavelZ
От:
Зарегистрирован: 2008-09-07
Сообщения: 71
Репутация: +  0  -
Профиль   Отправить e-mail  

Разрабатываю проект виртуального мира будущего.

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

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

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

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

Пишутся программные модули управления персонажем на трёх уровнях.

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

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

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

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



Офлайн

#2 Сен. 25, 2008 21:07:25

shiza
От:
Зарегистрирован: 2007-07-03
Сообщения: 1073
Репутация: +  0  -
Профиль   Отправить e-mail  

Разрабатываю проект виртуального мира будущего.

Офлайн

#3 Сен. 29, 2008 06:47:48

PavelZ
От:
Зарегистрирован: 2008-09-07
Сообщения: 71
Репутация: +  0  -
Профиль   Отправить e-mail  

Разрабатываю проект виртуального мира будущего.

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



Офлайн

#4 Сен. 29, 2008 11:02:12

ZAN
От:
Зарегистрирован: 2007-06-10
Сообщения: 403
Репутация: +  10  -
Профиль   Отправить e-mail  

Разрабатываю проект виртуального мира будущего.

Суть в том, что сами по себе названия генетический алгоритм или нейронная сеть – в них больше популизма, чем реального смысла.
Генетический алогоритм - это никакой не популизм. Это очень мощная штука для нахождения экстремумов функций. В физике применяется постоянно. Как правило, для оптимизации параметров системы (особенно в случаях, когда система зависит от их большого числа).



Отредактировано (Сен. 29, 2008 13:35:54)

Офлайн

#5 Сен. 29, 2008 11:41:14

shiza
От:
Зарегистрирован: 2007-07-03
Сообщения: 1073
Репутация: +  0  -
Профиль   Отправить e-mail  

Разрабатываю проект виртуального мира будущего.

PavelZ ИМХО. Это вы зря так думаете. =)
Но в данном случае я совсем не про нейросетку.
Вот эта фраза:

PavelZ
Каждое последующее поколение компьютерных персонажей за счёт накопления знаний (и удачных решений типичных задач) будет намного более продвинутые, благодаря взаимодействию между собой, персонажами игроков и другими объектами виртуальной вселенной.
прям очень похожа на фразу из статьи по генетическим алоритмам из Журнала Программист за 199x лохматый год (тока там все на паскале было).



Отредактировано (Сен. 29, 2008 12:09:27)

Офлайн

#6 Окт. 2, 2008 03:24:08

PavelZ
От:
Зарегистрирован: 2008-09-07
Сообщения: 71
Репутация: +  0  -
Профиль   Отправить e-mail  

Разрабатываю проект виртуального мира будущего.

Честно говоря мне просто не нравится когда в названиях алгоритмов используют биологические термины, как бы подчёркивая заимствование из живой природы, а с другой с претензией на оптимальность мол лучше чем сделала природа всё равно не получится.
Если пользоваться подобной терминологией, то конечный автомат надо называть условным рефлексом.
Статей и лохматых и неоперившихся (тоже биологические термины, блин) сам перечитал не мало, возможно некоторые мои мысли перекликаются с их авторами.
По эволюционным алгоритмам есть работы ещё с 70х годов прошлого столетия.
Суть то в другом, не важно какие алгоритмы (по названию) будут использоваться и на чём будет написан код, хоть на “Ассемблере”, хоть на “Норме”, главное сделать некий полигон, где их можно было проверять.



Офлайн

#7 Окт. 2, 2008 03:52:18

shiza
От:
Зарегистрирован: 2007-07-03
Сообщения: 1073
Репутация: +  0  -
Профиль   Отправить e-mail  

Разрабатываю проект виртуального мира будущего.

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

Вообще не представляю как можно выразить настолько общее взаимодействие объектов и среды.



Офлайн

#8 Окт. 2, 2008 05:16:23

PavelZ
От:
Зарегистрирован: 2008-09-07
Сообщения: 71
Репутация: +  0  -
Профиль   Отправить e-mail  

Разрабатываю проект виртуального мира будущего.

Так и назвать виртуальная вселенная :)
Пишутся на Питоне (можно и С/С++) модули трёх уровней, для каждого персонажа запускается по своему комплекту. При чём в процессе работы в ОЗУ сервера на каждый комплект создаётся кэш запросов-ответов к базе, для ускорения работы. Какой-то модуль должен периодически либо чистить кэш, либо проверять актуальность данных там, первое будет тормозить персонаж, второе прийдётся выделять много ресурсов этому модулю. Соответственно больной вопрос сколько памяти выделить под кэш, на VDS её почти нет.
Что касается выше перечисленной троицы, сделать несколько вариантов таких программ ввести в систему какой-то механизм контроля работы разных версий модулей. К примеру пишется модуль с минимальной функциональностью, потом другой посложнее, далее для вновь появившихся в виртуальной вселенной персонажей используется новая версия и их работа сравнивается, на вопрос устойчивости, быстродействия программы и прогресса самого персонажа. (Далее прямой аналог с генетическими алгоритмами.) Сделать бы ещё механизм генерации таких программ из более простых блоков, с возможностью их варьировать между собой. Но это скорее всего в ближайшее время не мне ни кому другому вряд ли удастся.



Офлайн

#9 Окт. 2, 2008 05:20:34

shiza
От:
Зарегистрирован: 2007-07-03
Сообщения: 1073
Репутация: +  0  -
Профиль   Отправить e-mail  

Разрабатываю проект виртуального мира будущего.

Я имел ввиду, как по другому называть генетические алгоритмы и прочее.

Технические подробности - ладно.
Мне пока не ясно, как можно запрограммировать взаимодействие объектов, сотней разных способов.



Офлайн

#10 Окт. 2, 2008 06:57:50

PavelZ
От:
Зарегистрирован: 2008-09-07
Сообщения: 71
Репутация: +  0  -
Профиль   Отправить e-mail  

Разрабатываю проект виртуального мира будущего.

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



Офлайн

  • Начало
  • » Флейм
  • » Разрабатываю проект виртуального мира будущего.[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version