Искусственный интеллект в играх

advertisement
Искусственный интеллект в играх
Как мы уже знаем, термин «Искусственный
интеллект» используется для обозначения
концепций, позволяющих компьютерам делать
такие вещи, которые у людей (или, с
определенными допущениями, у животных)
выглядят разумными (интеллектуальными).
В настоящее время компьютеры значительно
превосходят способности человека в решении
многих задач: вычисления, сортировка, поиск и т.д.
Также компьютеры могут играть в некоторые
настольные игры однозначно лучше человека
(например, реверси).
Искусственный интеллект в играх
Однако, существует множество вещей, простых
для человека, но не настолько простых для
компьютера: узнавать знакомые лица, говорить на
естественном языке, составлять план действий,
подходить творчески к поставленной задаче.
Собственно, в этом и заключается задача ИИ –
разработка программных решений, которые бы
позволяли решать подобные задачи.
Искусственный интеллект в играх
В научных исследованиях в области ИИ,
некоторые ученые склоняются к философскому
подходу: понимание природы мышления и разума,
а на основе этого разработка программной модели
мышления. Другие основываются на психологии
и биологии: на исследовании функционирования
человеческого мозга и происходящих в нем
процессов. Третьи предпочитают инженерный
подход: разработку алгоритмов для имитации
разумной деятельности.
Искусственный интеллект в играх
Разработчики компьютерных и видеоигр
преимущественно используют инженерный
подход, например при разработке игровых
персонажей, которые бы действовали как человек
(или животное).
Одной из первых компьютерных игр, где бы
присутствовал ИИ, некоторые исследователи
считают Pacman (Midway Games West, Inc., 1979).
Игра Pacman
Игра Pacman
Pacman выделялся на фоне таких игр, как Pong
(где действия компьютера сводились к
перемещению биты вверх и вниз) и Space
Invaders (с заданной траекторией перемещения
подлежащих отстрелу противников) поведением
врагов, которые либо старались поймать
управляемого игроком персонажа, либо убегали от
него.
Игра Pacman
В основе этой игры лежал достаточно простой
подход – машина состояний. Каждый из четырех
монстров мог находится либо в режиме погони,
либо в режиме убегания. В каждом состоянии они
выбирали направление движения на развилках
частично случайным образом. В режиме погони у
каждого монстра была различная вероятность
либо двигаться в направлении игрока
(выбираемом без использования поиска пути),
либо в другом случайном направлении. В режиме
убегания, монстры опять с некоторой
вероятностью или двигались в направлении от
игрока, или в случайном направлении.
Игра Pacman
Это простейший из подходов, позволяющих
говорить о наличии какого-то ИИ. Если упростить
его еще, движение врагов либо будет полностью
случайным, либо предсказуемым.
Использованный же метод позволяет создать в
лице четырех противников с разными
параметрами подходящую противодействующую
игроку силу.
Искусственный интеллект в играх
До 90-х годов искусственный интеллект в играх не
особенно отличался от такового в игре Pacman.
Например, в игре Golden Axe (SEGA
Entertainment, Inc., 1987), вышедшей спустя 8 лет,
враги либо стояли на месте, либо двигались взадвперед, пока к ним не приближался игрок, после
чего они нападали на него. Инновацией было то,
что враги могли совершить бросок за спину
игрока, и напасть на него сзади.
Игра Golden Axe
Искусственный интеллект в играх
В 90-х годах начинается широкое использование
ИИ в играх для различных целей.
Поиск пути, например, в стратегиях реального
времени (Dune II, WarCraft).
Имитация восприятия (зрения и слуха) у
компьютерных противников – такие игры как Thief:
The Dark Project и Metal Gear Solid основывались
на этом подходе и заложили основу для большого
класса т.наз. Stealth-action игр.
Игра Metal Gear Solid
Искусственный интеллект в играх
В 1997 году появилась игра Creatures (Cyberlife
Technology Ltd.), полностью основанная на
технологиях ИИ. В ней для реализации
«обучаемых» и «мыслящих» существа
использовались достаточно сложная система на
основе нейронной сети для представления
«мозга» каждого существа и эволюционные
алгоритмы.
В дальнейшем, идея получила развитие в играх
Black and White (Lionhead Studios Ltd., 2001) и
The Sims (Maxis Software, Inc., 2000).
Серия игр Creatures
Серия из нескольких игр являлась примером
реализации «искусственной жизни» (artificial life,
A-Life).
Изначально игра Creatures задумывалась как
серьезный симулятор биологической жизни.
Играющий здесь выступал в роли некоего высшего
существа («Создателя»), управляя жизнью и
развитием живых существ, называемых
«норнами» в мире, обладающем собственной
экосистемой.
Серия игр Creatures
Серия игр Creatures
Итак, вся игра основана на взаимодействии игрока
с норнами, когда он следит за развитием своих
подопечных, помогает им «познавать»
окружающий мир и «проживать жизнь».
Норны могут изучить набор простых слов и
действий. В этом процессе игрок выступает как
учитель и игра предоставляет ему для этого
различные инструменты.
Искусственный интеллект в играх
Вообще, говоря о состоянии дел в области
искусственного интеллекта в компьютерных и
видеоиграх отправной точкой является тезис «по
мере того, как графика становилась все более
продвинутой, потребовалось нечто новое, вроде
искусственного интеллекта, что подогревало бы
интерес к играм» (Стивен Вудкок, Steven
Woodcock).
Искусственный интеллект в играх
Данный процесс является циклическим, т.к.
периодически наступает момент, когда достигается
близкий к предельному для текущего поколения
аппаратных средств уровень отображения
виртуального мира, и требуется развивать другие
аспекты – реалистичность происходящих в этом
мире процессов, то есть не как показывается, а
что показывается.
Искусственный интеллект в играх
В 2000-х годах при реализации ИИ на смену
отдельным методикам и приемам (различные
методы поиска пути, конечные автоматы,
планировщики, персептроны и т.д.) приходят
комплексные подходы – уже известная нам
«искусственная жизнь», моделирование
поведения, реализация замкнутых экосистем.
Зачастую говорится о так называемых
«эмерджентных» (порождаемых, от англ.
emergent) проявлениях искусственного
интеллекта, когда одновременное осуществление
простых процессов приводит к возникновению
сущностей и явлений более высокого порядка.
Искусственный интеллект в играх
В настоящее время одним из наиболее известных
примеров реализации A-Life в компьютерных играх
является уже упомянутая серия The Sims,
различные части которой к настоящему времени,
наверное, являются лидерами по количеству
выпущенных дополнений и много лет занимают
верхние позиции в чартах продаж.
Программы, реализующие A-Life, используют
множество методов – жестко заданные правила,
генетические алгоритмы, алгоритмы стайного
поведения, мотивационные графы и т.д.
Искусственный интеллект в играх
Вместо того, чтобы пытаться запрограммировать
комплексную модель поведения, разработчики
зачастую разбивают задачу на ее составляющие.
Полученные фрагменты модели поведения затем
связываются в иерархическую структуру, которая и
используется виртуальным персонажем в
процессе принятия решений в зависимости от его
«мотивации», «эмоций» (если они моделируются).
Взаимодействие между такими элементами
низкого уровня и состоянием персонажа позволяет
отображать более реалистичное поведение без
значительного усложнения программной
реализации.
Игра The Sims
Одной из особенностей The Sims с
продолжениями является технология «Smart
Terrain» (приблизительно переводится как «умная
местность»), автором которой является Уилл Райт
(Will Wright). Суть ее состоит в том, что объекты,
окружающие игровых персонажей – агентов
(имеющих определенные потребности), сообщают
им о своих свойствах.
Голод
Разогреть
еду
Наличие
еды
Игра The Sims
Так, например, когда агент «испытывает голод»,
то, проходя мимо холодильника, он получает
сообщение «в холодильнике находится пища».
Открыв холодильник и взяв порцию еды, агент уже
от нее получает сообщение, что пищу необходимо
приготовить, а микроволновая печь сообщает, что
еду можно приготовить в ней, и так далее.
Таким образом, действия агента определяются и
направляются его окружением, поэтому
достаточно просто реализуемый средствами
объектного программирования подход позволяет
игровым персонажам демонстрировать
реалистичное поведение.
Игра The Sims
В третьей части The Sims произошел отказ от
системы потребностей у агентов, вместо чего они
обладают «настроениями», например, могут
«испытывать депрессию» после семейной ссоры.
Персонажи смогут запоминать значимые события,
произошедшие с ними, «планировать свое
будущее», а также у них могут появляться
«мечты».
Игра Assassin’s Creed
В определенной степени шагом вперед для
видеоигр стало моделирование поведения толпы в
Assassin’s Creed (разработчик Ubisoft Montreal,
2008) – множество управляемых компьютером
персонажей здесь реалистично анимировано и
способно действовать правдоподобно в
окружающих его декорациях средневекового
города. Характерным для нового поколения игр
является тесное взаимодействие между
компонентами, отвечающими за моделирование
поведения (ИИ) и анимацию персонажей.
Игра Assassin’s Creed
Стоит отметить, что, хотя, разработчики говорят о
«толпах», объекта «толпа» в коде Assassin’s Creed
нет. Скопление народа, как и в реальности,
состоит из отдельных персонажей, а толпы
порождаются моделями их поведения.
Игра Assassin’s Creed
Реализация искусственного интеллекта здесь
разделена на два уровня: уровень поведения и
уровень принятия решений. Уровень поведения
для управляемых компьютером персонажей тот же
самый, что и главного героя, управляемого
игроком. Говоря об искусственном интеллекте
применительно к персонажу игрока, в первую
очередь, имеются в виду компоненты, отвечающие
за систему анимации, поскольку в игре герой
достаточно правдоподобно взаимодействуют с
окружающей средой, и традиционных приемов для
воспроизведения набора анимаций для
выполняемого действия стало уже недостаточно.
Игра Assassin’s Creed
Уровень принятия решений у компьютерных
персонажей задействуется в особых случаях –
например, когда управляемые ИИ стражники
преследуют главного героя, взбирающегося на
стену, они начинают использовать тот же код, что
персонаж игрока.
Игра Assassin’s Creed
Чтобы представить информацию об окружении,
создается граф для поиска пути с использованием
A* - алгоритма. Возвращаясь к моделированию
толпы, дизайнер уровней задает цель, в которую
она движется и размещает на уровне сегменты
пути, так что персонажам требуется только
выбирать связи в графе. Аналогичная система
работает в случае, когда компьютерные
персонажи убегают от игрока.
Игра Assassin’s Creed
Для создания впечатления населенного, полного
жизни города, разработчикам пришлось пойти на
определенные хитрости. Поскольку аппаратное
обеспечение налагает ограничение на количество
одновременно активных персонажей, и на игровых
консолях текущего поколения (Xbox 360,
Playstation 3), и на персональных компьютерах, в
конкретный момент времени обрабатывалось
порядка 120 жителей. Эти жители порождаются с
использованием двухмерной проекции уровня во
всех направлениях от текущего положения игрока.
Игры с открытым миром
В 2000-х годах широкое распространение
получила концепция игр с «открытым миром»,
доступным для исследования, в которых игрок
зачастую может оставить на время (а иногда и
просто игнорировать) сюжетную линию и
заниматься тем, что ему интересно. В первую
очередь, предоставление такой возможности
характерно для ролевых игр (например, серия The
Elder Scroll, последняя пятая часть - Skyrim),
заметные представители есть и среди боевиков (в
первую очередь – серия Grand Theft Auto).
Sandbox Games («игры в песочнице»)
В более ограниченном виде такой подход
вдохновил разработку так называемых «Sandbox
games» (буквально – «игры в песочнице»),
примерами их являются, в частности Crysis
(разработчик CryTek) и S.T.A.L.K.E.R. (украинская
компанияй GSC Game World). В отличие от
традиционных FPS (first-person shooter, боевик «от
первого лица»), в этих играх заметно смещение в
сторону симулятора, где ИИ играет заметную
роль, позволяя врагам (и союзникам),
управляемым компьютером, действовать более
автономно на больших пространствах,
координировать свои действия и т.п.
Sandbox Games («игры в песочнице»)
Основные направления использования
ИИ в играх
Можно сказать, что в большинстве современных
игр искусственный интеллект используется для
решения трех основных классов задач:
перемещение персонажей, принятие решений о
пункте назначения перемещения, реализация
тактического или стратегического
«мышления». И с уходом от использования
подхода, основанного на состояниях (хотя такой
подход широко применяется и в настоящее время)
к более широкому спектру технологий, эти
технологии ИИ все равно покрывают эти задачи.
Модель игрового ИИ
Чтобы внести системный подход, можно
использовать приведенную далее модель
искусственного интеллекта, используемого в играх
(понятно, что она далеко не единственная
возможная).
Согласно нижеприведенному рисунку, задачи ИИ
разделяются на три класса: перемещение,
принятие решении и стратегия.
Первые два класса включают алгоритмы, которые
используются отдельными персонажами, а
последний используется целой группой
объектов. Кроме этих трех частей, существует
дополнительная инфраструктура.
Модель игрового ИИ
ИИ получает
информацию
Взаимодействие
с миром
ИИ получает процессорное время
Управление выполнением
ИИ группы
Стратегия
Написание
скриптов
ИИ персонажа
Принятие решений
Перемещение
Анимация
Создание
контента
Физика
ИИ используется для
визуального отображения
ИИ может
использоваться
в этих областях
Модель игрового ИИ
Понятно, что не каждая игра использует все эти
уровни ИИ. Например, в настольных играх (хотя
бы шахматах) требуется только стратегический
компонент, т.к. фигуры не принимают собственных
решений и не перемещаются произвольно.
В тоже время, во многих динамических играх этот
компонент зачастую отсутствует, т.к. в них никакой
координации действий противников.
Download