Город Мастеров
IPB

Здравствуйте, гость ( Вход | Регистрация )

 Правила этого форума ПРАВИЛА РАЗДЕЛА
6 страниц V   1 2 3 > »   
Ответить в эту темуОткрыть новую тему
> Гражданский ИИ
denis0k
сообщение Oct 2 2012, 17:46
Сообщение #1


Level 19
Иконки Групп

Класс: Воин
Характер: Lawful Good
Раса: Человек
NWN: Скриптинг [PW]
Gem of the North
Край Лесов



Стало немного скучно, и я по наводке Вирусмана решил сделать сабжевую хрень (IMG:style_emoticons/kolobok_light/smile.gif) Заодно сделаю топик на тему нвн, каких тут почти не осталось (IMG:style_emoticons/kolobok_light/smile.gif)

Суть работы сабжа проста. Обычно на коммонеров вешают что-то типа рандомволка, и они тупо слоняются туда-сюда, втыкаясь во все углы. Либо просто вырубают им ИИ, чтобы они как буратины стояли на месте (ммо-стайл). Мне было предложено искусственному интеллекту добавить немного... интеллекту (IMG:style_emoticons/kolobok_light/smile.gif) Заставлю неписей заниматься делами: кто-то утром пойдёт на работу (а вечером - домой), кто-то - молиться, кто-то - бухать и т.п. Всё без индивидуальных маршрутов и скриптов.

Что уже сделано: самое скучное - поиск кратчайшего пути по дереву вейпоинтов, ходьба из пункта А в пункт Б хоть через 10 локаций.
Что предстоит сделать: самое весёлое - запрограммировать болванчиков на свободу выбора жизненных приоритетов.
Нафига: а хз, для разминки мозгов. Ну и мб Экзису всё-таки пригодится.

В любом случае, все наработки я выложу в общий доступ.

Ах да. Есть хитрые идеи творческого плана?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Ilerien
сообщение Oct 2 2012, 19:02
Сообщение #2


Level 11
Иконки Групп

Класс: Волшебник
Характер: Lawful Evil
Раса: Эльф
NWN: Скриптинг [PW]
Gem of the North



Всячески поддерживаю идею. (IMG:style_emoticons/kolobok_light/good.gif)
Творческий план сходу не выдам, но и так более-менее понятно, с какого конца браться: заскриптить последовательности анимаций (к слову, есть смысл взять расширенные с волта - там уже довольно давно есть фикс на их нормальную работу с плащами) и привязать их к местам, раздать неписям приоритеты (кто больше хочет бухать в трактире, а кто чаще по храмам), сделать глобальный балансировщик, который будет более-менее равномерно распределять неписей по занятиям. Из плюшек - реакция на плохую погоду, например, как это сделано в Ведьмаке. (IMG:style_emoticons/kolobok_light/smile.gif)

Сообщение отредактировал Ilerien - Oct 2 2012, 23:09
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Melisse
сообщение Oct 2 2012, 20:59
Сообщение #3


Level 11
***

Класс: Волшебник
Характер: Neutral Good
Раса: Фея



драки в баре и разговоры на разные темы, аля слухи в обливион
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
denis0k
сообщение Oct 2 2012, 22:44
Сообщение #4


Level 19
Иконки Групп

Класс: Воин
Характер: Lawful Good
Раса: Человек
NWN: Скриптинг [PW]
Gem of the North
Край Лесов



Цитата
есть смысл взять расширенные с волта - там уже довольно давно есть фикс на их нормальную работу с плащами
Ссылочку?
Цитата
раздать неписям приоритеты (кто больше хочет бухать в трактире, а кто чаще по храмам)
Это в планах изначально. Помимо базовой цели типа работы стоит придумать аффиксы (в стиле дьяблы) - алкаш имеет +Х% шанс пойти в кабак после или вместо работы и т.п.
Цитата
реакция на плохую погоду, например, как это сделано в Ведьмаке
Запишу.
Цитата
драки в баре и разговоры на разные темы, аля слухи в обливион
А в скайриме есть ещё клёвые барды. Сама игра довольно быстро наскучила, но вот бардов запомнил хорошо.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Ilerien
сообщение Oct 2 2012, 23:09
Сообщение #5


