PDA

Просмотр полной версии : Интеллект пятой точки: Письмо номера из "Мании" 08/2007


Старпом
12.09.2007, 03:01
ИНТЕЛЛЕКТ ПЯТОЙ ТОЧКИ

Здравствуйте, Светлана, Старпом, а также многоуважаемый и жутко брутальный Ктулху. Кстати, товарищ Ктулху, очень рад, что вы появились среди ведущих — в «Почте», на мой взгляд, давно не хватало именно вашей категоричности, всеобъемлющего несогласия и, как это ни странно звучит, нетерпимости к откровенной халтуре со стороны разработчиков и авторов некоторых писем в журнал.
Но хватит дифирамбов, плавно перейдут непосредственно к главной теме письма. В журнале вы уже много раз разбирали проблему искусственного интеллекта. Но очень мало писали о том, почему же на современной, на мой взгляд, очень мощной компьютерной базе до сих пор не реализовали очень-очень крутой AI. Ведь, по сути, ситуация в современных играх мало отличается от той, что была в выходящих три-четыре и более лет назад.
Если сравнивать, скажем, с первым Doom, то прогресс, конечно на лицо. Но если проводить аналогии с тем же Quake (первым и вторым), с Venom (а ему уже сколько лет стукнуло!), то получается что AI и не развивается вовсе. Прогресс стоит на месте. Куда же смотрят разработчики? Почему графика становится значительно лучше, почему сюжеты часто делаются сложнее, а интеллект противников топчется на месте?
Я уже 4 года изучаю программирование и сейчас понимаю, что, в принципе, можно было бы реализовать куда лучший искусственный интеллект, чем в подавляющем большинстве компьютерных игр. То есть даже сейчас, хотя я еще далеко не профессионал, если мне дать задание сделать классный умный интеллект в каком-нибудь «Сталкере», то я, возможно, справлюсь с задачей лучше, чем создатели игры.
Но! Я не верю, что они глупее меня или хуже знают программирование. А это значит только одно — есть какие-то неизвестные мне ограничения и проблемы. Расскажите, пожалуйста, в чем они состоят.
Ведь я не один такой. Даже на вашем форуме есть несколько десятков тем, посвященных именно проблеме AI в играх. Причем мне интересно было бы услышать не просто перечень проблем, но и возможные варианты выхода из них. Вы ведь постоянно общаетесь с разработчикам, наверняка, они делились с вами мыслями по этому поводу.
С уважением, Николай Косарев (г. Киев).


АЛЕКСЕЙ МАКАРЕНКОВ
:eek: (Трагично вздыхал и разглагольствовал)

