Суббота
21.12.2024
20:46
Категории раздела
Мои статьи [150]
Поиск
Вход на сайт
Мини-чат
Друзья сайта
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Проект "Ангор"

Каталог статей


искусственный интеллект (glscene.ru)
Я думаю не надо объяснять, почему искусственный интеллект играет такую большую роль в создании хорошей атмосферы и обеспечения львиной доли реализма. Мощность нынешних компьютеров даёт разработчикам очень много возможностей и в тоже время пищи для ума. Вспомните, сколько сил было затрачено программистами всего мира, чтобы создать хороший, надёжный и саморазвивающийся AI. Ведь именно программирование искусственного интеллекта является самой важной частью создания большинства игр. Какой разработчик (в частности, и геймер) не мечтает о полноценном и динамическим – одним словом, «живом» мире в его собственной игре! Заметили, сколько эпитетов было мной подобрано? Вот сейчас и поговорим, каким же должен быть этот идеальный AI.
Ну, во-первых, каждый бот должен самообучаться и как-то реагировать на внешние действия. Тут всё понятно – если бот шел в магазин за покупкой хлеба и на горизонте показался ядерный гриб, то он должен сменить свои приоритеты и бежать прочь, пытаясь где-то спрятаться. Не стоять же ему возле кассы и пересчитывать мелочь, когда радиация да ударная волна, которые сметают всё на своем пути, скоро настигнут его.
А во-вторых, каждый бот в игре должен совершать логичные и приоритетные действия. Например, тот же случай. Если он шел в магазин и увидел ядерный взрыв неподалеку, то он не должен начать играть в классики, поскольку уровень его настроения при этом упал и ему захотелось развлечься (вот видите и недостаток при банальном анализе характеристик). Всё должно быть гибким и продуманным.

Вот казалось бы два условия, обеспечивающие динамику вашего мира и качественный ИИ. Но не думайте, что всё уж так легко. Как я уже писал – это одна из самых трудоёмких задач, которые решаются в играх.
А теперь давайте откинемся от всяких там сред и кодов, а станем простыми смертными – геймерами. Что мы всё думаем и критикуем себя? Давайте посмотрим на некоторые игры и проанализируем их ИИ – которые, кстати, создавались профессиональными командами девелоперов.
Сначала стратегии и другие жанры игр с упором на тактику.

Наша первая жертва – «Worms 3D». Нет, не смейтесь! Игрушка тактичного характера, где на ИИ возложены все надежды геймера - хорошо повеселиться и в тоже время - помозговать.

Примечание. На диске с игрой написано, что это самая весёлая пошаговая стратегия из всех когда-либо созданных. Хотя этой игре можно почётно присудить лавры и самой весёлой аркады. Даже 3d action там затаился. Если честно, то я долго хохотал, проводя время с этой игрой. Чего только стоят высказывания червяков и их лица, да и весёлая анимация – выше всяческих похвал. А чего только стоит супер-овца или стадо бешеных коров!!! Это надо видеть!

Видно, что разработчики старались, но играть довольно легко. В большинстве случаев я выигрываю, даже не потеряв ни одного червяка! ИИ конечно не плох, но проблемы с выбором приоритетов. Я часто видел случаи, когда червяк команды компа, для того чтобы достать аптеку, которая лежит в двух метрах от него и к ней можно спокойно подойти, надевал реактивный ранец (!) и подлетал (!!) к ней по миллиметру (!!!). Очень редко встречалось упрямство червяков стрелять по моим подопечным через стенку с дробовика.
Оценка ИИ (по пятибалльной шкале): ***

Вторым на нашу сцену выходит великий Warcraft III. Думаю тут того чего я напишу – это всё равно, что ничего не напишу. Да, игра культовая – действительно, всех времён и народов. А вот что касается ИИ в сражениях, то я молчу. Попросту нет слов. Играть без AMAI не интересно, потому что комп, во-первых, плохо качается, а во-вторых – играет всегда одними и теми же тактиками! Да, вообще-то и играть он толком не умеет. Никакого контроля войск – банальный «мясо впереди, стрелки-маги сзади», вот и весь микро (если это вообще можно так назвать). Конечно, новичка-то ИИ переигрывает легко, но вот серьезно «дует» более-менее опытному игроку. Благо, я ещё ни разу не наблюдал тупиков у ИИ – и на этом спасибо. А по моим играм с разным уровнем, было замечено, что разница всего лишь в количестве приносимых ресурсов за раз (у слабого – 10 единиц, у сильного – 20). Вот и вся арифметика.
Оценка ИИ: ***

Теперь плавно переходим к шутерам, RPG и им подобным.

