skazka_detyam wrote in ai_ru

Category:

игровой ИИ (шутеры) - 2

теперь разовьем классическую модель данную в предыдущем посте (ИИ для шутера)

очевидно что необходимо учитывать разные факторы кроме количества жизни при оценке шанса на победу

собственно предыдущая модель - это сильно редуцированная версия предполагающая по умолчанию что к примеру "оружие" и "позиция" для участников контакта одинаковые

итак оружие

делится на 4 типа:
- ближнего боя (нож, кастет, сабля, бензопила,...) 1-3 метров *
- малого боя (пистолет, пистолет-пулемет, дробовик, ...) 3-20 метров
- среднего боя (автомат, пулемет, гранатомет, ... арбалет, кстати) 20-200 метров
- дальнего боя (скайперки разных видов...) 200-1000 метров и более

*расстояния даются для примера... в вашем игровом мире они могут отличаться

введем поняти "открытости" местности, соответствующее наибольшей эффективности того или иного вида оружия

бой в коридоре - ближний и малый тип оружия - открытость 0
бой на лестничных пролетах - малый - открытость 1
бой между подъездами - средний - открытость 2
между домами - средний и большой - открытость 3

Естественно что дело не ограничивается этими элементами ландшафта :0)

при рисовании карты дизайнер уровня САМОСТОЯТЕЛЬНО расставит маркеры принадлежности конкретного квадрата/хекса к тому или иному типу открытости, руководствуясь выше приведенными числами. (т.е. в редакторе карты требуется ввести эту возможность)
это позволит значительно сэкономить вычислительный ресурс при анализе мобом ситуации - он не анализирует территорию а использует ее аналитический "пререндер", занимающий один байт. :0)

ну и введем фактор анализа ситуации "Эффективность оружия" как соотношение типа оружия и уровня открытости местности

Теперь моб принимая решение о атаке/выжидании/отступлении будет анализировать соотношение своего оружия, типа местности где он находится и типа местности где находится игрок, или иными словами Эффективность оружия Тут и эффекктивность оружия Там (где игрок)

какие есть варианты
(использован простой анализ - моб не знает о нашем оружии, но знает наше местоположение)

1) оружие моба соответствует своей территории и соответствует территории где игрок - нет разницы... т.е. фактор оружие территория не актуален и будут использоваться прочие факторы (т.е. количество жизни и "характер")

2) оружие моба соответствует своей территории, но НЕ соответствует территории игрока - ОЖИДАНИЕ, выманивание мобом игрока на свою территорию

3) оружие моба НЕ соттветствует своей территории, но соответствует территории игрока - АТАКА, с перемещением на территорию игрока

4) оружие моба НЕ соответствует своей территории, и НЕ соответствует территории игрока - ОТСТУПЛЕНИЕ, в сторону ближайшей территории соответсвующей своему типу оружия

ЗАМЕТЬТЕ, что это еще не решение, а только доминирующий фактор - Эффективность оружия
который векторно (т.е. с учетом знака/направления) суммируется с факторами Жизни и Характера

иными словами, моб может выскочить на неподходящую для него территорию, если значимость фактора Жизнь (1% у игрока, 100% у моба) или Характер ("совсем безбашенный камикадзе") будет превышать фактор Эффективности оружия
--------------------
отдельно нужно будет прикрутить мобу такие "мгновенные" модели поведения
• "спрятаться после выстрела"
• "рычание" для выманивания на свою территорию
• сохранение оптимальной дистанции
• ...