Ігровий штучний інтелект

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук

Ігровий штучний інтелект (англ. Game artificial intelligence) — набір програмних методик, які використовуються у відеоіграх для створення ілюзії інтелекту в поведінці персонажів, керованих комп'ютером. Ігровий ШІ, крім методів традиційного штучного інтелекту, включає також алгоритми теорії керування, робототехніки, комп'ютерної графіки та інформатики у цілому.

Реалізація ШІ сильно впливає на геймплей, системні вимоги і бюджет гри, і розробники балансують між цими вимогами, намагаючись зробити цікавий і невимогливий до ресурсів ШІ малою ціною. Тому підхід до ігрового ШІ серйозно відрізняється від підходу до традиційного ШІ — широко застосовуються різного роду спрощення, обмани й емуляції. Наприклад: з одного боку, в шутерах від першої особи безпомилковий рух і миттєве прицілювання, властиве ботам, не залишає жодного шансу людині, так що ці здатності штучно знижуються. З іншого боку — боти повинні робити засідки, діяти командою й т.д., для цього застосовуються «костилі» у вигляді контрольних точок, розставлених на рівні.

Цитата

Головне завдання ШІ — не виграти в гравця, а красиво йому віддатися.

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

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

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

Історія[ред.ред. код]

Спочатку комп'ютерні ігри й ігровий процес перебували у сфері досліджень різних учених. В 1951 році, використовуючи Ferranti Mark I, перший у світі доступний для покупки комп'ютер, в манчестерському університеті Кристофер Стречі (en:Christopher Strachey) написав програму, що грала в шашки, а Дитріх Принц (англ. Dietrich Prinz) написав програму для шахів.[2] Це були одні з перших коли-небудь написаних комп'ютерних програм. Симулятор шашок, розроблений Артуром Семюелем (en:Arthur Samuel) у середині 50-х і початку 60-х років, в остаточному підсумку досяг достатньої майстерності, щоб кинути виклик чемпіонові світу. Робота над комп'ютерними шашками й шахами досягла кульмінації в 1997 році, коли комп'ютер Deep Blue виграв матч з шахів у чемпіона світу Гарі Каспарова.

Перші комп'ютерні ігри, розроблені в 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) ставили перед ігровим штучним інтелектом багато нових задач: неповна інформованість, знаходження шляху, прийняття рішень у реальному часі й економічне планування[3] У перших ігор цього жанру були певні проблеми. Наприклад, в одній з перших стратегій 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 у 2005 році. На свій час він містив дуже «просунутий» ШІ, що був зустрінутий дуже позитивно всіма ігровими рецензентами й аналітиками. Бої в грі відбуваються в закритих приміщеннях; боти працюють у команді, використовують середовище як укриття, застосовують до гравця різні тактики залежно від ситуації, штурмують, відходять, викликають підкріплення, використовують гранати для «викурювання» гравця, адекватно реагують на гранати, кинуті гравцем[4]

Комп'ютерна рольова гра 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 року випуску. Докладніше про ігровий ШІ у цих іграх можна довідатися тут.[5]

Мережний кооперативний шутер від першої особи Left 4 Dead (2008) використовує нову систему ігрового ШІ з назвою «Режисер» (англ. The Director).[6] «Режисер» використовується для процедурного генерування різного ігрового досвіду (experience) для гравців при кожному запуску гри. Розроблювачі гри називають спосіб, відповідно до якого працює «Режисер», «процедурним наративом». Замість строго встановлених і статичних рівнів складності «Режисер» аналізує дії й «ступінь виживання» гравців і відповідно до цього динамічно додає наступні події, роблячи гру цікавою, але також і прохідною. Проте, поряд з «Режисером» у грі присутні й рівні складності, які впливають на стійкість і ступінь ушкоджень ігрових персонажів[7][8]

Ігровий штучний інтелект продовжує розвиватися з метою досягти такого рівня, щоби гравець був нездатний відрізнити комп'ютерного суперника від людського.

Погляди[ред.ред. код]

