Показать сообщение отдельно
Старый 10.02.2008, 15:49   #5
Юзер
 
Аватар для BallWin
 
Регистрация: 09.06.2005
Сообщений: 331
Репутация: 56 [+/-]
Кое-какие соображения
Цитата:
Сообщение от pokibor Посмотреть сообщение
Обычно под скриптами понимают жёстко прописанные сценарии поведения бота, построенные по принципу конечного автомата.
В самом первом приближении на самом низком уровне понимания.
"AI" скриптовых сцен "для сюжета".
Цитата:
Сообщение от pokibor Посмотреть сообщение
Бросающееся в глаза улучшение алгоритма - придумать несколько вариантов ответов на одно и то же состояние и случайным образом выбирать один из них. Это, разумеется, будет выглядеть лучше - но искусственность AI всё равно будет бросаться в глаза. Скриптовый AI неспособен предпринимать неожиданных действий (а ведь порой глупые на первый взгляд действия человека благодаря эффекту неожиданности позволяют ему победить).
Но так и делается нормальный скриптовый AI. Уже много-много лет. Имеется несколько вариантов действий, которые выбираюся либо по вероятностям (чаще всего, часто, иногда, редко, исключительно редко), либо случайно (равновероятные события).
При этом чем больше вариантов, тем меньше бросается в глаза искусственность AI (боты ведут себя по-разному в одних и тех же ситуациях).
Цитата:
Сообщение от pokibor Посмотреть сообщение
Например, какая разница, насколько шаблонно ведёт себя отдельный пехотинец в армии из пяти десятков себе подобных, оставшись без приказов игрока?
Как это "какая разница"?!
Пример: в игре, которой уже 14 лет, со скриптовым AI, предоставленные сами себе бойца могут:
-- ситуация: игрок забыл про подчиненных
а) ловить рыбу
б) стрелять по инопланетным тушканчикам
в) курить "козьи ножки" (здоровенные самокрутки)
г) разбить бивак и греться у костра
д) пить энергетические напитки ("Rocket Fuel")
е) валятся в шезлонгах и читать газеты (как только игрок обращает на них внимание шезлонги немедленно прячутся, газеты выбрасываются)
-- ситуация: игрок переместился в другую часть экрана, или долго не обращает на них внимания
а) осматривать место, в котором игрок их покинул
б) перемещаться в ограниченной области туда-сюда
в) заглядывать за углы зданий
-- ситуация: бойцы только что выполнили приказ и находятся в поле зрения игрока
а) ждут приказов, стоят на месте, крутят головой во все стороны

Т.е. общий тип поведения зависит от времени, которое прошло с последнего приказа игрока. Но вариант выбирается вовсе не жестко.
И больше всего вариантов как раз в случае, когда игрок покинул пехотинцев надолго.
Это естественно, поскольку люди отличаются большОй вариантностью поведения именно тогда, когда их никто не видит. А одна из задач AI, о которой почему-то забывают, - иммитировать поведение человека (если боты человекообразны), либо иммитировать естественное поведение монстров (в соответствии с человеческими понятиями "естественности").

Добавлю, что в отделении бойцов от 3-х, до 4-х. И помимо "типов" имеются и существенные индивидуальные различия. К примеру - один из них может отстать, заглядевшись на прыгающих рыбок, а потом бросится в догонку. Они могут совершать ошибки, т.е. в одном шаге до флага (что означает захват сектора) попав под обстрел развернутся к стреляющему и вести ответный огонь (вместо того, чтобы наплевать на врага и сделать последний шаг). И т.д. А способность совершать ошибки -- тоже присуща человеку и является частью иммитации человеческого поведения.
Вот вам и "скрипты".

Цитата:
Сообщение от pokibor Посмотреть сообщение
CBR можно считать некоторым шагом вперёд по сравнению со скриптами и, соответственно, с упомянутой выше RBS. В основе CBR лежит идея использования предыдущего опыта решения определённых задач для последующих выводов.
Не стоит так считать, во всяком случае в играх. ИМХО
Самообучающаяся система (о ней ведь речь?) может найти применение в игре, безусловно. Но только где? Ранее активно обсуждалась модель игр "подстраиваемых под игрока". Т.е. AI на ходу оценивал уровень сидящего перед ним геймера и подстраивался так, чтобы (как верно было сказано) "красиво проиграть". Однако эти разговоры что-то заглохли. Такой AI получается неоправданно сложным.
Развитый скриптовый AI сегодня удовлетворяет любым требованиям, если сделан с умом. А если нет, то не скрипты виноваты, а с программистом что-то не так. ИМХО
BallWin вне форума