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

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

Игровой искусственный интеллект (англ. Game artificial intelligence) — набор программных методик, которые используются в компьютерных играх для создания иллюзии интеллекта в поведении персонажей, управляемых компьютером. Игровой ИИ, помимо методов традиционного искусственного интеллекта, включает также алгоритмы теории управления, робототехники, компьютерной графики и информатики в целом.

Реализация ИИ сильно влияет на геймплей, системные требования и бюджет игры, и разработчики балансируют между этими требованиями, стараясь сделать интересный и нетребовательный к ресурсам ИИ малой ценой. Поэтому подход к игровому ИИ серьёзно отличается от подхода к традиционному ИИ — широко применяются разного рода упрощения, обманы и эмуляции. Например: с одной стороны, в шутерах от первого лица безошибочное движение и мгновенное прицеливание, присущее ботам, не оставляет ни единого шанса человеку, так что эти способности искусственно снижаются. С другой стороны — боты должны делать засады, действовать командой и т. д., для этого применяются «костыли» в виде контрольных точек, расставленных на уровне.

Персонажей компьютерных игр, управляемых игровым искусственным интеллектом, делят на:

  • неигровые персонажи (англ. Non-player character, NPC) — как правило, эти персонажи являются дружественными или нейтральными к человеческому игроку.
  • боты (англ. Bot) — враждебные к игроку персонажи, приближающиеся по возможностям к игровому персонажу; против игрока в любой конкретный момент сражаются небольшое количество ботов. Боты наиболее сложны в программировании.
  • мобы (англ. Mob) — враждебные к игроку «низкоинтеллектуальные» персонажи. Мобы убиваются игроками в больших количествах ради очков опыта, артефактов или прохождения территории.

История[править | править исходный текст]

Изначально компьютерные игры и игровой процесс находились в области исследований различных учёных. В 1951 году, используя Ferranti Mark I, первый в мире доступный для покупки компьютер, в Манчестерском университете Кристофер Стрэчи (en:Christopher Strachey) написал программу, которая играла в шашки, а Дитрих Принц (англ. Dietrich Prinz) написал программу для шахмат.[1] Это были одни из первых компьютерных программ, когда-либо написанных. Симулятор шашек, разработанный Артуром Самуэлем в середине 50-х и начале 60-х годов, в конечном счёте достиг достаточного мастерства, чтобы бросить вызов чемпиону мира.[2] Работа над компьютерными шашками и шахматами достигла кульминации в 1997 году, когда компьютер Deep Blue выиграл матч по шахматам у чемпиона мира Гарри Каспарова.[3]

Обобщением подобных программ являются универсальные игровые программы, способные выступить партнёром в целом ряде логических игр, правила которых должны быть описаны на специальном декларативном языке, пример коммерческой реализации подобного подхода — игра Zillions of Games.

Первые компьютерные игры, разработанные в 1960-х и начале 1970-х годов, такие как Spacewar!, Pong и Gotcha (1973), были играми, построенными на дискретной логике и строго ориентированными на соревновании (сражении) двух игроков без ИИ.

Игры, в которых присутствовал одиночный (синглплеерный) режим и компьютерные соперники, начали появляться в 1970-х годах. Первыми заметными играми были аркады Qwak (охота на уток) и Pursuit (симулятор драки). Две текстовые компьютерные игры 1972 года выпуска, Охота на Вампуса (англ. Hunt the Wumpus) и Star Trek, также предоставляли компьютерных соперников. Движение врагов было основано на заранее сохранённых шаблонах.

Персонаж на световом мотоцикле участвует в гонке в игре GLtron

В аркадной игре 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) ставили перед игровым искусственным интеллектом многие новые задачи: неполная информированность, нахождение пути, приём решений в реальном времени и экономическое планирование.[4] У первых игр этого жанра были известные проблемы. Например, в одной из первых стратегий 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 году. На своё время он содержал очень «продвинутый» ИИ, который был встречен очень положительно всеми игровыми рецензентами и аналитиками. Бои в игре происходят в закрытых помещениях; боты работают в команде, используют окружение в качестве укрытия, применяют к игроку различные тактики в зависимости от ситуации, штурмуют, отходят, вызывают подкрепления, используют гранаты для «выкуривания» игрока, адекватно реагируют на гранаты, брошенные игроком.[5]

