Генерация NPC в городе а-ля GTA 1-2

Форум для всего, что связано с ИИ.

Генерация NPC в городе а-ля GTA 1-2

Сообщение jack1111 29 авг 2015, 18:02

Добрый день. Хотелось бы узнать как сделать генерацию NPC (мирные жители) в большом городе.

Делаю игру в жанре TDS как GTA 1-2. Т.е. есть у нас большой город (3 вида - дорога (могу жители ходить), газон (могут если сильно хочется), здания (запретные зоны). Хотелось бы понять как лучше генерировать NPC в этом городе?

1) Следует ли создавать отдельные точки spawn? Если нет то каким образом генерить их тока на дороге или газоне, а не на домах?
2) Т.к. город большой то всех как я понимаю жителей не надо генерить, а генерить только в некоторой области относительно игрока (радиус <= 100) 100 жителей, а всех кто находится за этим радиус удалять (если игрок движется). Игрок же может зайти в зону где практически только здания(запретные зоны), т.е. генерация всех 100 жителей вокруг не удастся.
3) Каким образом проводить респаун жителей, если игрок стоит на месте, а жители умирают потиху (как определять зоны с наименьший плотностью)

Ну или это все надо делать как то по другому. Сможете помочь?
jack1111
UNец
 
Сообщения: 29
Зарегистрирован: 29 авг 2015, 17:50

Re: Генерация NPC в городе а-ля GTA 1-2

Сообщение Cr0c 29 авг 2015, 19:24

Карта плотности населения плюс пул жителей? Статус жителей учитывать при генерации (испуг, агрессия, норма, дружелюбие, етц) для зоны респа (дорога, газон, тротуар).
Аватара пользователя
Cr0c
Адепт
 
Сообщения: 3035
Зарегистрирован: 19 июн 2015, 13:50
Skype: cr0c81

Re: Генерация NPC в городе а-ля GTA 1-2

Сообщение Diab10 29 авг 2015, 19:30

Разделите все задачи на более мелкие части и начните с чего то одного. Сейчас сильно много задач, чтобы что то можно было советовать.
Аватара пользователя
Diab10
Адепт
 
Сообщения: 3401
Зарегистрирован: 17 мар 2011, 20:42
Откуда: 123 RUS
Skype: diab1023

Re: Генерация NPC в городе а-ля GTA 1-2

Сообщение jack1111 29 авг 2015, 19:44

Cr0c писал(а):Карта плотности населения плюс пул жителей? Статус жителей учитывать при генерации (испуг, агрессия, норма, дружелюбие, етц) для зоны респа (дорога, газон, тротуар).


пул жителей - это что?
jack1111
UNец
 
Сообщения: 29
Зарегистрирован: 29 авг 2015, 17:50

Re: Генерация NPC в городе а-ля GTA 1-2

Сообщение jack1111 29 авг 2015, 19:45

Diab10 писал(а):Разделите все задачи на более мелкие части и начните с чего то одного. Сейчас сильно много задач, чтобы что то можно было советовать.


ну я попытался так и сделать. Поведения и генерацию разделил. Пока хочу именно генерацией статических объектов сделать. Вот с чего начать трудно понять. Если 1 то:

- Как сделать генерацию: через точки spawn, либо как то по другому будет лучше? Если точки то их получается надо вручную ставить в большом городе это будет проблемно.

Т.е. вопрос не в конкретной реализации, а какой способ лучший бы узнать, чтобы не тратить время на другие реализации.
jack1111
UNец
 
Сообщения: 29
Зарегистрирован: 29 авг 2015, 17:50

Re: Генерация NPC в городе а-ля GTA 1-2

Сообщение EagleOwle 30 авг 2015, 09:43

Ну, вряд ли у тебя больше десятка префабов домов, вот и сделай точку спавна(пустой ГО) дочерней к дому (на пример возле дверей дома, спавнится типа выходит из дома). И далее расставляя/генерируя дома будешь иметь сразу точку спавна.
Ну а скрипт спавна вешай на ГО точку спавна.
EagleOwle
UNIверсал
 
Сообщения: 493
Зарегистрирован: 02 янв 2015, 16:27

Re: Генерация NPC в городе а-ля GTA 1-2

Сообщение Cr0c 30 авг 2015, 10:20

EagleOwle писал(а):Ну, вряд ли у тебя больше десятка префабов домов, вот и сделай точку спавна(пустой ГО) дочерней к дому (на пример возле дверей дома, спавнится типа выходит из дома). И далее расставляя/генерируя дома будешь иметь сразу точку спавна.
Ну а скрипт спавна вешай на ГО точку спавна.

Если быстро перемещаться, то улицы будут пустые, только возле подъездов будут кучки мобов. Не лучше брать шанс спавна в зависимости от карты плотности? Тогда можно сделать густо- и малонаселенные районы с равномерными плотностями.
Аватара пользователя
Cr0c
Адепт
 
Сообщения: 3035
Зарегистрирован: 19 июн 2015, 13:50
Skype: cr0c81

Re: Генерация NPC в городе а-ля GTA 1-2

Сообщение Diab10 30 авг 2015, 10:32

Делать не точки спавна, а зоны спавна. В зоне рандомно выбирать точку и спавнить
Аватара пользователя
Diab10
Адепт
 
Сообщения: 3401
Зарегистрирован: 17 мар 2011, 20:42
Откуда: 123 RUS
Skype: diab1023

Re: Генерация NPC в городе а-ля GTA 1-2

Сообщение jack1111 30 авг 2015, 10:53

