Veliri. Дневник разработки 3

искусственный интеллект

Veliri. Дневник разработки 3
2323

Так лучше не делать. Иначе нпс будут разбегаться и круги наворачивать пока убегающего не зажмут в угле. 

Иммтация жизни достигается более сложными алгоритмами. 
Во первых нападать на врага или нет : должно регулироваться приоритетами. 
Во вторых "понятие собственной слабости" должно учитывать наличие союзников вокруг. 
В третьих не учен момент ~ примерно равных сил. 

3
Ответить

Вы правы картинка упрощена для лучшего понятия происходящего)

Приоритеты выстраиваются из отношений и анализа силы относительно врага, ну и союзники тоже учитываются)
Ну и про примерно равные силы я тож описал в подразделе "Отношения"

Ответить

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

1) Отношения к ботам:
каждый бот имеет "очки ненависти" к другим ботам от 200 (вражда) до -200 (друзья)
— по умолчанию бот имеет отношение к другому боту нейтральное отношение (0), но в зависимости от поведения оно меняется

кто является врагом?
— в безопасной/свободной зоне враг это бот отношение с которым находится на уровне "вражда" (200)
— в боевой зоне, работает тоже правило + все боты противоположной фракции.

как меняются отношения
- отношения с ботами портиться если их бить/заниматься разбоем/убивать их друзей на их глазах
- улучшаются когда вы им помогаете или выравниваются до "плохого" после успешного запроса о перемирии

2) Нападать на врага или нет?
Когда бот видит другого бота или игрока враждебно настроенного он прикидывает на анализе хп/дпс свои и своих союзников против хп/дпс всех врагов которые находятся в поле зрения.

Если коэффициент == 0 то это значит равные силы, если > 0 то мы имеем большую силу, < 0 мы проигрываем. Он может меняться во время боя т.к. не учитывает кучу параметров.

У каждой роли свой пороговый К сравнивая который он принимает решение отступать или нет. В данном случае "отступать" это пытаться добраться до другого сектора или базы отстреливаясь от врага, а не рандомно бегать от него.

 ...тут у меня кончились буквы и пришлось удалить половину... :С

Но это конкретно мой случай, а в целом все зависит от того как будут описаны правила и сбор/анализ информации для бота. К минусом моего подхода я могу отнести очень большие конфиги и сложность дебага.

Ответить