Компьютерная ролевая игра 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 года выпуска. Более подробно о игровом ИИ в этих играх можно узнать здесь.[6]

Сетевой кооперативный шутер от первого лица Left 4 Dead (2008) использует новую систему игрового ИИ под названием «Режиссёр» (англ. The Director).[7] «Режиссёр» используется для процедурного генерирования различного игрового опыта (experience) для игроков при каждом запуске игры. Разработчики игры называют способ, согласно которому работает Режиссёр, «процедурным нарративом». Вместо строго установленных и статических уровней сложности «Режиссёр» анализирует действия и «степень выживания» игроков и в соответствии с этим динамически добавляет последующие события, делая игру интересной, но также и проходимой. Тем не менее, наряду с «Режиссёр» в игре присутствуют и уровни сложности, которые влияют на стойкость и степень повреждений игровых персонажей.[8][9]

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

Взгляды[править | править исходный текст]

Некоторые игровые программисты рассматривают любую методику, которая используется для создания иллюзии интеллекта, как часть игрового ИИ. Однако этот взгляд является спорным, так как он включает методики, которые широко используются вне движка игрового ИИ. Например, информация о потенциальных будущих столкновениях является важной вводимой информацией в алгоритмы, которые помогают создавать ботов, которые будут достаточно умными для избегания столкновений с объектами. Но те же самые методики определения столкновений являются необходимым и одним из самых важных компонентов физического движка. Точно так же результаты испытательного направления взгляда (взора) бота (en:Line of sight (gaming)) обычно являются важными вводными данными в систему прицеливания бота; вместе с тем эти данные широко используются при рендеринге в графическом движке. Финальным примером является скриптинг, который может быть удобным инструментом для всех аспектов игровой разработки, однако часто сильно ассоциируется с контролированием поведения неигровых персонажей.

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

Увеличение понимания академического ИИ разработчиками игр и растущий интерес академического сообщества к компьютерным играм вызывает вопрос, насколько и в какой степени игровой ИИ отличается от классического. Однако, существенные различия между различными прикладными областями искусственного интеллекта означают, что игровой ИИ всё ещё может быть рассмотрен как отдельная под-отрасль ИИ. В частности, способность «законным» образом решить некоторые проблемы ИИ в играх через обман создаёт важное различие. Например, выведение позиции невидимого объекта из прошлых наблюдений может быть трудной проблемой, когда ИИ применён к робототехнике, но в компьютерных играх неигровой персонаж может просто искать позицию в игровом графе (en:Scene graph). Такой обман может привести к нереалистичному поведению и поэтому не всегда желателен. Но его способность служит для различения игрового ИИ приводит к новым проблемам, таким как когда и как использовать обман.

Использование[править | править исходный текст]

Эвристические алгоритмы игрового искусственного интеллекта используются в широком разнообразии во многих отраслях внутри игры. Самое очевидное применение игрового ИИ проявляется в контролировании неигровых персонажей, хотя скриптинг тоже является очень распространённым способом контроля. Поиск пути является другим широко распространённым применением игрового ИИ, — он особенно проявляется в стратегиях реального времени. Поиск пути является методом для определения того, как неигровому персонажу перейти с одной точки на карте к другой: нужно учитывать ландшафт, препятствия и, возможно, «туман войны». Игровой ИИ также связан с динамической игровой балансировкой.

Концепция непредсказуемого (англ. emergent) ИИ была недавно исследована в таких играх как Creatures, Black & White и Nintendogs и в таких игрушках как тамагочи. «Домашние животные» в этих играх имеют способность «учиться» из действий, предпринятых игроком, и их поведение изменяется соответственно. В то время, как эти решения взяты из ограниченного множества возможных решений, это действительно часто даёт желаемую иллюзию интеллекта по другую сторону экрана.

Читерский ИИ[править | править исходный текст]

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

Обманный ИИ компенсирует отсутствие стратегического мышления какими-либо другими преимуществами над игроком. Например: большее количество жизней, более быстрое передвижение или игнорирование тумана войны.[10] Понятие «читерский» употребляется только по отношению к привилегиям искусственного характера: так, нечеловеческая реакция, стремительность и точность, свойственная компьютерам, читерством не считается.[10]

Цитата

Читить можно, но незаметно. Лучше сделать много маленьких читов, чем один большой.

Тимур Бухараев, Nival[11]