Level 11
Иконки Групп

Класс: Волшебник
Характер: Lawful Evil
Раса: Эльф
NWN: Скриптинг [PW]
Gem of the North



Цитата
Ссылочку?
Тык!
Насколько я помню, эти. Я тестил с плащами - большинство работает нормально, но есть анимации, где плащи выглядят странно, например, лежание на боку.

Сообщение отредактировал Ilerien - Oct 2 2012, 23:11
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
PaiNt
сообщение Oct 3 2012, 01:37
Сообщение #6


Level 8
***

Класс: Псионик
Характер: Chaotic Neutral
Раса: Хафлинг



Мне кажется большее внимание стоит уделять реакции на окружающий мир, как уже сказали выше на дождь например. Ведь реалиях сколько-либо PW-шного модуля окружающий мир меняется довольно прилично.. И как будет смотреться например нпс, по вечерам отправляющийся в таверну побухать, когда например днем город осадили скажем орки. Понаубивали кучу народу, да и таверну собственно подожгли.
Вообще мне видится успешный ИИ именно в "прокачке" реакционного интелекта (тип ситуации > равнозначные_варианты_решения), вопрос в том как это с точки зрения "программирования(наращивания этого списка реакций)" удобнее организовать..
Универсальный "механизм принятия решений" для выполнения того или иного действия НПС , хз.. мне кажется это вообще несбыточная мечта (IMG:style_emoticons/kolobok_light/nea.gif) .

Сообщение отредактировал PaiNt - Oct 3 2012, 01:40
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Flaristan
сообщение Oct 3 2012, 03:32
Сообщение #7


Тролль
****

Класс: Пьяный Мастер
Характер: Chaotic Neutral
Раса: Тварь



Я вот пытался сделать кастомный АИ для мобов (не для гражданских, а вообще – в плане для каждого типа криттеров свой отдельный индивидуальный АИ). Тут мне кажется делать универсальный скрипт будет слишком громоздко и в итоге не выйдет ничего хорошего. Лучше для каждого типа криттеров делать индивидуальный с учетом минимума базовых задач (деревенский пьянчуга отдельно, деревенский плотник отдельно и т.п.). Так оно будет смотреться в игре более ярко и соответствующе ролям НПС.
Например из готовых АИ класса «бродилки» у меня есть летучие мыши (практически чистый рендумволк со стилизацией и минимумом повадок) + куропатки (тоже практически чистый рендумволк с закосом под повадки голубей). Из более продвинутого АИ готов крысиный (тут уже использовалась индивидуальная блок-схема поведения и повадок делающая из криттеров действительно нечто похожее на мелких хищных стайных животных, ориентирующихся в игре самостоятельно в соответствии с обстоятельствами). Вот к примеру как выглядит обобщенно их система поведения. Так же на деле все это можно посмотреть при желании и в модуле.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
denis0k
сообщение Oct 3 2012, 07:44
Сообщение #8


Level 19
Иконки Групп

Класс: Воин
Характер: Lawful Good
Раса: Человек
NWN: Скриптинг [PW]
Gem of the North
Край Лесов



Цитата
Мне кажется большее внимание стоит уделять реакции на окружающий мир, как уже сказали выше на дождь например.
Да. Вот это в программировании ИИ меня и привлекает - куча мелочей (IMG:style_emoticons/kolobok_light/smile.gif)
Цитата
Лучше для каждого типа криттеров делать индивидуальный с учетом минимума базовых задач
С т.з. программирования это не по фен-шую (IMG:style_emoticons/kolobok_light/smile.gif) Наделаешь вот так 100 разных крич с разными скриптами, а потом оказывается, что вот эти базовые задачи, которые везде раскопипастены, надо модифицировать.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
PaiNt
сообщение Oct 3 2012, 09:09
Сообщение #9


Level 8
***

Класс: Псионик
Характер: Chaotic Neutral
Раса: Хафлинг



Цитата(denis0k @ Oct 3 2012, 15:44) *
Да. Вот это в программировании ИИ меня и привлекает - куча мелочей (IMG:style_emoticons/kolobok_light/smile.gif)
С т.з. программирования это не по фен-шую (IMG:style_emoticons/kolobok_light/smile.gif) Наделаешь вот так 100 разных крич с разными скриптами, а потом оказывается, что вот эти базовые задачи, которые везде раскопипастены, надо модифицировать.


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

