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