redis: (Default)
redis ([personal profile] redis) wrote2008-06-13 11:36 am

Деградация AI

Когда был Ленин маленький, с кудрявой головой... то не было еще Интернета и даже локальных сетей. Любой творец компьютерных игр был обречен на создание адекватного соперника для играющего в игру человека. На создание того самого AI. Хочешь - не хочешь, а вынь да положь.

Не знаю, какая сволочь первой придумала, что AI не нужен, если есть сетка. Но с тех пор - пошло-поехало, компьютеры все мощнее, графика все красивеее, а AI... в лучшем случае застыл на уровне середины девяностых. Угу, на том самом уровне появления массового Интернета.

Я не люблю массовые онлайн-игры. Я люблю играть в удобное для меня время, "мягкое кресло, клетчатый плед", кнопка "пауза" и чашка чая рядом. Даже онлайн-шахматы исключают подобное приятное времяпровождение, что же говорить про MMORPG?.. Остаются разве что походовые стратегии.

Одинок ли я в своем стремлении к игровому одиночеству? Вряд ли. Рискну предположить, что популярность массовых онлайн-игр связана именно с тем, что реальные игроки ведут себя иначе, чем компьютерные. На мой взгляд, это связано скорее с нежеланием компаний писать качественный AI, чем с невозможностью его написания.

Сложно ли написать качественный AI? Не знаю, но попробую рассмотреть этот вопрос с позиции опытного дилетанта.

Реальный мир оцифровке не поддается - он безгранично велик. Любая игра представляет собой законченную и ограниченную модель части реального мира. Следовательно, ее можно описать математически. Следовательно, набор правил и поведений игры конечен и может быть "объяснен" компьютерному AI.

Пример положительный. Спектрумовские игры "Arnhem" и "Desert Rats": пошаговые стратегии. Oперация "Market Garden" и вся кампания в северной Африке соответственно. Наземные действия, снабжение, десанты, обходы, осады, подкрепления. Квадратная "спектрумовская" графика, но великолепный AI, обычно непредсказуемый и труднопобеждаемый. Военные шахматы, так сказать.

Пример отрицательный. Вышедшая через без малого двадцать лет(!) после "Арнима" писишная "War in the Pacific", гексагональная походовая стратегия. Тихий океан, военно-морские и наземные действия, воздушные операции, то же снабжение, те же десанты. Шаблонный, откровенно тупой AI. В чем разница? Она очень проста - к выходу "WitP" появилась возможность играть по переписке. После этого на хоть сколько-нибудь приличном AI можно сэкономить. Двадцать лет, прогресс отрицательный.

AI в "WitP" постоянно лажает, совершает одни и те же ошибки, играть против него просто скучно. Единственным спасением является игра на "тяжелом" уровне, при котором компьютеру даются определенные бонусы, а игроку создаются искусственные проблемы. На мой взгляд, это еще более дикий подход, чем игра в онлайн - правила должны быть одинаковы для всех! Я не представляю себе, чтобы Каспарова в матче против "Deep Blue" попросили бы убрать с доски ладью - чтобы играть на уровне "hard". Походовые стратегии - те же шахматы.

"Арним" и "WitP" отличаются масштабами, да. "WitP" по своему размеру больше раз в сто, но компьютеры стали мощнее в тысячи раз. Вычислительной мощности для AI более чем достаточно. Я не Каспаров, "Deep Blue" на меня напускать не надо, меня победить проще.

Взялся бы я написать разумный AI для WitP, который будет лучше встроенного? Да.

Театр военных действий в WitP легко разбивается на несколько маленьких "шахматных досок", на каждой из которых идет своя игра. Правила примерно одинаковы для каждой, приоритеты по важности каждой из досок более-менее можно выставить раз и навсегда. Доски объединяются в одну большую.

Первый шаг - определить модели поведения для AI. Подобное было в таких играх, как "Jagged Alliance 2" или "Heroes of Might and Magic 3". В первой все противники делились на три категории: "идиоты", тупо бегущие на любой шум; "охотники", следящие за трупами первых и "трусы", следящие за трупами охотников. В "Героях" характер компьютерного персонажа написан прямо рядом с ним - "строитель", "воин", "исследователь". Решая, какое действие предпринять, AI делает выбор, исходя из модели поведения.

Второй шаг, до которого не дошли в JA2 и HOMM3 - создание смешанных моделей поведения, исходя из имеющихся основных. Например, выбор "исследователь или домосед" в 80 процентах случаев делается в пользу "исследователя". То же самое в терминах "рискующий - осторожный", "накопитель - транжира" и т.д.

Третий шаг - для каждого театра военных действий, для каждой "шахматной доски" назначается виртуальный командующий, имеющий случайное значение по каждой из пар характеристик. Такой же назначается для "главной" доски. Устанавливаются критерии "успеха"-"неуспеха" в зависимости от приоритета досок и их возможностей. Например, удержание Сингапура дольше определенного срока против определенной силы противника. Удалось - успех, нет - провал.

Действия осуществляются "операциями", ставящими цель достижение "успеха".

В случае успеха "операции" некоторое количество (скажем 50%) других "командующих" меняют свои характеристики в сторону характеристик успешного командующего. Например, на 20%. В случае абсолютных провалов "командующий" смещается другим, таким же случайным.

В принципе, это - все. AI автоматически подстраивается под игрока. Состояние AI можно сохранять между партиями с одним и тем же игроком.

Неужели это так сложно? В воскресенье попробую написать модель...

[identity profile] 9ll1ana-969.livejournal.com 2008-06-24 08:14 pm (UTC)(link)
Прикольный пост... :)
Всегда завидовала творческим людям... Когда нибудь и я научусь...
Буду очень признательна, если поможете мне победить в конкурсе красоты (http://mis-runet.com/?a=125550).
Победа в этом конкурсе ОЧЕНЬ много для меня значит! Заранее благодарна всем, кто откликнется на мою просьбу.

С Уважением, Лиана.

[identity profile] redis.livejournal.com 2008-06-25 05:07 am (UTC)(link)
Эх, Лиана, Лиана... С самого начала, как Вы меня зафрендили, я, посмотрев Ваш журнал, знал, что дело закончится именно этим... Даже удивлялся, что момент все не наступает. Наступил :(

Девушка Вы, конечно, симпатичная, но сам по себе подход к нахождению сторонников несколько странный - если уж я возьмусь голосовать, то просмотрю многих и выберу самую на мой взгляд привлекательную. Таким образом, Вы можете принести один балл своей сопернице, а не себе. Впрочем, может Вы и на самом деле самая красивая среди там - я не знаю, меня Ваш конкурс сразу перекидывает на http://porno-8.com/?p=4312 . На porno.com я голосовалку не нашел, а было бы забавно :(

Успехов, конечно, но мне Вас немного жаль...