Вопрос — в самое яблоко. Червивое и подгнившее с краев. AI в компьютерных играх, действительно, развивается крайне медленно. Еле-еле перебирает слабенькими ложноножками в огромной грязной луже прогресса. Давайте для начала разберемся с вопросом, почему геймеры так негодуют по поводу недостаточно качественного AI и существует ли идеальный искусственный интеллект, о котором все так мечтают.
От любого компьютерного противника геймер в первую очередь ждет действий адекватных — внимание! — своему собственному поведению. Звучит это странно, но именно так и есть. Для любого геймера идеал AI — это такое поведение компьютерных болованчиков, которое полностью соответствует ожиданию данного конкретного игрока. Стоит ли говорить, что ожидания у всех разные.
Представьте себе ну, скажем, тактический экшен. Играет в него начинающий геймер, который тактикой в целом не очень-то интересуется, как действуют войска специального назначения в боевой ситуации не знает, основных приемов полевой стратегии не изучал. Если в игре есть хоть сколько-нибудь слаженное действие компьютерных оппонентов и их (даже не в тему) выкрики о перегруппировках будут выглядеть как очень умный AI. Просто потому, что наш геймер не представляет себе, как оно должно быть на самом деле, он банально не знает, чего ждать от игры и воспринимает то, что есть как идеал.
А вот вам другая ситуация. Играет в тактический экшен спецназовец, который и пороху в реальных стычках уже нюхнул, и о тактике в локальных боевых ситуациях знает больше, чем любой генерал. Для него практически любой AI будет некачественным. Потому, что для него мерило качества — точная имитация тактики боя в реальных условиях. С точностью до миллиметра.
У геймеров же требования к AI варьируют между этими двумя описанными крайностями. И какие запросы у каждого предугадать заранее невозможно. А вот что очень даже реально, так это собрать статистику и делать искусственный интеллект таким, каким он устраивает подавляющее большинство геймеров. Большинство же, как это ни печально, не очень требовательно и совершенно не хардкорно. Это мы тут в «Игромании» все из себя такие подкованные и требовательные. Это и к вам, кстати, товарищи читатели, относится. Вы же «Игроманию» не просто так читаете, а в частности потому, что ваши запросы к играм столь же высоки, как и наши.
Но факт на лицо — у большинства требования ниже. И игры делаются с расчетом на них. Мы же можем хоть слюной изойти, лучше не станет до тех пор, пока большая часть геймеров во всем мире не станут хоть немного хардкорщиками.
Но это лишь одна сторона медали. Есть на пути классного AI и вполне технические проблемы. Одна из главных — крайне сложно, почти невозможно, реализовать достоверное поведение врагов скриптовыми методами. Скрипт это, по сути, всегда триггер (двух или многопозиционный), работающий по схеме «Если А, то Б». Компьютерный болванчик, оказавшись в какой-то игровой ситуации, всегда действует именно по такому алгоритму. Прописали ему разработчики возможность убегать или прятаться в ответ на меткий выстрел в пятую точку — будет убегать или прятаться. Научили метко стрелять главному герою в репу в ответ на попытку заколоть ножом — будет метко стрелять.
Человек, если утрировать, в жизни тоже действует по триггерному алгоритму. Коснулся горячего чайника — отдернул руку. Съел несвежую колбасу — вывернуло наизнанку. Увидел красивую девушку на улице — заголосил, забегал, телефончик попросил.
Казалось бы, проблемы нет. Знай себе программируй «человеческие триггеры» и делай AI очень крутым. Ан, нет! У живого человека, во-первых, таких триггеров несметное множество. Во-вторых, каждый из них имеет очень широкий вариативный ряд. То есть в одной и той же ситуации разные программы поведения реализуются по-разному. Иногда очень похоже, иногда совершенно непохоже, но — отличаются всегда у одного и того же индивида. Как бы грубо это не звучало, но интеллект, разум и сознательное мышление — это и есть число вариаций заложенных в каждого из нас триггеров. Чем этих алгоритмов больше, тем выше интеллект.
Вот мы и вышли с вами на вполне конкретную проблему разработчиков компьютерных игр. Можно было бы запрограммировать весь спектр триггеров живого человека. Но это — колоссальная по объему работа. Миллионы разных ситуация, миллиарды возможных ответных реакций на эти ситуации. И несметное число вариантов одной и той же реакции.
Баста, карапузики! Приехали. За всю жизнь ни один программист не напишет столько триггеров. Ни один современный процессор столько не просчитает. Поэтому девелоперы выбирает только основные ситуации реагирования (триггеры) и программируют только их, каждую с минимумом вариантов.
Что самое интересное, на нынешней технической базе вполне можно создать первоклассный AI (как глобальный для RTS, так и локальный, скажем, для экшенов), если освободить процессор от просчета графики, геометрии огромных уровней и прочего, прочего, прочего. Вот только продать игру с графикой уровня первого Quake и с уровнями размером в пару комнат — не удастся. Вот и вкладываются игрострой-компании в первую очередь в графику и дизайн, а AI разрабатывается чуть ли не по остаточному принципу. Такие дела.

СВЕТЛАНА ПОМЕРАНЦЕВА
:sml: (Пронзала девелоперов мыслью)

