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 можно сохранять между партиями с одним и тем же игроком.

Неужели это так сложно? В воскресенье попробую написать модель...
(will be screened)
(will be screened if not validated)
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

Profile

redis: (Default)
redis

May 2026

S M T W T F S
     12
3 456 789
1011121314 1516
17 18 19 202122 23
242526 2728 2930
31      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 1st, 2026 11:49 am
Powered by Dreamwidth Studios