Деякі ігрові програмісти розглядають будь-яку методику, що використовується для створення ілюзії інтелекту, як частину ігрового ШІ. Однак цей погляд є спірним, тому що він включає методики, які широко використовуються поза рушієм ігрового ШІ. Наприклад, інформація про потенційні майбутні зіткнення є важливою інформацією, що вводиться в алгоритми, які допомагають створювати ботів, що будуть досить розумними для уникнення зіткнень з об'єктами. Але ті ж самі методики виявлення зіткнень є необхідним і одним із найважливіших компонентів фізичного рушія. Точно так само результати іспитового напрямку погляду бота (en:Line of sight (gaming)) звичайно є важливими даними, що вводяться в систему прицілювання бота; разом із тим ці дані широко використовуються при рендерингу в графічному рушії. Фінальним прикладом є скриптинг, що може бути зручним інструментом для всіх аспектів ігрової розробки, однак часто сильно асоціюється з контролюванням поведінки неігрових персонажів.

Пуристи вважають, що вираз «штучний інтелект» у терміні «ігровий штучний інтелект» є перебільшенням, оскільки ігровий ШІ описує не інтелект і використовує тільки деякі з напрямків академічної науки «Штучний інтелект». Беручи до уваги, що «реальний» ШІ звертається до галузей систем, що самонавчаються, і прийняття рішень, які базуються на довільному уведенні даних, і навіть до остаточної мети «сильного» ШІ, що може мислити, ігровий ШІ часто складається з декількох емпіричних правил і евристики, яких досить, щоб надати гравцеві гарний геймплей, відчуття й враження від гри.

Покращення розуміння академічного ШІ розробниками ігор і зростаючий інтерес академічного співтовариства до комп'ютерних ігор викликає питання, наскільки й у якій мірі ігровий ШІ відрізняється від класичного. Однак, істотні розходження між різними прикладними галузями штучного інтелекту означають, що ігровий ШІ все ще може бути розглянутий як окрема підгалузь ШІ. Зокрема, здатність «законним» чином вирішити деякі проблеми ШІ в іграх через обман утворює важливе розходження. Наприклад, виведення позиції невидимого об'єкта з минулих спостережень може бути важкою проблемою, коли ШІ застосований до робототехніки, але в комп'ютерних іграх неігровий персонаж може просто шукати позицію в ігровому графі (en:Scene graph). Такий обман може призвести до нереалістичної поведінки й тому не завжди бажаний. Але його здатність служити для розрізнення ігрового ШІ веде до нових проблем, таких як: коли і як використовувати обман.

Використання[ред.ред. код]

Евристичні алгоритми ігрового штучного інтелекту використовуються в широкій розмаїтості в багатьох галузях усередині гри. Найочевидніше застосування ігрового ШІ проявляється в контролюванні неігрових персонажів, хоча скриптинг теж є дуже розповсюдженим способом контролю. Пошук шляху (en:Pathfinding) є іншим широко розповсюдженим застосуванням ігрового ШІ, — він особливо проявляється в стратегіях реального часу. Пошук шляху є методом для визначення того, як неігровому персонажеві перейти з однієї точки на мапі до іншої: потрібно враховувати ландшафт, перешкоди й, можливо, «туман війни». Ігровий ШІ також пов'язаний із динамічним ігровим балансуванням.

Концепція непередбачуваного (англ. emergent) ШІ була недавно досліджена в таких іграх як Creatures, Black & White і Nintendogs і в таких іграшках, як тамагочі. «Свійські тварини» у цих іграх мають здатність «навчатися» на діях, вчинених гравцем, і їхня поведінка змінюється відповідно. У той час, як ці рішення взяті з обмеженої множини можливих рішень, це дійсно часто дає бажану ілюзію інтелекту по іншу сторону екрана.

Читерський ШІ[ред.ред. код]

В іграх, у яких важливий творчий потенціал гравця, ШІ не може боротися на рівні з людиною. Щоб зрівняти шанси, застосовують читерський, або оманний ШІ.

Оманний ШІ компенсує відсутність стратегічного мислення якими-небудь іншими перевагами над гравцем. Наприклад: більша кількість життів, швидше пересування або ігнорування туману війни.[9] Поняття «читерський» вживається тільки стосовно привілеїв штучного характеру: так, нелюдська реакція, стрімкість і точність, властива комп'ютерам, читерством не вважається[9]

Цитата

Читити можна, але непомітно. Краще зробити багато маленьких читів, ніж один великий.

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