Battlefield 1942. Да, вы не ошиблись - поговорим о первом «Поле битвы 1942» (во второй, признаюсь чесно – не играл). Отбросив все впечатления, скажу, что ИИ на самом нижнем указателе – тупее, чем ИИ, скажем, тетриса. Нет, ну я понимаю – легкий уровень, это что б новички выигрывали. Но каким же должен быть ИИ, что бы на лёгком разные глюки греблись лопатой, в то время как на сложном большинство из них пропадает??? Компьютер отказывается применять какие-то командные действия. Скажем, организовать штурм бункера или грамотно зачистить помещение гранатой, а тогда ввалиться всем колхозом на праздник. Почему солдаты не сидят в окопах, высунув ружья, а бегают около них. Как будто ров – непостижимое для их ума чудо XX века? Хм, возможно это и правда так. А о разных недоделках типа, попытка бега через стену (ИИ наверное думает, что он как Коперфильд пройдёт сквозь неё) я вообще молчу. Также часты глюки с попытками зайти в технику, которой кстати управлять ИИ совершенно не умеет. Благо, стрелять и перезаряжать оружие умеет.
Оценка ИИ: **

И заканчиваем сегодняшний обзор таким монстром геймеров-сетевиков, как Counter-Strike. Ну, боты все как один отличаются умом и сообразительностью. Да, возможно они неплохо стреляют, знают когда спрятаться или бросить гранату и т. д. (в этом плане самым лучшим я считаю PODBot). Но вот море недоделок и глюков, и вся вроде неплохая картина портиться. Добавьте сюда плохие тактические навыки и получите не очень впечатляющую картину. И что б там мне не говорили, а оценка очевидна – средний уровень всех существующих на данный момент ботов с натяжкой дотягивает до тройки.
Оценка ИИ: ***

И напоследок статьи немного об игровом мире. Главное условия динамичного мира – его интерактивность. Под этим термином подразумевается его всесторонность и динамичность. К примеру, вчера убили кого-то на перекрестке, а сегодня на центральных улицах карнавал. А для этого нужно, чтобы боты могли взаимодействовать между собой – это самое важное. Если вы сделаете мир в котором все персонажи будут реагировать только на игрока, не замечая других – то можете отправлять своё детище на свалку.

Вход в уголок программиста. Кто когда-либо занимался олимпиадной информатикой, то должен знать, что существует такой способ решения задач как динамика или динамическое программирование. Проблема реализации ИИ – как раз схожая с такими задачами своей нестандартностью и необходимостью творческого подхода. Поэтому, создавая «мозги» для персонажей вашей игры, надо это понимать и делать закономерные выводы (к примеру, что банальной тысячей if..then ничего хорошего и надёжного не сделаешь – боты выйдут корявыми и глупыми). Надо сесть и хорошенько подумать да изобрести способ. Не получиться, что-то не так – да ладно, на то мы и программист, что бы пробовать ещё! Просто надо разбить задачу на подзадачи, а те на ещё одни подзадачи и т.д. пока главная задач не станет максимально простой. К примеру, какой бы движок ИИ у вас не был, результатом его работы всегда будет действие какого-то бота в зависимости от ситуации. А вот действия и ситуации бывают активные и пассивные по отношению к каждому взятому боту. Раскладываем всё глубже и глубже, делаем схему – и вот вам готова основа будущего ИИ. Осталось всего ничего – записать возможные действия и приписать их к тем или иным причинам. А дальше кодинг… Здесь уже всё зависит от вас.
В помощь бедным программерам.
Вот ссылка, где можно найти море информации о нейронных сетях. Всё таки НС самый популярный способ реализации AI и, ИМХО, пока самый быстрый.

P.S.: вы ещё не забыли, что все мои мнения по поводу игр - ИМХО?

Источник: http://www.glscene.ru/content.php?article.59

Категория: Мои статьи | Добавил: Gexon (17.11.2009)
Просмотров: 2048 | Комментарии: 4 | Теги: искусственный интеллект
Всего комментариев: 3
3 laMer007  
>Тут всё понятно – если бот шел в магазин за покупкой хлеба и на горизонте показался ядерный гриб, то он должен сменить свои приоритеты и бежать прочь
Будто-бы ему это поможет. Хех.
>Если он шел в магазин и увидел ядерный взрыв неподалеку, то он не должен начать играть в классики, поскольку уровень его настроения при этом упал и ему захотелось развлечься
Идея понравилась. :)

2 leksar  
Краткое содержание статьи:
"Я вот поиграл тут в пару игрушек, чо-то тупил там ИИ, хотелось бы чего-нибудь супер-пупер, чтобы все как в сказке" дальше идет набор банальностей и ссылка на поддомен неработающего хостера.

1 sSwSs  
Здорово! Чесно говоря не прочитал всю, но мне понравилось (хотя толкового по-сути мало).

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]