Читаем Создание игр для мобильных телефонов полностью

Логическая схема, показанная на рис. 13.1, – это идеальный сценарий, в котором каждое решение принимается на основе полностью объективного логического вывода. На рис. 13.2 показан более реалистичный вариант принятия решения, в котором учитываются такие факторы, как эмоциональное состояние человека, а также его материальное состояние (есть ли у него страховка). Если рассмотреть второй вариант с логической точки зрения, то человеку нет смысла бросать молоток, потому что это замедлит работу.

Однако это достаточно распространенная реакция человека на боль. Для ИИ плотничной системы, чтобы эффективно отработать такую ситуацию, необходимо предусмотреть код «бросания молотка»!

Приведенный пример мышления должен дать вам понять, какое количество различных факторов формируют человеческую мысль. Поэтому, чтобы эффективно имитировать мыслительный процесс человека, необходима сложная система искусственного интеллекта. В большинстве случаев это утверждение истинно. Однако слово «эффективно» позволяет некоторую степень интерпретации в зависимости от области применения ИИ. Для наших целей «эффективный ИИ» – это ИИ, который делает мобильные игры более реалистичными и захватывающими.

В последние годы исследователи ИИ сосредоточились на проблемах, аналогичных рассмотренным в примере с молотком. Одна из особенно интересных областей – это нечеткая логика (fuzzy logic), которая пытается принимать решения, не следуя железной логике традиционных систем искусственного интеллекта. Другая интересная область – это генетические алгоритмы (genetic algorithms) в играх, с помощью которых имитируется процесс мышления, подобно тому, как это происходит в природе. Игры, в которых применяются генетические алгоритмы, теоретически были бы обучаемыми, тем самым делая процесс игры интереснее.

Типы алгоритмов игрового ИИ

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

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

► Блуждающий ИИ определяет, как объект перемещается по виртуальному игровому миру;

Поведенческий ИИ определяет, насколько агрессивно объект ведет себя по отношению к другому объекту игры;

Стратегический ИИ определяет лучший ход в стратегической игре с фиксированным набором хорошо определенных правил.

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

Блуждающий ИИ

Блуждающий ИИ относится к искусственным интеллектам, моделирующим движение объекта в играх, то есть принимает решение, как перемещаться объекту в виртуальном мире. Хороший пример блуждающего ИИ – это космические симуляторы, например, классическая игра Galaga, в которой инопланетяне часто преследуют игрока. Аналогично блуждающий ИИ используется для задания движения других инопланетян в игре. Обычно блуждающий искусственный интеллект используется для принятия решений изменения текущего пути: достичь определенного результата или пройти по заданной траектории. В игре Galaga желаемый результат для инопланетян – это передвигаться определенным образом или столкнуться с кораблем игрока. В других играх целью компьютера может быть уклонение от пуль, выпущенных игроком.

Реализовать блуждающий ИИ достаточно просто, обычно изменяется скорость или положение одного объекта (инопланетянина) относительно положения другого объекта (корабля игрока). Блуждание объекта можно задать случайным или определенным образом. Существует несколько типов блуждающего ИИ: преследующий, убегающий и шаблонный.

Преследующий ИИ

Перейти на страницу:

Похожие книги

1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных
iOS. Приемы программирования
iOS. Приемы программирования

Книга, которую вы держите в руках, представляет собой новый, полностью переписанный сборник приемов программирования по работе с iOS. Он поможет вам справиться с наболевшими проблемами, с которыми приходится сталкиваться при разработке приложений для iPhone, iPad и iPod Touch. Вы быстро освоите всю информацию, необходимую для начала работы с iOS 7 SDK, в частности познакомитесь с решениями для добавления в ваши приложения реалистичной физики или движений — в этом вам помогут API UIKit Dynamics.Вы изучите новые многочисленные способы хранения и защиты данных, отправки и получения уведомлений, улучшения и анимации графики, управления файлами и каталогами, а также рассмотрите многие другие темы. При описании каждого приема программирования приводятся образцы кода, которые вы можете смело использовать.

Вандад Нахавандипур

Программирование, программы, базы данных / Программирование / Книги по IT