Конечно, компьютер всегда имеет преимущество над человеком — человеку приходится полагаться на зрение и слух с их ограничениями, в то время как компьютер имеет прямой (хоть и ограниченный) доступ к абстракциям движка. Однако никто серьёзно не полагает, что «истинный» игровой ИИ должен иметь и использовать алгоритмы визуальной обработки, тем более, что воссоздание человеческого зрения в настоящее время является недостижимой целью для систем машинного зрения.

Ниже приведён один общий пример читерского игрового ИИ, который присутствует во многих гоночных играх. Если ИИ-игрок достаточно сильно отстаёт от основной массы гонщиков, он внезапно получает огромное увеличение скорости или другие параметры, позволяющие ему нагнать других гонщиков и снова стать конкурентоспособным соперником. Этот метод известен как «метод резиновой нити» (en:Rubber banding) или Catch-Up, потому что он позволяет ИИ-персонажу немедленно вернуться назад в конкурентоспособную позицию. Подобный метод также используется в таких спортивных играх, как серия «Madden NFL». В более продвинутых играх конкурентоспособность неигровых персонажей или ботов может быть достигнута благодаря динамическому игровому балансированию, который можно считать более справедливым, хотя всё ещё техническим обманом, так как ИИ-игроки всё ещё получают преимущества, даже при том, что они соблюдают правила виртуального мира.

Сражение нескольких NPC между собой[править | править исходный текст]

Сражение нескольких ИИ-персонажей (ботов, NPC) между собой (англ. AI infighting, monster infighting) является термином, популяризированным шутерами от первого лица, такими как Doom, выпущенными в 1990-х годах. Это явление происходит, когда двое или более персонажей, управляемых компьютером, случайно атакуют один другого и затем принимают ответные меры, вызывая череду взаимных атак. Это может быть достигнуто наиболее легко перемещением игрового персонажа так, чтобы он временно находился на одной линии с двумя противниками. При такой ситуации один бот будет атаковать игрока независимо от того, находится ли его союзник, другой бот, на линии огня, — перед или позади намеченной цели, — таким образом он подвергает своего компаньона дружественному огню. ИИ-персонаж, которого атаковал другой ИИ-персонаж по ошибке, наиболее часто поменяет свой статус относительно атакующего на «враждебный» и будет его атаковать в ответ, возможно заставляя этим других ботов атаковать себя.

Это явление приносит пользу игроку двумя способами: сокращает количество врагов, нападающих на игрока и позволяет игроку экономить боеприпасы, очки магии и очки жизни. Дружественный огонь ботов стал новым аспектом игры Doom, вводя этот аспект в другие шутеры от первого лица. Однако, в наиболее новых шутерах от первого лица, боты и NPC не программируются, чтобы принимать ответные меры, если по ним совершен дружественный огонь другими ИИ-персонажами.

Примечания[править | править исходный текст]

  1. See «A Brief History of Computing» at AlanTuring.net.
  2. Шаблон:Crevier 1993, p. 58
  3. Шаблон:McCorduck 2004, p. 480—483
  4. Schwab, 2004, p. 97-112
  5. Nomad. Рецензия на F.E.A.R.. Absolute Games (24 октября 2005 года). Проверено 15 марта 2009. Архивировано из первоисточника 28 марта 2012.
  6. Виталий Казунов (Lockust). S.T.A.L.K.E.R.: Чистое небо - интервью о проблемах выживания искусственного интеллекта в Чернобыльской Зоне. GameTech (13 июня 2008 года). — Интервью с Дмитрием Ясеневым, главным разработчиком игрового ИИ в игре. Проверено 14 мая 2009. Архивировано из первоисточника 29 февраля 2012.
  7. Left 4 Dead. Valve Corporation(недоступная ссылка — история). Архивировано из первоисточника 18 ноября 2008.
  8. Left 4 Dead Hands-on Preview. Left 4 Dead 411. Архивировано из первоисточника 28 марта 2012.
  9. Newell, Gabe 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.
  10. 1 2 Scott, Bob The Illusion of Intelligence // AI Game Programming Wisdom / Rabin, Steve. — Charles River Media, 2002. — P. 19–20.
  11. Ошибка в сносках?: Неверный тег <ref>; для сносок heroes_interview не указан текст

Ссылки[править | править исходный текст]