Так лучше не делать. Иначе нпс будут разбегаться и круги наворачивать пока убегающего не зажмут в угле.
Иммтация жизни достигается более сложными алгоритмами. Во первых нападать на врага или нет : должно регулироваться приоритетами. Во вторых "понятие собственной слабости" должно учитывать наличие союзников вокруг. В третьих не учен момент ~ примерно равных сил.
Вы правы картинка упрощена для лучшего понятия происходящего)
Приоритеты выстраиваются из отношений и анализа силы относительно врага, ну и союзники тоже учитываются) Ну и про примерно равные силы я тож описал в подразделе "Отношения"
Немного дополню свой коммент: Тут все немного сложнее я не стал это в статью писать что бы не усложнять ее, но дополню тут)
1) Отношения к ботам: каждый бот имеет "очки ненависти" к другим ботам от 200 (вражда) до -200 (друзья) — по умолчанию бот имеет отношение к другому боту нейтральное отношение (0), но в зависимости от поведения оно меняется
кто является врагом? — в безопасной/свободной зоне враг это бот отношение с которым находится на уровне "вражда" (200) — в боевой зоне, работает тоже правило + все боты противоположной фракции.
как меняются отношения - отношения с ботами портиться если их бить/заниматься разбоем/убивать их друзей на их глазах - улучшаются когда вы им помогаете или выравниваются до "плохого" после успешного запроса о перемирии
2) Нападать на врага или нет? Когда бот видит другого бота или игрока враждебно настроенного он прикидывает на анализе хп/дпс свои и своих союзников против хп/дпс всех врагов которые находятся в поле зрения.
Если коэффициент == 0 то это значит равные силы, если > 0 то мы имеем большую силу, < 0 мы проигрываем. Он может меняться во время боя т.к. не учитывает кучу параметров.
У каждой роли свой пороговый К сравнивая который он принимает решение отступать или нет. В данном случае "отступать" это пытаться добраться до другого сектора или базы отстреливаясь от врага, а не рандомно бегать от него.
...тут у меня кончились буквы и пришлось удалить половину... :С
Но это конкретно мой случай, а в целом все зависит от того как будут описаны правила и сбор/анализ информации для бота. К минусом моего подхода я могу отнести очень большие конфиги и сложность дебага.
Так лучше не делать. Иначе нпс будут разбегаться и круги наворачивать пока убегающего не зажмут в угле.
Иммтация жизни достигается более сложными алгоритмами.
Во первых нападать на врага или нет : должно регулироваться приоритетами.
Во вторых "понятие собственной слабости" должно учитывать наличие союзников вокруг.
В третьих не учен момент ~ примерно равных сил.
Вы правы картинка упрощена для лучшего понятия происходящего)
Приоритеты выстраиваются из отношений и анализа силы относительно врага, ну и союзники тоже учитываются)
Ну и про примерно равные силы я тож описал в подразделе "Отношения"
Немного дополню свой коммент:
Тут все немного сложнее я не стал это в статью писать что бы не усложнять ее, но дополню тут)
1) Отношения к ботам:
каждый бот имеет "очки ненависти" к другим ботам от 200 (вражда) до -200 (друзья)
— по умолчанию бот имеет отношение к другому боту нейтральное отношение (0), но в зависимости от поведения оно меняется
кто является врагом?
— в безопасной/свободной зоне враг это бот отношение с которым находится на уровне "вражда" (200)
— в боевой зоне, работает тоже правило + все боты противоположной фракции.
как меняются отношения
- отношения с ботами портиться если их бить/заниматься разбоем/убивать их друзей на их глазах
- улучшаются когда вы им помогаете или выравниваются до "плохого" после успешного запроса о перемирии
2) Нападать на врага или нет?
Когда бот видит другого бота или игрока враждебно настроенного он прикидывает на анализе хп/дпс свои и своих союзников против хп/дпс всех врагов которые находятся в поле зрения.
Если коэффициент == 0 то это значит равные силы, если > 0 то мы имеем большую силу, < 0 мы проигрываем. Он может меняться во время боя т.к. не учитывает кучу параметров.
У каждой роли свой пороговый К сравнивая который он принимает решение отступать или нет. В данном случае "отступать" это пытаться добраться до другого сектора или базы отстреливаясь от врага, а не рандомно бегать от него.
...тут у меня кончились буквы и пришлось удалить половину... :С
Но это конкретно мой случай, а в целом все зависит от того как будут описаны правила и сбор/анализ информации для бота. К минусом моего подхода я могу отнести очень большие конфиги и сложность дебага.