» Фантастика » » Читать онлайн
Страница 185 из 245 Настройки

Но возвращаясь к Норвигу. Я специально посоветовал Коулу эту фундаментальную книгу, чтобы парень смог детально изучить известную в узких кругах разработчиков систему «STRIPS» в простонародии — проблемный решатель от Стэнфордского исследовательского института. Систему эту умные дядьки создали еще в 1971 году… Точнее, так было в моем родном мире. В этой вселенной гении из Стэнфорда запилили ее на два года пораньше. Но вот глобальная цель, для которой был написан этот уникальный планировщик, осталась все той же. Стрипс нужна была, чтобы вдохнуть жизнь в первого разумного мобильного робота «Шейки». Ученые хотели дать бездушной машине возможность автономно мыслить о своих действиях и планировать шаги для достижения цели без вмешательства программистов. Вот так вот. ИИ уже тогда был мейнстримом, задолго до этих ваших Джарвисов, Альтронов и Виженов.

— Ну, показывай рыбу. — Я навис над его компьютерным столом, вглядываясь в экран.

Парень с явным удовольствием пару развернул на экране мудреную блок схему.

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

Коул пролистнул схему чуть в бок, показывая переход к системе инструментов.

— Плюс ко всему, я прописал пару хитрых дополнительных скриптов. Они позволят Агенту скрыто собирать аналитику о действиях самого игрока, чтобы бот мог буквально предугадывать его тактику. С какой линии игрок начинает застройку, какие растения предпочитает, какие формации и все в этом духе, чтобы выстраивать самый дешевый путь к целевому состоянию.

— Что выбрал целевым? — Поинтересовался я, вглядываясь в хитросплетения логических блоков на мониторе.

Система работала просто — у бота было понимание о мире, были инструменты в виде разных зомби и было целевое состояние. Цель к которой он должен был прийти так или иначе. И от которой строил свой процесс мышления.

— Пробраться в дом. Ну, или съесть мозги, если быть точным. — Пожал плечами Коул, не отрывая взгляда от экрана. — Я долго думал над тем, чтобы сделать итоговой целью — развлечение игрока, а не прорыв к дому. Держать в напряжении, поддаваться в нужный момент, создавать искусственную драму и все такое. Короче ИИ-нянька… Но вот как объяснить агенту такую итоговую цель я не понял. Не заливать же мне в код всю базу по психологии человека! Это слишком дохрена работы выходит. Да и не поймет в итоге машина чо от нее хотят. Люди-то некоторые не понимают. А тут...

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

— Ага. — Коул слегка самодовольно усмехнулся. — У нас будет система динамической стоимости инструментов. Смотри сюда.

Пролистав блок-схему чуть вверх, он остановил курсор на пиксельных иконках разных зомби. Рядом с каждой светилась цифра.

— Обычный зомби стоит десять поинтов, ублюдок с конусом — двадцать. С ведром на башке — сорок, ну и так далее. ИИ получает эти поинты пассивно, с течением времени. Чем дольше идет уровень, тем быстрее копятся поинты. Также ИИ получает определенное, фиксированное количество очков перед финальной или промежуточной волной, и еще…

Сделав паузу на глоток уже выдохшейся воды из пластиковой бутылки, он продолжил:

— И еще я добавил модификатор накопления очков в зависимости от количества растений на лужайке и самое кайфовое. За убийство растений, Агент будет тоже получать очки.

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

— Ну да. Система автобаланса.

— А как ты решил проблему раша? Что мешает ИИ просто подкопить очков, ничего не делая пару минут, а потом запустить толпу Гаргантюа по одной-единственной линии, сминая вообще все? И еще… Вот прорвались зомби по одной линии и тут Агент получил еще больше очков. И что тогда? Игрок не успел еще толком оклематься, а на него снова летит толпа зомбаков.

— Ты за идиота меня держишь? — Зыркнул на меня Коул. — Это тоже предусмотрено. Каждый новый зомби, выпущенный на ту же самую линию, становится дороже. Один простой зомбак стоит десять очков. Два простых зомбака, идущие одновременно по одной полосе, стоят уже двадцать четыре. Три — сорок два. Прогрессивная шкала налогообложения, емае. Хочешь продавить массой — разоришься. Что касается ожидания и накопления очков, то я влепил Агенту таймер, по истечении которого он обязан выпустить юнитов. Ну и повторный раш по линии, разумеется, тоже будет дороже.

Я искренне хохотнул и ободряюще хлопнул парня по сутулой спине.