Игровой искусственный интеллект
Игровой искусственный интеллект (англ. Game artificial intelligence) — набор программных методик, которые используются в компьютерных играх для создания иллюзии интеллекта в поведении персонажей, управляемых компьютером. Игровой ИИ, помимо методов традиционного искусственного интеллекта, включает также алгоритмы теории управления, робототехники, компьютерной графики и информатики в целом.
Реализация ИИ сильно влияет на геймплей, системные требования и бюджет игры, и разработчики балансируют между этими требованиями, стараясь сделать интересный и нетребовательный к ресурсам ИИ малой ценой. Поэтому подход к игровому ИИ серьёзно отличается от подхода к традиционному ИИ — широко применяются разного рода упрощения, обманы и эмуляции. Например: с одной стороны, в шутерах от первого лица безошибочное движение и мгновенное прицеливание, присущее ботам, не оставляет ни единого шанса человеку, так что эти способности искусственно снижаются. С другой стороны — боты должны делать засады, действовать командой и т. д., для этого применяются «костыли» в виде контрольных точек, расставленных на уровне.
Персонажей компьютерных игр, управляемых игровым искусственным интеллектом, делят на:
- неигровые персонажи (англ. Non-player character, NPC) — как правило, эти персонажи являются дружественными или нейтральными к человеческому игроку.
- боты (англ. Bot) — враждебные к игроку персонажи, приближающиеся по возможностям к игровому персонажу; против игрока в любой конкретный момент сражаются небольшое количество ботов. Боты наиболее сложны в программировании.
- мобы (англ. Mob) — враждебные к игроку «низкоинтеллектуальные» персонажи. Мобы убиваются игроками в больших количествах ради очков опыта,артефактов или прохождения территории.
- Нейросеть — непосредственно сам ИИ. Стал применяться совсем недавно, с бурным развитием искусственного интеллекта. В отличие от компьютерных "болванчиков-ботов" которые лишь запрограммированы на определенные действия или имитацию игрока, нейросеть способна мыслить, принимать решения, динамически менять обстановку по ходу игры, а значит вплотную приближается к человеку-игроку или даже превосходит его. Также нейросеть способна на обучение, а это значит, что в игре не будет одинаково повторяющихся ситуаций, которые всегда бывают с ботами. Однако это свойство переходит и в недостаток, когда нейросеть значительно обыгрывает живого соперника по мере роста знаний о игре, как это было например в Dota 2 c участием нейросети OpenAI, которая в конце концов обыгрывала живых игроков в 98-99% случаев[2].
История
[править | править код]Изначально компьютерные игры и игровой процесс находились в области исследований различных учёных. В 1951 году, используя Ferranti Mark I[англ.], первый в мире доступный для покупки компьютер, в Манчестерском университете Кристофер Стрэчи[англ.] написал программу, которая играла в шашки, а Дитрих Принц[англ.] написал программу для шахмат[3]. Это были одни из первых компьютерных программ, когда-либо написанных. Симулятор шашек, разработанный Артуром Самуэлем в середине 50-х и начале 60-х годов, в конечном счёте достиг достаточного мастерства, чтобы бросить вызов чемпиону мира[4]. Работа над компьютерными шашками и шахматами достигла кульминации в 1997 году, когда компьютер Deep Blue выиграл матч по шахматам у чемпиона мира Гарри Каспарова с третьего раза[5].
Обобщением подобных программ являются универсальные игровые программы, способные выступить партнёром в целом ряде логических игр, правила которых должны быть описаны на специальном декларативном языке, пример коммерческой реализации подобного подхода — игра Zillions of Games.
Первые компьютерные игры, разработанные в 1960-х и начале 1970-х годов, такие как Spacewar!, Pong и Gotcha (1973), были играми, построенными на дискретной логике и строго ориентированными на соревновании (сражении) двух игроков без ИИ.
Игры, в которых присутствовал однопользовательский режим и компьютерные соперники, начали появляться в 1970-х годах. Первыми заметными играми были аркады Qwak (охота на уток) и Pursuit (симулятор драки). Две текстовые компьютерные игры 1972 года выпуска, Охота на Вампуса (англ. Hunt the Wumpus) и Star Trek, также предоставляли компьютерных соперников. Движение врагов было основано на заранее сохранённых шаблонах.
В аркадной игре 1978 года выпуска Space Invaders присутствовал изменяемый уровень сложности, отчётливые шаблоны движения и внутриигровые события, зависящие от хеш-функций, основанных на вводе игрока. Аркадный шутер Galaxian (1979) содержал более сложные и различные движения врагов.
Популярная аркада Pac-Man (1980) применяла эти шаблоны к игровому лабиринту, а также добавляла различия для каждого врага. Karate Champ (1984) добавляла аналогичные шаблоны поведения к файтингам, хотя плохой игровой ИИ подтолкнул выпуск второй версии игры.
Игры типа Madden Football, Earl Weaver Baseball и Tony La Russa Baseball строили свой ИИ на попытке дублировать на компьютере тренировку или менеджмент выбранной знаменитости. Группы разработчиков игр Madden, Weaver и La Russa проделали обширную работу, чтобы максимизировать точность этих игр. Более поздние спортивные игры позволяли пользователям «настраивать, тюнинговать» переменные в игровом ИИ для создания определяемой игроком организаторской или тренировочной стратегии.
Появление новых игровых жанров в 1990-х годах простимулировало использование таких формальных инструментальных средств искусственного интеллекта, как конечные автоматы (en:finite state machines). Стратегии реального времени (англ. RTS) ставили перед игровым искусственным интеллектом многие новые задачи: неполная информированность, нахождение пути, приём решений в реальном времени и экономическое планирование[6]. У первых игр этого жанра были известные проблемы. Например, в одной из первых стратегий Herzog Zwei был почти нарушен поиск пути, а в Dune II были нарушены очень важные конечные автоматы с тремя состояниями для управления юнитов, вследствие чего компьютерные противники функционировали неправильно. Последующие игры в жанре имели много лучший игровой ИИ.
Более поздние игры использовали недетерминированные методы искусственного интеллекта, в пределах от первого использования нейронных сетей в игре 1996 года Battlecruiser 3000AD до непредсказуемого поведения и оценке действий игрока в таких играх, как Creatures[англ.] и Black & White.
GoldenEye 007 (1997) был одним из первых шутеров от первого лица, в котором игровые боты реагировали на движения и действия игрока, а также использовали укрытия и выполняли перекаты во избежание попадания в них. Боты также были способны бросать ручные гранаты в подходящее время. Позже создатели этой игры улучшили игровой ИИ в игре Perfect Dark. Важным изъяном игрового ИИ в обоих играх было то, что боты всегда знали точное местонахождение игрока, даже если ни один из них не видел его.
Halo (2001) содержал игровой ИИ, который мог использовать транспортные средства и имел базовые принципы командных действий. Боты могли распознавать такие угрозы, как брошенные гранаты и наступающие вражеские транспортные средства, и соответственно могли перемещаться из опасной зоны, создаваемой этими угрозами.
Шутер от первого лица Far Cry (2004) показывал очень продвинутый игровой ИИ для своего времени, хотя и не без ошибок. Враги могли реагировать на стиль игры игрока и пытались по возможности окружить его. В борьбе с игроком боты использовали реальные военные тактики. Враги не имели «читерского» ИИ в том смысле, что они не знали точное месторасположение игрока, а лишь действовали в соответствии с позицией, которую они запоминали.
Значимый вклад в развитие игрового ИИ привнёс шутер от первого лица F.E.A.R., выпущенный компанией Monolith Productions в 2005 году. На своё время он содержал очень «продвинутый» ИИ, который был встречен очень положительно всеми игровыми рецензентами и аналитиками. Бои в игре происходят в закрытых помещениях; боты работают в команде, используют окружение в качестве укрытия, применяют к игроку различные тактики в зависимости от ситуации, штурмуют, отходят, вызывают подкрепления, используют гранаты для «выкуривания» игрока, адекватно реагируют на гранаты, брошенные игроком[7].
Компьютерная ролевая игра The Elder Scrolls IV: Oblivion использовала достаточно сложный игровой ИИ для неигровых персонажей. Заявлено, что неигровые персонажи имеют график формата 24/7 и следуют своим собственным целям собственными путями, однако иногда можно наблюдать, как неигровой персонаж стоит на одном месте несколько часов подряд (бармен за стойкой ночью в отсутствие посетителей). Они едят, спят и исполняют свои каждодневные обязанности. События, случающиеся в игре, могут изменить их распорядок дня и поведение. Они могут измениться из хорошего городского населения до смертельных убийц.
Компьютерная ПК-эксклюзивная игра S.T.A.L.K.E.R.: Тень Чернобыля, вышедшая в марте 2007 года, имела довольно сложный игровой ИИ, который разработчики называли «A-Life». Эта система начала разрабатываться с 2002 года, однако в финальной версии игры большая часть особенностей «A-Life» была «вырезана». Частично «A-Life» был доработан в игре «S.T.A.L.K.E.R.: Чистое небо» 2008 года выпуска. Более подробно о игровом ИИ в этих играх можно узнать здесь[8].
Сетевой кооперативный шутер от первого лица Left 4 Dead (2008) использует новую систему игрового ИИ под названием «Режиссёр» (англ. The Director)[9]. «Режиссёр» используется для процедурного генерирования различного игрового опыта (experience) для игроков при каждом запуске игры. Разработчики игры называют способ, согласно которому работает Режиссёр, «процедурным нарративом». Вместо строго установленных и статических уровней сложности «Режиссёр» анализирует действия и «степень выживания» игроков и в соответствии с этим динамически добавляет последующие события, делая игру интересной, но также и проходимой. Тем не менее, наряду с «Режиссёр» в игре присутствуют и уровни сложности, которые влияют на стойкость и степень повреждений игровых персонажей[10][11].
Игровой искусственный интеллект продолжает развиваться с целью достичь такого уровня, чтобы игрок был неспособен отличить компьютерного соперника от человеческого.
Взгляды
[править | править код]Некоторые игровые программисты рассматривают любую методику, которая используется для создания иллюзии интеллекта, как часть игрового ИИ. Однако этот взгляд является спорным, так как он включает методики, которые широко используются вне движка игрового ИИ. Например, информация о потенциальных будущих столкновениях является важной вводимой информацией в алгоритмы, которые помогают создавать ботов, которые будут достаточно умными для избегания столкновений с объектами. Но те же самые методики определения столкновений являются необходимым и одним из самых важных компонентов физического движка. Точно так же результаты испытательного направления взгляда (взора) бота (en:Line of sight (gaming)) обычно являются важными вводными данными в систему прицеливания бота; вместе с тем эти данные широко используются при рендеринге в графическом движке. Финальным примером является скриптинг, который может быть удобным инструментом для всех аспектов игровой разработки, однако часто сильно ассоциируется с контролированием поведения неигровых персонажей.
Пуристы считают, что выражение «искусственный интеллект» в термине «игровой искусственный интеллект» является преувеличением, поскольку игровой ИИ описывает не интеллект и использует немногие из направлений академической науки «Искусственный интеллект». Принимая во внимания, что «реальный» ИИ обращается к отраслям самообучающихся систем и принятии решений, которые базируются на произвольном вводе данных, и даже к окончательной цели «сильного» ИИ, который может рассуждать, игровой ИИ часто состоит из нескольких эмпирических правил и эвристики, которых достаточно, чтобы предоставить игроку хороший геймплей, ощущения и впечатления от игры.
Увеличение понимания академического ИИ разработчиками игр и растущий интерес академического сообщества к компьютерным играм вызывает вопрос, насколько и в какой степени игровой ИИ отличается от классического. Однако существенные различия между различными прикладными областями искусственного интеллекта означают, что игровой ИИ всё ещё может быть рассмотрен как отдельная под-отрасль ИИ. В частности, способность «законным» образом решить некоторые проблемы ИИ в играх через обман создаёт важное различие. Например, выведение позиции невидимого объекта из прошлых наблюдений может быть трудной проблемой, когда ИИ применён к робототехнике, но в компьютерных играх неигровой персонаж может просто искать позицию в игровом графе (en:Scene graph). Такой обман может привести к нереалистичному поведению и поэтому не всегда желателен. Но его способность служит для различения игрового ИИ приводит к новым проблемам, таким, как когда и как использовать обман.
Использование
[править | править код]В разделе не хватает ссылок на источники (см. рекомендации по поиску). |
Эвристические алгоритмы игрового искусственного интеллекта используются в широком разнообразии во многих отраслях внутри игры. Самое очевидное применение игрового ИИ проявляется в контролировании неигровых персонажей, хотя скриптинг тоже является очень распространённым способом контроля. Поиск пути является другим широко распространённым применением игрового ИИ, — он особенно проявляется в стратегиях реального времени. Поиск пути является методом для определения того, как неигровому персонажу перейти с одной точки на карте к другой: нужно учитывать ландшафт, препятствия и, возможно, «туман войны». Игровой ИИ также связан с динамической игровой балансировкой.
Концепция непредсказуемого (англ. emergent) ИИ была исследована[кем?] в таких играх, как Creatures, Black & White и Nintendogs, и в таких игрушках, как тамагочи. «Домашние животные» в этих играх имеют способность «учиться» из действий, предпринятых игроком, и их поведение изменяется соответственно. В то время, как эти решения взяты из ограниченного множества возможных решений, это действительно часто даёт желаемую иллюзию интеллекта по другую сторону экрана.
Читерский ИИ
[править | править код]В играх, в которых важен творческий потенциал игрока, ИИ не может сражаться на равных с человеком. Чтобы уравнять шансы, применяют читерский, или обманный ИИ.
Обманный ИИ компенсирует отсутствие стратегического мышления какими-либо другими преимуществами над игроком. Например: большее количество жизней, более быстрое передвижение или игнорирование тумана войны[12]. Понятие «читерский» употребляется только по отношению к привилегиям искусственного характера: так, нечеловеческая реакция, стремительность и точность, свойственная компьютерам, читерством не считается[12].
Конечно, компьютер всегда имеет преимущество над человеком — человеку приходится полагаться на зрение и слух с их ограничениями, в то время как компьютер имеет прямой (хоть и ограниченный) доступ к абстракциям движка. «Истинный» игровой ИИ должен иметь и использовать алгоритмы визуальной обработки, однако воссоздание человеческого зрения в настоящее время является недостижимой целью для систем машинного зрения.
Ниже приведён один общий пример читерского игрового ИИ, который присутствует во многих гоночных играх. Если ИИ-игрок достаточно сильно отстаёт от основной массы гонщиков, он внезапно получает огромное увеличение скорости или другие параметры, позволяющие ему нагнать других гонщиков и снова стать конкурентоспособным соперником. Этот метод известен как «метод резиновой нити» (en:Rubber banding) или Catch-Up, потому что он позволяет ИИ-персонажу немедленно вернуться назад в конкурентоспособную позицию. Подобный метод также используется в таких спортивных играх, как серия «Madden NFL». В более продвинутых играх конкурентоспособность неигровых персонажей или ботов может быть достигнута благодаря динамическому игровому балансированию, который можно считать более справедливым, хотя всё ещё техническим обманом, так как ИИ-игроки всё ещё получают преимущества, даже при том, что они соблюдают правила виртуального мира.
Сражение нескольких NPC между собой
[править | править код]Сражение нескольких ИИ-персонажей (ботов, NPC) между собой (англ. AI infighting, monster infighting) является термином, популяризированным шутерами от первого лица, такими, как Doom, выпущенными в 1990-х годах. Это явление происходит, когда двое или более персонажей, управляемых компьютером, случайно атакуют один другого и затем принимают ответные меры, вызывая череду взаимных атак. Это может быть достигнуто наиболее легко перемещением игрового персонажа так, чтобы он временно находился на одной линии с двумя противниками. При такой ситуации один бот будет атаковать игрока независимо от того, находится ли его союзник, другой бот, на линии огня, — перед или позади намеченной цели, — таким образом он подвергает своего компаньона дружественному огню. ИИ-персонаж, которого атаковал другой ИИ-персонаж по ошибке, наиболее часто поменяет свой статус относительно атакующего на «враждебный» и будет его атаковать в ответ, возможно, заставляя этим других ботов атаковать себя.
Это явление приносит пользу игроку двумя способами: сокращает количество врагов, нападающих на игрока и позволяет игроку экономить боеприпасы, очки магии и очки жизни. Дружественный огонь ботов стал новым аспектом игры Doom, вводя этот аспект в другие шутеры от первого лица. Однако, в наиболее новых шутерах от первого лица, боты и NPC не программируются, чтобы принимать ответные меры, если по ним совершен дружественный огонь другими ИИ-персонажами.
Примечания
[править | править код]- ↑ 1 2 Тимур Бухараев. Искусственный интеллект в Heroes of Might and Magic V . Gamer.ru (29 сентября 2006). Дата обращения: 21 января 2010. Архивировано 24 декабря 2014 года.
- ↑ Боты OpenAI выиграли 99.4% матчей против людей . Дата обращения: 19 сентября 2022. Архивировано 20 сентября 2022 года.
- ↑ Jack Copeland. A Brief History of Computing (англ.). AlanTuring.net (июнь 2000). Дата обращения: 13 февраля 2018. Архивировано 22 мая 2019 года.
- ↑ Crevier, 1993, p. 58.
- ↑ McCorduck, 2004, pp. 480—483.
- ↑ Schwab, 2004, pp. 97—112.
- ↑ Владимир Горячев. Рецензия на F.E.A.R. Absolute Games (24 октября 2005). Дата обращения: 15 марта 2009. Архивировано 2 мая 2012 года.
- ↑ Виталий Казунов (Lockust). S.T.A.L.K.E.R.: Чистое небо - интервью о проблемах выживания искусственного интеллекта в Чернобыльской Зоне . GameTech (13 июня 2008). — Интервью с Дмитрием Ясеневым, главным разработчиком игрового ИИ в игре. Дата обращения: 14 мая 2009. Архивировано 23 июня 2008 года.
- ↑ Left 4 Dead (англ.). Valve Corporation. Архивировано 18 ноября 2008 года.
- ↑ Left 4 Dead Hands-on Preview (англ.). Left 4 Dead 411. Архивировано 27 марта 2012 года.
- ↑ Gabe Newell. Gabe Newell Writes for Edge (англ.). edge-online.com (21 ноября 2008). — «The events are trying to give them a sense of narrative. We look at sequences of events and try to take what their actions are to generate new sequences. If they’ve been particularly challenged by one kind of creature then we can use that information to make decisions about how we use that creature in subsequent encounters. This is what makes procedural narrative more of a story-telling device than, say, a simple difficulty mechanism». Дата обращения: 22 ноября 2008. Архивировано 6 января 2009 года.
- ↑ 1 2 Scott, 2002, pp. 19–20.
Литература
[править | править код]- Bourg; Seemann (2004). AI for Game Developers. O’Reilly & Associates. ISBN 0-596-00555-5.
- Buckland (2002). AI Techniques for Game Programming. Muska & Lipman. ISBN 1-931841-08-X.
- Buckland (2004). Programming Game AI By Example. Wordware Publishing. ISBN 1-55622-078-2.
- Champandard (2003). AI Game Development. New Riders. ISBN 1-59273-004-3.
- Funge (1999). AI for Animation and Games: A Cognitive Modeling Approach. A K Peters. ISBN 1-56881-103-9.
- Funge (2004). Artificial Intelligence for Computer Games: An Introduction. A K Peters. ISBN 1-56881-208-6.
- Millington (2005). Artificial Intelligence for Games. Morgan Kaufman. ISBN 0-12-497782-0.
- Smed and Hakonen (2006). Algorithms and Networking for Computer Games. John Wiley & Sons. ISBN 0-470-01812-7.
- Brian Schwab. AI Game Engine Programming. — Charles River Media, 2004. — 624 p. — (Game Programming Series). — ISBN 1-58450-344-0.
- Pamela McCorduck. Machines Who Think. — 2nd edition. — Natick, MA: A. K. Peters, Ltd., 2004. — ISBN 1-56881-205-1.
- Daniel Crevier. AI: The Tumultuous Search for Artificial Intelligence. — New York, NY: BasicBooks, 1993. — ISBN 0-465-02997-3.
- Bob Scott. The Illusion of Intelligence // AI Game Programming Wisdom / editor Steve Rabin. — Charles River Media, 2002.
Ссылки
[править | править код]- AI Game Programmers Guild — Home Архивная копия от 27 августа 2010 на Wayback Machine
- Game AI and Game Programming Articles, Papers, and Resources
- AiGameDev.com | Your Online Hub for Game/AI
- Articles and Tutorials — GameDev.net
- Rubber Band AI
- Алексей "Старпом" Макаренков, Степан Селищев. Котелок — вари! Как работают сложные модели поведения NPC // Игромания : журнал. — Игромедиа, 2009. — № 4/139. Архивировано 19 июля 2009 года.
- Тимур Хорев. Искусственный интеллект: семь самых забавных сбоев // Лучшие Компьютерные Игры : журнал. — 2011. — Май (№ 5 (114)).
- Lennart Steinke. Искусственный интеллект в играх: передвижения монстров . www.iskint.ru. Дата обращения: 22 июля 2009.