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

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

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

Сообщение Cr0c 30 авг 2015, 13:32

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

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

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

Cr0c писал(а):Это по желанию: либо вероятность появления (самое частое использование и самое простое), либо "плотность населения" (редко используют, более сложно, но и более реалистично). Выбирайте первый вариант, Вам пока и этого хватит, чтобы наиграться с коэффициентами )))


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

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

Сообщение Diab10 30 авг 2015, 17:14

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


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

Т.е. зоны вручную делать - прямоугольными так?


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

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

Сообщение Cr0c 30 авг 2015, 17:24

jack1111 писал(а):С вероятностью я понял, спасибо ) - с плотностью пока не особо (думаю что плотность буду учитывать отдельно (считать среднюю вероятность поялвения в радиусе от игрока) и спаунить дополнительно, когда NPC уничтожаться пока по таймеру, чтобы плотность постоянно поддерживалась).

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

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

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

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



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

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

Сообщение Cr0c 30 авг 2015, 19:28

Смерть моба должна вызывать событие спавна очередного моба, по идее.
Да и тип смерти можно учитывать: если по времени, то можно за границей камеры спавнить и направлять мимо игрока - для создания эффекта независимости мира; если насильственная смерть, то спавнить за границей камеры и направлять от игрока - тогда будет эффект убегающей толпы мобов. В любом случае за границей камеры спавнить, независимо от поведения мобов. Дело в том, что на экране игрока УЖЕ будет необходимая плотность популяции, Вам будет необходимо только поддерживать её.
Аватара пользователя
Cr0c
Адепт
 
Сообщения: 3035
Зарегистрирован: 19 июн 2015, 13:50
Skype: cr0c81

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

Сообщение MF_Andreich 30 авг 2015, 19:35

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

Не всегда, а то конвеер смерти получается... вообще в играх типа ГТА 1-2 мобы не спавнились за пределами экрана, вообще я такого не помню ) в 3 ГТА мобы и машины вообще могли пропасть уйдя из обзора.
Holly Shovel Team
Аватара пользователя
MF_Andreich
Старожил
 
Сообщения: 924
Зарегистрирован: 20 июн 2013, 10:09
Откуда: Барнаул
Skype: mf_andreich
  • ICQ

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

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

MF_Andreich писал(а):
Cr0c писал(а):Смерть моба должна вызывать событие спавна очередного моба, по идее.

Не всегда, а то конвеер смерти получается... вообще в играх типа ГТА 1-2 мобы не спавнились за пределами экрана, вообще я такого не помню ) в 3 ГТА мобы и машины вообще могли пропасть уйдя из обзора.

Мобы будут существовать только внутри активной зоны вокруг игрока же. Это может быть 1.5-2 размера видимой области, например. При движении игрока мобы будут исчезать, конечно, они же будут попадать в зону "смерти", то есть переспавниться в зоне "генерации". А за краем экрана спавнить - чтобы не было внезапного появления мобы на краю экрана, чтобы мобы могли сами придти в зону видимости камеры из-за края экрана и вообще чтобы мир реагировал на области немножко больше экрана. Я же не говорил, что активная зона будет размером с карту :)
Аватара пользователя
Cr0c
Адепт
 
Сообщения: 3035
Зарегистрирован: 19 июн 2015, 13:50
Skype: cr0c81

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

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

http://clip2net.com/s/3mOjyWG - картинка
http://toolson.net/ImageData/GifAnimation/3149822.gif - видео Гифка

Нагенерил целую толпень на 1 км квадратном :).

Единственное что карта вероятности должна полностью совпадать с городом созданным, как бы это так конвертить чтобы каждый раз ручками не перерисовывать, когда город меняется :)

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

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

Сообщение Cr0c 31 авг 2015, 00:54

jack1111 писал(а):Единственное что карта вероятности должна полностью совпадать с городом созданным, как бы это так конвертить чтобы каждый раз ручками не перерисовывать, когда город меняется :)
Завтра буду думать как поддерживать плотность, если игрок стоит, а НПЦ уничтожаются.

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

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

Сообщение gnoblin 31 авг 2015, 01:51

на гамасутре прикольная статья есть, скоро на цп должны запостить перевод - 2d procedural world generation. Там и про город, и про нпц.
skypeid: madkust
Мои крайние проекты:
Убойный Хоккей
Cube Day Z (альфа)
Аватара пользователя
gnoblin
Адепт
 
Сообщения: 4633
Зарегистрирован: 08 окт 2008, 17:23
Откуда: Минск, Беларусь
Skype: madkust
  • Сайт

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

Сообщение jetyb 31 авг 2015, 08:19

Жители ведь должны как-то двигаются? И не везде.
Значит должна быть какая-то NavMesh их типичного движения (тротуары там, площади, должна быть еще зона нетипичного движения - зона по которой будут бегать расстреливаемые люди, или преследовать копы). Вот по этой меши народ и надо случайно расставлять.
И да, проверять еще, чтобы друг в друге боты не генерились.
Вероятность появления - какая там текстура? Это как микроскоп в руке неандертальца. Куча лишних данных, и толком преимуществ текстуры использовать нельзя.
Просто достаточно повесить на объект с NavMesh-ем скрипт с информацией об плотности населения меши.
jetyb
Адепт
 
Сообщения: 1486
Зарегистрирован: 31 окт 2011, 17:21

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

Сообщение Cr0c 31 авг 2015, 08:48

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

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

Сообщение jetyb 31 авг 2015, 10:10

Система нахождения пути тут по-любому нужна.
Мне кажется, если бы ТС мог бы сделать что-то лучше NavMesh, он бы тут тему с более простыми вопросами не создавал.
jetyb
Адепт
 
Сообщения: 1486
Зарегистрирован: 31 окт 2011, 17:21

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

Сообщение Cr0c 31 авг 2015, 10:16

jetyb писал(а):Вероятность появления - какая там текстура? Это как микроскоп в руке неандертальца. Куча лишних данных, и толком преимуществ текстуры использовать нельзя.

Текстурой проще всего задавать - нарисовал, загрузил в массив или еще куда и работай. И визуально проще.
Аватара пользователя
Cr0c
Адепт
 
Сообщения: 3035
Зарегистрирован: 19 июн 2015, 13:50
Skype: cr0c81

Пред.След.

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

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

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