Мне кажется, что проблема современного AI не столь глобальна, хотя и это, конечно, тоже. Думаю, что для того, чтобы все остались довольны, совсем не обязательно делать полную имитацию поведения людей. Все дело не в широте охвата, а в невнимании к деталям.
Мне, как заядлой геймерше, было бы достаточно, чтобы монстры и другие враги в играх делали все то же, что делают и сейчас. Лишь бы они все действия осуществляли реалистично. Приведу несколько простых примеров. Если я выстрелила в монстра, и он начал убегать, то чтобы делал он это не просто по стандартной схеме, а, скажем, в некоторых случаях сломя голову, иногда прихрамывая на ногу, в которую я попала. Или падал на землю и пытался отползти по-пластунски.
Если враг спрятался в укрытие, то для достоверности, он мог бы настороженно оттуда выглядывать. Высунет только голову и снова спрячется. Или всего лишь оружие из-за преграды подымет и даст пару очередей.
С командными действиями врага та же ситуация. Когда группа неприятелей, управляемых AI, берет меня в кольцо, я прощу им неточности тактики, если они будут по ходу дела переговариваться, обмениваться разными жестами (прикрой меня, атакуем, отступаем). Ведь это запрограммировать совсем несложно. Триггеров, о которых говорил Алексей, нужно всего ничего. От силы раза в полтора больше, чем делается в большинстве современных игр.
То есть, на мой взгляд, проблема не столько в AI, сколько в его имитации. А она основана на скриптах лишь отчасти, в основном это анимация. И вот мы снова вышли на графику. Разработчики просто не так ее совершенствуют. Ну, сделайте вы поменьше полигонов в модельке, только различных фаз анимации прибавьте и на скрипты «повесьте». Мы же, геймеры, все в восторге будем и звонкой монетой за вашу игру проголосуем.
Кстати, пока не забыла, скажу очень важную вещь. Многие разработчики часто говорят, что они разработали супер-новаторскую, неповторимую систему естественного поведения врагов, совсем не завязанную на скрипты. Мне очень неприятно читать подобные анонсы, потому что я точно знаю, что любой AI так или иначе основан именно на скриптах. По-другому просто быть не может. Другое дело, что скрипты можно использовать с умом, а можно совершенно бездумно, во вред геймплею.

Dalwynd
12.09.2007, 03:10
Старпом прав: казуальному геймеру особой тактики и не нужно. Поставил сложность Easy, взял самый крутой автомат и косит противников пачками. И ему хорошо, и разработчикам проще. А ботам все равно, им в любом случае умирать, как бы их не программировали.

RPG MAN
14.09.2007, 18:47
В играх вроде Quake, то есть в изначально созданных для киберспорта плохой AI ботов почти наверняка приведёт к провалу игры. Надо же на ботах тренироватся перед выходом в сеть. AI нужен играм, однозначно. Хотя бы средний по качеству.

PaCHeR
14.09.2007, 19:12
ИМХО: Боты нужны такие, что бы они могли реально тебе помочь в игре, ну и конечно создать тебе эти проблемы. Я поражаюсь некоторым скриптам, ну когда бот выбегает вперёд тебя из - за угла и его убивают с первой пули каким - то простеньким пистолетиком. Я не понимаю зачем такую программу писать, ведь в реальных условиях вероятность такого "выпадка" практически нулевая. Может это и красиво, когда твой товарищь умирает прямо перед тобой предупреждая, что там опасность, но это глупо!!!

DEADushkaRUS
14.09.2007, 19:17
В играх вроде Quake, то есть в изначально созданных для киберспорта плохой AI ботов почти наверняка приведёт к провалу игры. Надо же на ботах тренироватся перед выходом в сеть. AI нужен играм, однозначно. Хотя бы средний по качеству.
:head: На ботах тренироваться в любом случае плохо. Даже если ты новичок, всё равно начинать нужно сразу с живых противников. А на ботах можно разве что меткость отточить.

Игры, в которых AI хорош (относительно) редки. Геймплей от плохих ботов страдает. Сделать хороший AI (относительно :rolleyes: ) можно, есть тому несколько примеров. Лично мне в этом плане понравился F.E.A.R.

RPG MAN
14.09.2007, 20:18
В F.E.A.R AI безусловно хорош. Многие, правда, из за этого не могут его пройти. Конечно и у него есть недостатки, но пока он лучший в своём плане. А из RPG AI оличный у Oblivion.

