redis: (Default)
[personal profile] redis
Когда был Ленин маленький, с кудрявой головой... то не было еще Интернета и даже локальных сетей. Любой творец компьютерных игр был обречен на создание адекватного соперника для играющего в игру человека. На создание того самого 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 можно сохранять между партиями с одним и тем же игроком.

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

Date: 2008-06-13 08:45 am (UTC)
From: [identity profile] pell-mell.livejournal.com
господи, а для меня AI - всего лишь обозначение "всё включено".

Date: 2008-06-13 09:05 am (UTC)
From: [identity profile] uncle-lex.livejournal.com
Слушай, интересным занимаешься...

Date: 2008-06-13 09:10 am (UTC)
From: [identity profile] redis.livejournal.com
Это для души...

Date: 2008-06-13 09:17 am (UTC)
From: [identity profile] uncle-lex.livejournal.com
Это-то понятно.

Date: 2008-10-07 12:56 pm (UTC)
From: (Anonymous)
Вот только В.И.Леннин тут зачем?

Date: 2008-06-13 09:55 am (UTC)
From: [identity profile] gastreat.livejournal.com
А я уже лет 5 не играю. :(

Date: 2008-06-13 09:57 am (UTC)
From: [identity profile] rallykisa.livejournal.com
Что такое AI?

Date: 2008-06-13 11:53 am (UTC)
From: [identity profile] redis.livejournal.com
Artificial Intelligence, Искусственный Интеллект, ИИ

Date: 2008-06-13 10:02 am (UTC)
From: [identity profile] rower.livejournal.com
могу подписаться тестировать результат :)

кстати, если твой АИ будет универсальным - его можно за бооольшие бабки продать. :)

Date: 2008-06-13 02:16 pm (UTC)
From: [identity profile] cetekot.livejournal.com
Толковый АИ был в Старкрафте, запросто сменял тактику "вот вам ещё мясо" на интересные комбинации-многоходовки.
(deleted comment)

Date: 2008-06-15 11:32 am (UTC)
From: [identity profile] redis.livejournal.com
Коллективные действия на пару с AI есть во множестве игрушек
(deleted comment)
From: [identity profile] redis.livejournal.com
Я не играл в Варкрафт, поэтому не знаю, о чем идет речь. Из MMORPG я играл в бесплатную Tibia, абсолютно уверен, что хороший AI вполне заменит любые коллективные действия в этой игре. Напомню еще Age of Empires или Космические Рейнджеры. И там и там компьютер вполне способен устраивать совместные акции на пару с игроком.

Кроме того, в конкретном примере речь идет об игре, в которой коллективные действия невозможны по определению, так как играют два игрока, один против другого. При этом разработчики ленятся сделать хоть сколько нибудь нормальный AI
(deleted comment)
From: [identity profile] redis.livejournal.com
Повторяю, в одну из MMORPG я все же играл - пусть не в лучшую, но вполне популярную.

Жизнь алгоритмизировать нельзя, так как она безгранична. Любая компьютерная игра ограниченна, следовательно, ее можно алгоритмизировать. Ролевой элемент алгоритмизируется, экономика тоже, индивидуальные стили игры - без проблем, наборы талантов - а как же, социальная активность - вполне. Более того, об алгоритмизации индивидуальных стилей я как раз и написал в первом тексте.

Задам простой вопрос. Возможно ли написать бота, способного играть в Варкрафт? Бот отыгрывает одну определенную роль, один определенный стиль, ведет определенную "социальную активность", не умеет разговаривать. Возможно его написать?
(deleted comment)

Date: 2008-06-15 12:17 pm (UTC)
From: [identity profile] redis.livejournal.com
Что мешает боту вступить в гильдию?!..
Почему бот в игре Icewind Dale может принимать участие в боевой работе группы, в Dungeon Siege может, а в Warcraftе не сможет?..

Проходить квесты в нормальной игре боту не надо - квесты для игрока. То же самое с развитием - оно вполне может быть задано жестко. Мы говорим о разных вещах. Я говорю о создании вокруг единственного играющего мира, в котором компьютерные персонажи ведут себя псевдоразумно, создавая для игрока иллюзию реального мира. Вы говорите о мире, где они ведут себя абсолютно разумно - например, занимаются "разумной" прокачкой и выполняют квесты. В одноигроковой вселенной в этом нет ни малейшей необходимости! Не-игрок не выполняет квесты сам, он лишь может помогать (или мешать) реальному игроку в этих делах.

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

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

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

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

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

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

Date: 2008-06-26 02:56 pm (UTC)
From: [identity profile] khiron.livejournal.com
можно проще описать. если описать все матрицей состояний и весовых коэффициентов, то все действия аи сводятся к нахождению стабильного состояния с минимальной "энергией". 8) если бы делать такое н аежелезе, то работает за время вхождения в насыщением операционного усилителя 8). На серийном компе - надо итеративно считать. но все это вполне можно в современном вычислителньом контексте.

Date: 2008-06-26 03:37 pm (UTC)
From: [identity profile] redis.livejournal.com
Первый толковый коммент, ЙО! :)

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

Date: 2008-06-26 09:17 pm (UTC)
From: [identity profile] khiron.livejournal.com
Да я как бы по этому вопросу учился. 8) могу еще дать подсказку, где копать:
Boltzman Machine
Hopfield neural networks
fuzzy logic

Date: 2008-06-27 05:03 am (UTC)
From: [identity profile] redis.livejournal.com
Да у меня как бы тоже neural networks и fuzzy logic в списке предметов были :)

Date: 2008-06-27 05:48 am (UTC)
From: [identity profile] khiron.livejournal.com
БРАЗА! Может ты еще и у А.Н.Борисова учился? 8)

Date: 2008-06-27 06:24 am (UTC)
From: [identity profile] redis.livejournal.com
Борисов - киноактер. Это я точно знаю

Profile

redis: (Default)
redis

August 2025

S M T W T F S
      12
3 4567 89
10111213141516
17181920212223
24252627282930
31      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Aug. 13th, 2025 03:43 pm
Powered by Dreamwidth Studios