ПрограммированиеФорумИИ

[Прошу совета] Стейтмашина для простого 2Д-ИИ (3 стр)

Страницы: 1 2 3
#30
13:38, 19 июня 2012

killbot [Mike P], идея действительно клёвая!
Интересно, как ты на неё вышел? :)
Долго ль значения балансировал?

#31
14:28, 19 июня 2012

nes
> Это уже добавление индивидуальности и это уже тоже есть у Ламота )

Возможно. Я читал его лет 8 назад и закинул на середине, когда пошла одна бредятина.

PSIAlt
> А что, не плохой механизм чтобы разнообразить ботов.

Ну, в моем случае это простейшие враги для бит-ем-апа, ботами их сложно назвать :)

MoonStone
> Интересно, как ты на неё вышел? :)

Полазил по инету, все пишут про стейты, причем заумные презаумные посты, в которых ни слова о логике взаимодействия стейтов. Получается, что весь ИИ нужно строить на 100500 стейтах и статыщмильёнах субстейтов, чтобы вышло более или менее правдоподобно, потому как переключение между стейтами зашивается строго в результаты их выполнения.

Фиии..

А всякие там матрицы состояний и прочая лабуда - слишком сложно для такого рода противников как мои. Вот я и упростил задачу до двухфакторного полуаналогового селектора :)

#32
14:28, 19 июня 2012

Можно еще масштабировать урон и защиту в соотвествии с уровнем агрессии (бот меньше уделяет защите, больше нападению). Тогда получается что с ростом кол-ва врагов сложность замочить растет не линейно и убивать их в лоб по одному может оказаться проблематичным.. FearRage действительно хорошее подспорье для всяких фичь)

#33
15:05, 19 июня 2012

PSIAlt
> Можно еще масштабировать урон и защиту в соотвествии с уровнем агрессии (бот
> меньше уделяет защите, больше нападению)

О. А это идея!

#34
16:01, 19 июня 2012

PSIAlt
> Можно еще масштабировать урон и защиту в соотвествии с уровнем агрессии (бот
> меньше уделяет защите, больше нападению). Тогда получается что с ростом кол-ва
> врагов сложность замочить растет не линейно и убивать их в лоб по одному может
> оказаться проблематичным.. FearRage действительно хорошее подспорье для всяких
> фичь)
это уже скил берсик, или состояние берсик/ярость.


killbot [Mike P]
упрощенно контекст - стратегия поведения.
текущей контекст - можно сказать текущая стратегия поведения.
текущей контекст имеет - мощность которая спадает со временем. простой вариант W(t)=1/(t*0.1+1).

любое воздействие на персонажа имеет мощность.
так вот каждый так, считать все мощности всех возможных контекстов+мощность текущего контекста нормализовать их  и это будет вероятности нового контекста, бросать кости и оставлять текущий или брать новый контекст.

идея в том что обычное воздействие имеет мощность например порядок 1, а когда контекст стал текущем его мощность берется порядка 10, и по формуле вероятность смены контекста в течение n-сек мала ( но есть ).  то есть если мы приняли решение атаковать в ближнем бою то мы будем пытаться его выполнить. Но если по нам попали отстрелили шарик то мощность этого воздействия будет настолько сильно то оно перекроет мощность текущего контекста и возможно будет принято решение бежать спасть оставшийся шарик.

FearRage:
ярость имеет свое воздействие.
страх имеет свое воздействие.
ложиться легко на данную модель.


GluKoBug
> Отличная идея! Сам придумал?
угу, каждое поле это заливка, алгоритм нахождение кротчайшего пути. просто наступает момент когда пересчет 'каждого' юнита с 'каждым' начинает работать медленней чем пересчет полей для всего поля.
GluKoBug
> > a,b,c констант
> Только вот может возникнуть такая ситуация, что каждый градиент вроде указывает
> верное направление, но результат умножения и сложения может указать на
> бессмысленное.
> Например: вектор опасности тянет назад, жертвы - вперед и чуть вправо. Может
> получиться так, что бот побежит вправо, а в этом смысла особо нет.
> Надо чтобы эти коэффициенты менялись в зависимости от ситуации и отличались на
> порядок.
как раз в том то и фишка, что игрок бот побежит в право НО по кругу, будет пытаться зайти за спину. а если 2 бота..

#35
11:47, 28 июня 2012

Настольная книга по ИИ, описано множество подходов: http://aima.cs.berkeley.edu/

Страницы: 1 2 3
ПрограммированиеФорумИИ

Тема в архиве.