Биовары пошли по пути вейпойнтов и локальных переменных заданных при создании существа, но тут уже только в этом 2 параметра которые нужно регулировать в разных местах вместо одного - уже плохо.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Rewazer
сообщение Oct 3 2012, 09:26
Сообщение #10


Level 7
**

Класс: Тайный Лучник
Характер: Neutral Evil
Раса: Чудовище



Цитата
С т.з. программирования это не по фен-шую
+1, но так или иначе все упирается в создание "леса стратегий поведения" т.е. множества древовидных последовательностей скриптов с АИ
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Melisse
сообщение Oct 3 2012, 09:28
Сообщение #11


Level 11
***

Класс: Волшебник
Характер: Neutral Good
Раса: Фея



Цитата
Биовары пошли по пути вейпойнтов и локальных переменных заданных при создании существа, но тут уже только в этом 2 параметра которые нужно регулировать в разных местах вместо одного - уже плохо.

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

Сообщение отредактировал Melisse - Oct 3 2012, 09:29
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
denis0k
сообщение Oct 3 2012, 17:57
Сообщение #12


Level 19
Иконки Групп

Класс: Воин
Характер: Lawful Good
Раса: Человек
NWN: Скриптинг [PW]
Gem of the North
Край Лесов



Цитата
можно было писать(программировать человеку) "поведение НПС" максимально высокоуровнево, с максимальной контекстностью. Возможно стоило обратить внимание на какие-то реально разрабатываемые языки для "обучения " ИИ в мире, там наверное обозначают основные проблемы в этой сфере программирования.
Нвскрипт - и есть этот высокоуровневый фреймворк (IMG:style_emoticons/kolobok_light/smile.gif) И городить сверху ещё огород - уже не очень с руки. Проблема в данном случае в том, что он тормозной, по кастомным боевым ИИ это хорошо видно. Если, к примеру, мобов с джаспером натыкать штук 40, они так будут скриптами шуршать, что либо хертбит будет раз в 20 секунд, либо сервер попросту ляжет (IMG:style_emoticons/kolobok_light/smile.gif)

Да, программирование не предлагает иного варианта, кроме как дерева условий, но я думаю, как это оптимизировать (IMG:style_emoticons/kolobok_light/smile.gif) Вопросом ИИ я давно увлекаюсь.
Цитата
Биовары пошли по пути вейпойнтов и локальных переменных заданных при создании существа, но тут уже только в этом 2 параметра которые нужно регулировать в разных местах вместо одного - уже плохо.
Я скрипты свои с нуля пишу, кучу ненужных настроек я брать не буду. На данный момент нет никаких переменных в том объёме, что они есть в дефолтном ИИ (IMG:style_emoticons/kolobok_light/smile.gif)
Цитата
мне кажется если есть точка - то не сложно ее найти, чем генерировать каждые 6.0 сек случайную
Куда-то вы забурились не туда (IMG:style_emoticons/kolobok_light/smile.gif) Нет никаких случайных точек.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Ilerien
сообщение Oct 3 2012, 18:54
Сообщение #13


Level 11
Иконки Групп

Класс: Волшебник
Характер: Lawful Evil
Раса: Эльф
NWN: Скриптинг [PW]
Gem of the North



Цитата(denis0k @ Oct 3 2012, 17:57) *
Нвскрипт - и есть этот высокоуровневый фреймворк (IMG:style_emoticons/kolobok_light/smile.gif) И городить сверху ещё огород - уже не очень с руки. Проблема в данном случае в том, что он тормозной, по кастомным боевым ИИ это хорошо видно. Если, к примеру, мобов с джаспером натыкать штук 40, они так будут скриптами шуршать, что либо хертбит будет раз в 20 секунд, либо сервер попросту ляжет (IMG:style_emoticons/kolobok_light/smile.gif)
Ден, это скорее проблема реализации (IMG:style_emoticons/kolobok_light/smile.gif) Джасперовский АИ очень хорош с точки зрения учёта всего-чего-изволите, но реализован крайне топорно. Пример: функция, отвечающая за каст боевых заклинаний, пробегает почти все их с проверкой вида if(GetHasSpell(SPELL_FREAKING_SOMETHING))ActionCas
tSpell(SPELL_FREAKING_SOMETHING, GlobalTarget), а правильный подход в данном случае - кэшировать в онспавне/онресте существующие заклинания и кастовать их уже из таблицы. С использованием в сомнительных местах NWNX для быстрого доступа к содержимому слотов.

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