Звичайно, комп'ютер завжди має перевагу над людиною — людині доводиться покладатися на зір і слух з їхніми обмеженнями, у той час як комп'ютер має прямий (хоча й обмежений) доступ до абстракцій рушія. Однак ніхто серйозно не вважає, що «правдивий» ігровий ШІ повинен мати й використовувати алгоритми візуальної обробки, тим більше, що відтворення людського зору в цей час є недосяжною метою для систем машинного зору.

Нижче наведений один загальний приклад читерського ігрового ШІ, що є присутнім у багатьох гоночних іграх. Якщо ШІ-Гравець досить сильно відстає від основної маси гонщиків, він раптово отримує величезне збільшення швидкості або інші параметри, що дозволяють йому нагнати інших гонщиків і знову стати конкурентоспроможним суперником. Цей метод відомий як «метод гумової нитки» (en:Rubber banding), тому що він дозволяє ШІ-Персонажеві негайно повернутися назад у конкурентоспроможну позицію. Подібний метод також застосовується в таких спортивних іграх, як серія «Madden NFL». У просунутіших іграх конкурентоспроможність неігрових персонажів або ботів може досягатися завдяки динамічному ігровому балансуванню, яке можна вважати справедливішим, хоча все ще технічним обманом, тому що ШІ-Гравці все ще отримують переваги, навіть при тому, що вони дотримують правил віртуального світу.

Бій декількох NPC між собою[ред.ред. код]

Бій декількох ШІ-Персонажів (ботів, NPC) між собою (англ. AI infighting, monster infighting) є терміном, популяризованим шутерами від першої особи, такими як Doom, випущеними в 1990-х роках. Це явище відбувається, коли двоє або більше персонажів, керованих комп'ютером, випадково атакують один одного й потім уживають відповідних заходів, викликаючи чергу взаємних атак. Це може бути досягнуте найлегше переміщенням ігрового персонажа так, щоб він тимчасово перебував на одній лінії із двома супротивниками. У такій ситуації один бот буде атакувати гравця незалежно від того, чи перебуває його союзник, інший бот, на лінії вогню, — перед або позад наміченою ціллю, — у такий спосіб він піддає свого компаньйона дружньому вогню. ШІ-Персонаж, якого атакував інший ШІ-Персонаж помилково, найчастіше поміняє свій статус щодо атакуючого на «ворожий» і буде його атакувати у відповідь, можливо змушуючи цим інших ботів атакувати себе.

Це явище приносить користь гравцеві двома способами: скорочує кількість ворогів, що нападають на гравця, і дозволяє гравцеві заощаджувати боєприпаси, очки магії і очки життя. Дружній вогонь ботів став новим аспектом гри Doom, уводячи цей аспект в інші шутери від першої особи. Однак, у найновіших шутерах від першої особи, боти й NPC не програмуються так, щоби вживати відповідних заходів, якщо по них зроблений дружній вогонь іншими ШІ-Персонажами.

Примітки[ред.ред. код]

  1. а б Тимур Бухараев (2006-09-29). «Штучний інтелект в Heroes of Might and Magic V». Gamer.ru. Архів оригіналу за 2013-07-08. (рос.)
  2. See «A Brief History of Computing» at AlanTuring.net.
  3. Schwab, 2004, p. 97-112
  4. Nomad (24 жовтня 2005 року). «Рецензія на F.E.A.R.». Absolute Games. 
  5. Віталій Казунов (Lockust) (13 червня 2008 року). «S.T.A.L.K.E.R.: Чисте небо - інтерв'ю про проблеми виживання штучного інтелекту в Чорнобильській Зоні». GameTech. Архів оригіналу за 2013-07-08. 
  6. «Left 4 Dead». Valve Corporation. 
  7. «Left 4 Dead Hands-on Preview». Left 4 Dead 411. Архів оригіналу за 2012-03-28. 
  8. Newell, Gabe (2008-11-21). «Gabe Newell Writes for Edge». edge-online.com. Архів оригіналу за 2013-07-08. «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. » 
  9. а б Scott, Bob (2002). «The Illusion of Intelligence». У Rabin, Steve. AI Game Programming Wisdom. Charles River Media. с. 19–20. 

Посилання[ред.ред. код]

російськомовні джерела