воскресенье, 8 декабря 2013 г.

Система поиска пути для NWN

Года этак с полтора назад Вирусман предлагал сделать для нвн что-то типа гражданского ИИ с примерно таким списком возможностей:

ну есть большой город
4-5 лок внешних + куча внутренних
нужно сделать симуляцию "жизни"
генерятся рандомные неписи с рандомной внешностью, для них генерится примерный маршрут
допустим, время жизни НПС - 12 часов, сначала он пойдёт в таверну на 5 часов, а потом в ювелирный магазин
подсистемы:
- балансировка кол-ва нпс
- генерация внешности
- очередь действий
- pathfinding в городе
- скрипты действий в каждой точке интереса
- оффлоад при отсутствии игроков в локе
т.е. у NPC генерятся действия - сходить в таверну
pathfinding-ом он приходит в таверну
а в таверне есть свой AI-скрипт, который занимает NPC делом
 
Как и любой другой разработке в нвн после падения популярности, этому ИИ тоже было суждено застрять на полпути, но определённый результат всё же вышел. А именно - поиск пути на паутине вейпоинтов и полная оптимизация, включающая полное отсутствие НПС в локациях без игроков, при этом "движение" продолжается в памяти скрипта, и НПС появится на правильном месте либо при заходе игрока в локацию, либо при заходе этого НПС в локацию с игроком.

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

Для примера рисунок расположения точек в таверне:


Надо будет как-нибудь доработать под конкретную задачу, ибо общее решение дальше моего сделать сложно.

Комментариев нет:

Отправить комментарий