Гражданский ИИ |
Здравствуйте, гость ( Вход | Регистрация )
Гражданский ИИ |
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 локаций. Что предстоит сделать: самое весёлое - запрограммировать болванчиков на свободу выбора жизненных приоритетов. Нафига: а хз, для разминки мозгов. Ну и мб Экзису всё-таки пригодится. В любом случае, все наработки я выложу в общий доступ. Ах да. Есть хитрые идеи творческого плана? |
Oct 6 2012, 23:02
Сообщение
#2
|
|
Level 19 Класс: Воин Характер: Lawful Good Раса: Человек NWN: Скриптинг [PW] Gem of the North Край Лесов |
Melisse:
Алгоритм Дейкстры для поиска кратчайшего пути по дереву вейпоинтов. При реализации на простых линейных массивах там именно два больших вложенных цикла. Это можно оптимизировать, но нужные структуры данных в нвн просто не сделать (двоичные кучи, фибоначчиевы кучи и т.п.). Не желая рубить с плеча, я перекинул все "массивы" в мускл (заменив 4 массива одной таблицей) и переложил на него же функцию поиска минимального значения по заданным условиям. Результат - никаких тми, скрипт выполняется за 150мс. Для единичного запуска (для каждого нпс раз в несколько игровых часов) это немного. Потестирую эту систему на бОльшем количестве точек и мб перепишу на нвнх без мускла, будет ещё быстрее. Сейчас у меня 2 внешних локации и 1 внутренняя, 63 вейпоинта с 1-6 связями. В городе обычно 2-3 связи, в таверне - паутина из точек (IMG:style_emoticons/kolobok_light/smile.gif) Зачем это нужно? Представь город из 10+ локаций. Берём непися, ставим где угодно и указываем идти куда угодно, хоть через 10 локаций. И он пойдёт (IMG:style_emoticons/kolobok_light/smile.gif) Причём не лбом в стену, а по дорогам, как все нормальные люди. Причём по кратчайшему пути. Нужны лишь вейпоинты, олицетворяющие сеть дорог, и скрипт. Anakondar: Давай всю техническую фигню унесём в соответствующие топики? (IMG:style_emoticons/kolobok_light/smile.gif) |
Текстовая версия | Сейчас: 27th September 2024 - 06:17 |