killbot [Mike P], идея действительно клёвая!
Интересно, как ты на неё вышел? :)
Долго ль значения балансировал?
nes
> Это уже добавление индивидуальности и это уже тоже есть у Ламота )
Возможно. Я читал его лет 8 назад и закинул на середине, когда пошла одна бредятина.
PSIAlt
> А что, не плохой механизм чтобы разнообразить ботов.
Ну, в моем случае это простейшие враги для бит-ем-апа, ботами их сложно назвать :)
MoonStone
> Интересно, как ты на неё вышел? :)
Полазил по инету, все пишут про стейты, причем заумные презаумные посты, в которых ни слова о логике взаимодействия стейтов. Получается, что весь ИИ нужно строить на 100500 стейтах и статыщмильёнах субстейтов, чтобы вышло более или менее правдоподобно, потому как переключение между стейтами зашивается строго в результаты их выполнения.
Фиии..
А всякие там матрицы состояний и прочая лабуда - слишком сложно для такого рода противников как мои. Вот я и упростил задачу до двухфакторного полуаналогового селектора :)
Можно еще масштабировать урон и защиту в соотвествии с уровнем агрессии (бот меньше уделяет защите, больше нападению). Тогда получается что с ростом кол-ва врагов сложность замочить растет не линейно и убивать их в лоб по одному может оказаться проблематичным.. FearRage действительно хорошее подспорье для всяких фичь)
PSIAlt
> Можно еще масштабировать урон и защиту в соотвествии с уровнем агрессии (бот
> меньше уделяет защите, больше нападению)
О. А это идея!
PSIAlt
> Можно еще масштабировать урон и защиту в соотвествии с уровнем агрессии (бот
> меньше уделяет защите, больше нападению). Тогда получается что с ростом кол-ва
> врагов сложность замочить растет не линейно и убивать их в лоб по одному может
> оказаться проблематичным.. FearRage действительно хорошее подспорье для всяких
> фичь)
это уже скил берсик, или состояние берсик/ярость.
killbot [Mike P]
упрощенно контекст - стратегия поведения.
текущей контекст - можно сказать текущая стратегия поведения.
текущей контекст имеет - мощность которая спадает со временем. простой вариант W(t)=1/(t*0.1+1).
любое воздействие на персонажа имеет мощность.
так вот каждый так, считать все мощности всех возможных контекстов+мощность текущего контекста нормализовать их и это будет вероятности нового контекста, бросать кости и оставлять текущий или брать новый контекст.
идея в том что обычное воздействие имеет мощность например порядок 1, а когда контекст стал текущем его мощность берется порядка 10, и по формуле вероятность смены контекста в течение n-сек мала ( но есть ). то есть если мы приняли решение атаковать в ближнем бою то мы будем пытаться его выполнить. Но если по нам попали отстрелили шарик то мощность этого воздействия будет настолько сильно то оно перекроет мощность текущего контекста и возможно будет принято решение бежать спасть оставшийся шарик.
FearRage:
ярость имеет свое воздействие.
страх имеет свое воздействие.
ложиться легко на данную модель.
GluKoBug
> Отличная идея! Сам придумал?
угу, каждое поле это заливка, алгоритм нахождение кротчайшего пути. просто наступает момент когда пересчет 'каждого' юнита с 'каждым' начинает работать медленней чем пересчет полей для всего поля.
GluKoBug
> > a,b,c констант
> Только вот может возникнуть такая ситуация, что каждый градиент вроде указывает
> верное направление, но результат умножения и сложения может указать на
> бессмысленное.
> Например: вектор опасности тянет назад, жертвы - вперед и чуть вправо. Может
> получиться так, что бот побежит вправо, а в этом смысла особо нет.
> Надо чтобы эти коэффициенты менялись в зависимости от ситуации и отличались на
> порядок.
как раз в том то и фишка, что игрок бот побежит в право НО по кругу, будет пытаться зайти за спину. а если 2 бота..
Настольная книга по ИИ, описано множество подходов: http://aima.cs.berkeley.edu/
Тема в архиве.