Remove ads
набор программных методик, которые применяют в компьютерных играх для создания иллюзии интеллекта в поведении персонажей Из Википедии, свободной энциклопедии
Игровой искусственный интеллект (англ. Game artificial intelligence) — набор программных методик, которые используются в компьютерных играх для создания иллюзии интеллекта в поведении персонажей, управляемых компьютером. Игровой ИИ, помимо методов традиционного искусственного интеллекта, включает также алгоритмы теории управления, робототехники, компьютерной графики и информатики в целом.
Реализация ИИ сильно влияет на геймплей, системные требования и бюджет игры, и разработчики балансируют между этими требованиями, стараясь сделать интересный и нетребовательный к ресурсам ИИ малой ценой. Поэтому подход к игровому ИИ серьёзно отличается от подхода к традиционному ИИ — широко применяются разного рода упрощения, обманы и эмуляции. Например: с одной стороны, в шутерах от первого лица безошибочное движение и мгновенное прицеливание, присущее ботам, не оставляет ни единого шанса человеку, так что эти способности искусственно снижаются. С другой стороны — боты должны делать засады, действовать командой и т. д., для этого применяются «костыли» в виде контрольных точек, расставленных на уровне.
Персонажей компьютерных игр, управляемых игровым искусственным интеллектом, делят на:
Изначально компьютерные игры и игровой процесс находились в области исследований различных учёных. В 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) между собой (англ. AI infighting, monster infighting) является термином, популяризированным шутерами от первого лица, такими, как Doom, выпущенными в 1990-х годах. Это явление происходит, когда двое или более персонажей, управляемых компьютером, случайно атакуют один другого и затем принимают ответные меры, вызывая череду взаимных атак. Это может быть достигнуто наиболее легко перемещением игрового персонажа так, чтобы он временно находился на одной линии с двумя противниками. При такой ситуации один бот будет атаковать игрока независимо от того, находится ли его союзник, другой бот, на линии огня, — перед или позади намеченной цели, — таким образом он подвергает своего компаньона дружественному огню. ИИ-персонаж, которого атаковал другой ИИ-персонаж по ошибке, наиболее часто поменяет свой статус относительно атакующего на «враждебный» и будет его атаковать в ответ, возможно, заставляя этим других ботов атаковать себя.
Это явление приносит пользу игроку двумя способами: сокращает количество врагов, нападающих на игрока и позволяет игроку экономить боеприпасы, очки магии и очки жизни. Дружественный огонь ботов стал новым аспектом игры Doom, вводя этот аспект в другие шутеры от первого лица. Однако, в наиболее новых шутерах от первого лица, боты и NPC не программируются, чтобы принимать ответные меры, если по ним совершен дружественный огонь другими ИИ-персонажами.
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.