Dalwynd
14.09.2007, 23:59
В играх вроде Quake, то есть в изначально созданных для киберспорта плохой AI ботов почти наверняка приведёт к провалу игры. Надо же на ботах тренироватся перед выходом в сеть. AI нужен играм, однозначно. Хотя бы средний по качеству.
Брррр... В мультиплеерных играх боты всегда на последнем месте в списке разработки. Какой смысл писать хороших ботов, когда с ними будут играть только люди, не имеющие нормального доступа сети, т.е. меньшинство?

Krutoy men
15.09.2007, 00:45
Да что автор говорит, напишет он искусственный интеллект лучше бригады профессионалов. Я не сомневаюсь в его талантах, напишет (кстати, сколько у него это времени займёт?). Но одно дело накодить, совсем другое - когда AI интегрируется в движок. Самые прекрасные и умные схемы работы там рассыпаются, "актор" застревает в физических объектах, вламывается в стены, палит слишком метко или в возух... Поймите, господа, AI в играх должен не обыгрывать игрока (я лично не получу удовольствия от сотой загрузки после пули в лоб от предугадывающего мои действия врага), а красиво отдаваться ему. И я буду это повторять, потому что игры развлекают. Хотите настоящего врага? Пожалуйте в онлайн, там, как правило, в роли AI оказывается сам недовольный со счётом 50 гибелей на 5 фрагов.

Враги в играх - статисты, их задача доставлять удовольствие имитацией сопротивления, чем она красивее и достоверней, тем лучше. И я считаю, что проблемы ИИ сейчас в играх не существует. Есть куда стремиться графике, звуку, средствам управления и геймплею, но не ИИ. Всё. Баста. Его просто надо научить не делать глупостей, достоверно кривляться перед игроком и выпускать на свободу.

bubli4ek
15.09.2007, 10:59
Хотите настоящего врага? Пожалуйте в онлайн, там, как правило, в роли AI оказывается сам недовольный со счётом 50 гибелей на 5 фрагов.
Враги в играх - статисты, их задача доставлять удовольствие имитацией сопротивления, чем она красивее и достоверней, тем лучше. И я считаю, что проблемы ИИ сейчас в играх не существует. Есть куда стремиться графике, звуку, средствам управления и геймплею, но не ИИ. Всё. Баста. Его просто надо научить не делать глупостей, достоверно кривляться перед игроком и выпускать на свободу.
Согласен ,скорей всего надо научить не быть предсказуемым,ведь больше всего раздрожает заскриптованость некотры сцен и действий,когда ты знаеш что будет именно так!онлайн не всегда лекарство от недостатков искуственного интелекта!и по поводу 50 гибелей на 5 фрагов,нге раз был свидетелем реплик(а гля тупые враги давай лутче по нету в контру,а ты шо меня убивают,не давай обратно)в клуах часто такое было!))

Dalwynd
15.09.2007, 12:23
Чем лучше AI, тем красивее он отдается игроку и тем больше игрок получает удовольствие. Что приятнее: убить террориста, тупо тыкающего стену дулом автомата или убить его же после яростной перестрелки и обходных маневров?

DevilArsa
15.09.2007, 13:19
На ботах тренироваться в любом случае плохо. Даже если ты новичок, всё равно начинать нужно сразу с живых противников.
ну да... вот купил я полгода назад ХалфЛайф2 дефмач... установил, вошел... все там уже крутые папки, а я нуб зеленый... неделю где-то искал сервак где играют такие же новички как и я чтобы научиться... а если бы были боты, то натренировался бы на них... сначала на лёгких, потом на средних и так далее...

поэтому думаю что AI нужно делать хорошо всегда.... главное чтобы этот AI был настраивамым...

RPG MAN
15.09.2007, 14:07
В любом случае хороший AI никогда не лишний.

realminer
25.09.2007, 09:04
Ну ладно, допустим в шутерах AI сделать трудно, если забыть про Fear. Но была неплохая игрушка Warzone, играл в версию для PS One. Там можно было задавать три режима боя для юнитов, с учётом степени повреждения. Задал и голова не болит: знаешь, что танк не погибнет, а вернётся и отремонтируется.
Можно ведь в стратегиях делать через меню стандартные команды и условия и степени их выполнения, а не обычные: движение, патруль и т.д. От них всё равно толку мало.