Cr0c писал(а):Если быстро перемещаться, то улицы будут пустые, только возле подъездов будут кучки мобов. Не лучше брать шанс спавна в зависимости от карты плотности? Тогда можно сделать густо- и малонаселенные районы с равномерными плотностями.


Спасибо. А как это сделать?
1) Карта плотности - это будет обычная текстура с точками от 0 до 255 - серая, так? Которую я заранее подготовлю, с рамзером - 1 пиксель, на 1 точку размещения НПЦ. И она будет выглядтиь как квадртаная (каждый квадрат оттенок серого) - ее я преобразую при загрузки в двумерный массив?

2) Карта плотности - учитывает дома (закрытые зоны для размещения НПЦ). Если да то если игрок возле домой - то средняя плотность будет возле домом уменьшаться, и все НПЦ будут на середине улицы. Если по другому, то необходимо будет еще кроме карты плотности - иметь карту доступности (только по домам, статическую) и поверх нее еще накладывать доступность в зависимости от нахождения в точке НПЦ?? А если они будут двигаться - не будет ли это слишком затратно для (100-200 нпц в кадре)?

3) Как я понимаю необходимо иметь 2 радиуса: радиус видимости камеры (10 м) - там не должно быть спауна, и радиус больший (20 м) в том секторе будет спаун происходить. (а что за этим радиусом, объекты будут уничтожаться)
jack1111
UNец
 
Сообщения: 29
Зарегистрирован: 29 авг 2015, 17:50

Re: Генерация NPC в городе а-ля GTA 1-2

Сообщение jack1111 30 авг 2015, 10:55

Diab10 писал(а):Делать не точки спавна, а зоны спавна. В зоне рандомно выбирать точку и спавнить


Их вручную создавать?- ввиде прямоугольников? (просто город большой 1 км^2) либо использовать любое проходимое место как зону спауна (дороги). Если второе, и она у меня не квадратная же, а представляет собой сетку (пересекающиеся прямоугольники)? Зона должна храниться на всю карту города, или тока на радиус возле игрока (20м) и обновляться при движении?
jack1111
UNец
 
Сообщения: 29
Зарегистрирован: 29 авг 2015, 17:50

Re: Генерация NPC в городе а-ля GTA 1-2

Сообщение Diab10 30 авг 2015, 11:00

jack1111 писал(а):
Diab10 писал(а):Делать не точки спавна, а зоны спавна. В зоне рандомно выбирать точку и спавнить


Их вручную создавать?- ввиде прямоугольников? (просто город большой 1 км^2) либо использовать любое проходимое место как зону спауна (дороги). Если второе, и она у меня не квадратная же, а представляет собой сетку (пересекающиеся прямоугольники)? Зона должна храниться на всю карту города, или тока на радиус возле игрока (20м) и обновляться при движении?


Город генерируется программно? Тогда и зоны генерировать.
Зачем же дорогу? Для машин зона спауна - дороги. Для пешеходов - тратуары.
Аватара пользователя
Diab10
Адепт
 
Сообщения: 3401
Зарегистрирован: 17 мар 2011, 20:42
Откуда: 123 RUS
Skype: diab1023

Re: Генерация NPC в городе а-ля GTA 1-2

Сообщение jack1111 30 авг 2015, 11:10

EagleOwle писал(а):Ну а скрипт спавна вешай на ГО точку спавна.


Ну если будет 1000 домов со спауном - выйдет 1000 скриптов - так оптимизации не добьешься. Юнити такое не любит. Лучше 1 скрипт менеджер для всех точек тогда
jack1111
UNец
 
Сообщения: 29
Зарегистрирован: 29 авг 2015, 17:50

Re: Генерация NPC в городе а-ля GTA 1-2

Сообщение jack1111 30 авг 2015, 11:11

Diab10 писал(а):Город генерируется программно? Тогда и зоны генерировать.
Зачем же дорогу? Для машин зона спауна - дороги. Для пешеходов - тратуары.


Нет город создает дизайнер. Пока машин нет, поэтому пока тока дороги и дома - на дорогах могут жители ходить. на домах нет?

Т.е. зоны вручную делать - прямоугольными так?
jack1111
UNец
 
Сообщения: 29
Зарегистрирован: 29 авг 2015, 17:50

Re: Генерация NPC в городе а-ля GTA 1-2

Сообщение Cr0c 30 авг 2015, 12:10

1) Карта плотности - это будет обычная текстура с точками от 0 до 1, масштаб - любой удобный (от 1 пиксель = 1 юнит до 1пиксель = 10 юнитов, к примеру)

2) Карта плотности - учитывает дома (закрытые зоны для размещения НПЦ). Дома учитывает спаунер, генерация должна быть только на "новой" территории, то есть на той, которая получилась из разницы между старой и новой после смещения игрока.
3) три зоны: зона жизни мобов и зона смерти мобов, зона генерации мобов. Новая зона - старая зона = зона генерации; старая зона - новая зона = зона смерти; новая зона - (зона смерти + зона генерации) = зона жизни.
Аватара пользователя
Cr0c
Адепт
 
Сообщения: 3035
Зарегистрирован: 19 июн 2015, 13:50
Skype: cr0c81

Re: Генерация NPC в городе а-ля GTA 1-2

Сообщение jack1111 30 авг 2015, 13:21

спасибо! Все стало яснее, а вот по 1 пункту что значит точки от 0 до 1? - вероятнсоть повяления объекта в данной точки? Если так то сообразил ))
Последний раз редактировалось jack1111 30 авг 2015, 14:24, всего редактировалось 1 раз.
jack1111
UNец
 
Сообщения: 29
Зарегистрирован: 29 авг 2015, 17:50

След.

Вернуться в Искуственный Интеллект

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1