Деградация AI
Jun. 13th, 2008 11:36 am![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Когда был Ленин маленький, с кудрявой головой... то не было еще Интернета и даже локальных сетей. Любой творец компьютерных игр был обречен на создание адекватного соперника для играющего в игру человека. На создание того самого 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 можно сохранять между партиями с одним и тем же игроком.
Неужели это так сложно? В воскресенье попробую написать модель...
Не знаю, какая сволочь первой придумала, что 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 можно сохранять между партиями с одним и тем же игроком.
Неужели это так сложно? В воскресенье попробую написать модель...
no subject
Date: 2008-06-13 08:45 am (UTC)no subject
Date: 2008-06-13 09:05 am (UTC)no subject
Date: 2008-06-13 09:10 am (UTC)no subject
Date: 2008-06-13 09:17 am (UTC)no subject
Date: 2008-10-07 12:56 pm (UTC)no subject
Date: 2008-06-13 09:55 am (UTC)no subject
Date: 2008-06-13 09:57 am (UTC)no subject
Date: 2008-06-13 11:53 am (UTC)no subject
Date: 2008-06-13 10:02 am (UTC)кстати, если твой АИ будет универсальным - его можно за бооольшие бабки продать. :)
no subject
Date: 2008-06-13 02:16 pm (UTC)no subject
Date: 2008-06-15 11:32 am (UTC)Re: Ответ на ваш комментарий…
Date: 2008-06-15 11:46 am (UTC)Кроме того, в конкретном примере речь идет об игре, в которой коллективные действия невозможны по определению, так как играют два игрока, один против другого. При этом разработчики ленятся сделать хоть сколько нибудь нормальный AI
Re: Re[2]: Ответ на ваш комментарий…
Date: 2008-06-15 12:02 pm (UTC)Жизнь алгоритмизировать нельзя, так как она безгранична. Любая компьютерная игра ограниченна, следовательно, ее можно алгоритмизировать. Ролевой элемент алгоритмизируется, экономика тоже, индивидуальные стили игры - без проблем, наборы талантов - а как же, социальная активность - вполне. Более того, об алгоритмизации индивидуальных стилей я как раз и написал в первом тексте.
Задам простой вопрос. Возможно ли написать бота, способного играть в Варкрафт? Бот отыгрывает одну определенную роль, один определенный стиль, ведет определенную "социальную активность", не умеет разговаривать. Возможно его написать?
no subject
Date: 2008-06-15 12:17 pm (UTC)Почему бот в игре Icewind Dale может принимать участие в боевой работе группы, в Dungeon Siege может, а в Warcraftе не сможет?..
Проходить квесты в нормальной игре боту не надо - квесты для игрока. То же самое с развитием - оно вполне может быть задано жестко. Мы говорим о разных вещах. Я говорю о создании вокруг единственного играющего мира, в котором компьютерные персонажи ведут себя псевдоразумно, создавая для игрока иллюзию реального мира. Вы говорите о мире, где они ведут себя абсолютно разумно - например, занимаются "разумной" прокачкой и выполняют квесты. В одноигроковой вселенной в этом нет ни малейшей необходимости! Не-игрок не выполняет квесты сам, он лишь может помогать (или мешать) реальному игроку в этих делах.
Я уверен, что вполне возможно создать одноигроковый WoW. Только это дорого и поэтому выбиратся простой путь - пусть игроки сами развлекают друг друга
no subject
Date: 2008-06-24 08:14 pm (UTC)Всегда завидовала творческим людям... Когда нибудь и я научусь...
Буду очень признательна, если поможете мне победить в конкурсе красоты (http://mis-runet.com/?a=125550).
Победа в этом конкурсе ОЧЕНЬ много для меня значит! Заранее благодарна всем, кто откликнется на мою просьбу.
С Уважением, Лиана.
no subject
Date: 2008-06-25 05:07 am (UTC)Девушка Вы, конечно, симпатичная, но сам по себе подход к нахождению сторонников несколько странный - если уж я возьмусь голосовать, то просмотрю многих и выберу самую на мой взгляд привлекательную. Таким образом, Вы можете принести один балл своей сопернице, а не себе. Впрочем, может Вы и на самом деле самая красивая среди там - я не знаю, меня Ваш конкурс сразу перекидывает на http://porno-8.com/?p=4312 . На porno.com я голосовалку не нашел, а было бы забавно :(
Успехов, конечно, но мне Вас немного жаль...
no subject
Date: 2008-06-26 02:56 pm (UTC)no subject
Date: 2008-06-26 03:37 pm (UTC)Идея не в том, чтобы создать идеальный АИ, а в том, чтобы создать множество разных хороших АИ, принимающих разные более-менее толковые решения в одинаковой ситуации, поэтому стабильное состояние с минимальной энергией немного не подходит. Но за подсказку спасибо, подумаю и над этим
no subject
Date: 2008-06-26 09:17 pm (UTC)Boltzman Machine
Hopfield neural networks
fuzzy logic
no subject
Date: 2008-06-27 05:03 am (UTC)no subject
Date: 2008-06-27 05:48 am (UTC)no subject
Date: 2008-06-27 06:24 am (UTC)