Сообщение отредактировал Ilerien - Oct 3 2012, 18:54
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
denis0k
сообщение Oct 3 2012, 19:21
Сообщение #14


Level 19
Иконки Групп

Класс: Воин
Характер: Lawful Good
Раса: Человек
NWN: Скриптинг [PW]
Gem of the North
Край Лесов



Видел я эти вилки по 15к строк кода (IMG:style_emoticons/kolobok_light/smile.gif) Титанический труд. Но когда я оставил зоопарк из штук 30 тестовых мобов в спецлокации и запустил модуль, с тми вывалились перцепшн-скрипты (IMG:style_emoticons/kolobok_light/smile.gif) Кажется, до просчёта спеллов дело даже не дошло.

С коммонерами этой проблемы быть не должно - у них нет 500 спеллов (IMG:style_emoticons/kolobok_light/smile.gif)

Я получил в своё распоряжение тестовую площадку, буду на днях продолжать изыски (IMG:style_emoticons/kolobok_light/smile.gif)
Прикрепленные файлы
Прикрепленный файл  pf.jpg ( 29.24 килобайт ) Кол-во скачиваний: 16
 
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Anakondar
сообщение Oct 3 2012, 23:55
Сообщение #15


Level 6
**

Класс: Друид
Характер: Chaotic Neutral
Раса: Гном



Вспомнилась одна строчка из песни, которая иногда как нельзя лучше отражает поведение АИ в НВН:

-Если друг оказался вдруг и не друг и не враг - attack!
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
PaiNt
сообщение Oct 4 2012, 00:12
Сообщение #16


Level 8
***

Класс: Псионик
Характер: Chaotic Neutral
Раса: Хафлинг



Цитата(denis0k @ Oct 4 2012, 03:21) *
Видел я эти вилки по 15к строк кода (IMG:style_emoticons/kolobok_light/smile.gif) Титанический труд. Но когда я оставил зоопарк из штук 30 тестовых мобов в спецлокации и запустил модуль, с тми вывалились перцепшн-скрипты (IMG:style_emoticons/kolobok_light/smile.gif) Кажется, до просчёта спеллов дело даже не дошло.

С коммонерами этой проблемы быть не должно - у них нет 500 спеллов (IMG:style_emoticons/kolobok_light/smile.gif)

Я получил в своё распоряжение тестовую площадку, буду на днях продолжать изыски (IMG:style_emoticons/kolobok_light/smile.gif)

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

А про высокоуровневость я с тобой не согласен, я имею ввиду что средство в котором можно будет разрабатывать "реакции для ИИ"(программировать этот самый ИИ) должно иметь наиболее оторванность от аппаратной/cпец(в нашем случае можно сказать от NWScript) части и ближе к человеческому языку и построению "логики решений" самого человека, это позволило бы програмировать поведение в общем случае быстрее(за день допустим ты запрограмлишь 20 вариантов ИИ, вместо 10, при равном конечном качестве) чем ковыряясь в дебрях различных событий NWScript и проблемах его применимости.. Мне показалось чтот-то похожее что я имею ввиду http://ru.wikipedia.org/wiki/CLIPS , язык для экспертных систем.

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

Сообщение отредактировал PaiNt - Oct 4 2012, 00:15
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Flaristan
сообщение Oct 4 2012, 01:50
Сообщение #17


Тролль
****

Класс: Пьяный Мастер
Характер: Chaotic Neutral
Раса: Тварь



Цитата(denis0k @ Oct 3 2012, 07:44) *
С т.з. программирования это не по фен-шую (IMG:style_emoticons/kolobok_light/smile.gif) Наделаешь вот так 100 разных крич с разными скриптами, а потом оказывается, что вот эти базовые задачи, которые везде раскопипастены, надо модифицировать.
Ну тут уже зависит какова ваша цель: создать качественную программу, или качественную игровую среду. Можно использовать гибкий и легко податливый изменениям код, можно поступить еще профессиональнее и сделать его через инклюды… Но как правило для отличного результата в игре не понадобится 100 разных крич – половина от силы, а то и треть; с развитым АИ – единицы. Чтоб получилось хорошо, нужно делать не универсально, а специализированно. Естественно придется много работать, чтобы это сделать.

Цитата(Melisse @ Oct 3 2012, 09:28) *
хищники переодически прогуливались до точки, где собирались травоядные, по пути рандомно создавая случайные локации, по которым они пробирались
Вейпоинты – это такой же «якорь», как и нефеншуйно скомпилированные скрипты. Я прибегал к вейпоинтам только в самом крайнем случае и только в порядке прописывания конкретного эвента. Например если у вас есть страж патрулирующий улицы города в определенные часы – проще накидать ему оригинальных вейпоинтов и не морочиться; а если это АИ разбойника который может спавниться в n-различных местах – нужно выбирать: делать ли целый комплекс спавна для этого криттера, включающий ряд однотипных служебных вейпоинтов расставляемых на каждой локации вручную, или написать по большей части казуальный рендумволк с множеством «if» подразумевающих обобщенные событийные триггеры которые могут произойти в этих локациях.
Естественно последний вариант более универсальный; но с другой стороны страж при исполнении тыкающийся по бордюрам клумб, стенам домов и заборам – довольно жалкое зрелище. Вывод – все должно опираться на чувство меры разработчика.

Полноценный «Искусственный Интеллект» изобретать вовсе не обязательно, достаточно качественно сделать имитацию одной или нескольких наиболее ярких особенностей. ПС все равно не будет беседовать с первым попавшимся неквестовым НПС о смысле жизни или приглашать на свидание в ближайшую таверну – для этого есть другие игроки (вы же не делаете совсем синглплеер), а НПС должны быть всего лишь качественными декорациями которые будут создавать видимость целостности издалека.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Melisse
сообщение Oct 4 2012, 09:59
Сообщение #18


Level 11
***

Класс: Волшебник
Характер: Neutral Good
Раса: Фея



Цитата
Если, к примеру, мобов с джаспером натыкать штук 40, они так будут скриптами шуршать, что либо хертбит будет раз в 20 секунд, либо сервер попросту ляжет


А зачем 40 штук в одной локации?
Помниться, на геме1, я ставила 30 мобов и тут же начинались лаги и аи просто не работал. Мне кажется, что на это и не расчитан сервер. В локации 12х12 тайлов (рекомендовано не больше 150 тайлов), оптимально работают 10 мобов, при 15 уже хуже - дык больше и не надо + еще игроки. Для того и существуют экаунтеры (не только стандартные), чтобы спавнить встречи 1-6 мобов.

Сообщение отредактировал Melisse - Oct 4 2012, 10:02
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Anakondar
сообщение Oct 4 2012, 13:48
Сообщение #19


Level 6
**

Класс: Друид
Характер: Chaotic Neutral
Раса: Гном



Цитата(Melisse @ Oct 4 2012, 09:59) *
А зачем 40 штук в одной локации?
Помниться, на геме1, я ставила 30 мобов и тут же начинались лаги и аи просто не работал. Мне кажется, что на это и не расчитан сервер. В локации 12х12 тайлов (рекомендовано не больше 150 тайлов), оптимально работают 10 мобов, при 15 уже хуже - дык больше и не надо + еще игроки. Для того и существуют экаунтеры (не только стандартные), чтобы спавнить встречи 1-6 мобов.

Вот сейчас посмотрел специально. Городские подземелья Эндора. Локация 12х12. 67 мобов. Около 280 вэйпоинтов. Десятки плэйсэйблов. Во времена онлайна даже ночью там никогда не отсутствовали игроки. Лагало только однажды, когда там было выброшено несколько сотен неисчезающих скриптово вещей.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Melisse
сообщение Oct 4 2012, 15:44
Сообщение #20


Level 11
***

Класс: Волшебник
Характер: Neutral Good
Раса: Фея



Цитата
Вот сейчас посмотрел специально. Городские подземелья Эндора. Локация 12х12. 67 мобов. Около 280 вэйпоинтов. Десятки плэйсэйблов. Во времена онлайна даже ночью там никогда не отсутствовали игроки. Лагало только однажды, когда там было выброшено несколько сотен неисчезающих скриптово вещей.

В локациях компании - в городе по 50 нпс стоит и нормально.
я про джаспероский аи, при некоторой настройке он вполне нормальный и не лагает, да при большом кол-ве.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Fimko
сообщение Oct 4 2012, 17:34
Сообщение #21


Level 3
*

Класс: Обыватель
Характер: Lawful Good
Раса: Человек



Цитата(denis0k @ Oct 2 2012, 17:46) *
Ах да. Есть хитрые идеи творческого плана?

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

Сообщение отредактировал Fimko - Oct 4 2012, 17:35
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Flaristan
сообщение Oct 4 2012, 17:59
Сообщение #22


Тролль
****

Класс: Пьяный Мастер
Характер: Chaotic Neutral
Раса: Тварь



По-моему нет необходимости выводить это в отдельно настраиваемую категорию, обычные реакции на событийные триггеры:
- время послеобеденное, погода замечательная – НПС рад и весел, шатается праздно по улочкам, периодами ненадолго вспоминая, куда он шел;
- уже темнеет или вдруг начался дождь/снег – НПС торопится сделать то, что хотел и вернуться под какой-либо кров согреваться;
- «в Богдаде все спокойно» - НПС-страж мерно меряет мостовую шагами от вейпоинта к вейпоинту;
- кто-то кого-то атаковал или другие НПС подняли крик – НПС-стражник спешит на помощь, громко бряцая латными сапогами по мостовой на бегу…
…Ненужно никакого уровня, просто детально запрограммированные события индивидуальные для каждого АИ – смотреться будет намного красивее, чем универсальный переключатель.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
denis0k
сообщение Oct 4 2012, 21:25
Сообщение #23


Level 19
Иконки Групп

Класс: Воин
Характер: Lawful Good
Раса: Человек
NWN: Скриптинг [PW]
Gem of the North
Край Лесов



Оставлю пока ваши споры, займусь реализацией выбора целей. Просто захардкодить цели и сделать вилку из if-elseif не хочу, ща думаю над реализацией через бд и sql, пока выглядит довольно здраво.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
virusman
сообщение Oct 4 2012, 22:18
Сообщение #24


Level 17
Иконки Групп

Класс: Волшебник
Характер: Neutral Good
Раса: Человек
NWN: Скриптинг [PW]
Axistown SR 1.9
NWNX



БД и SQL - это само собой, только я, как правило, подобные данные сразу кэширую в локальных переменных (с возможностью их обновления по требованию) и дальше уже работаю с ними. Всякие AI и прочие штуки постоянно используют свои данные, а лезть каждый раз в базу за ними - слишком дорого.
Пиши в аську, если что. Я всё-таки продумывал эту тему в своё время. (IMG:style_emoticons/kolobok_light/smile.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Anakondar
сообщение Oct 5 2012, 17:38
Сообщение #25


Level 6
**

Класс: Друид
Характер: Chaotic Neutral
Раса: Гном



Вот ещё что нужно реализовать:

Если НПС видит валяющийся бесхозный шмот, он его осматирвает.
Если вещь неотайдентифаеная, пытается отайдентифаить. Если не получается, говорит "Я понятия не имею, что это", иначе "О, это же то-то!"
Далее решает брать или не брать. Если взял, решает надеть или не надеть. Если перегруз, то жалуется и выбрасывает что-нибудь (не обязательно это же).
Продолжает свои дела.

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

И естественно в зависимости от степени гуманоидности все реакции.

Отредактировано:
Да, кстати, сделал только что у себя подбор вещей. Только вот проверку на перегруз не сделал. Есть какая-нибудь функция, которая это проверяет?

Сообщение отредактировал Anakondar - Oct 5 2012, 18:56
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения

6 страниц V   1 2 3 > » 
Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 19th April 2018 - 14:54