Кібердемони: штучний інтелект DOOM 2016

Шутери від першої особи за довгі роки еволюціонували і стали дуже цікавою середовищем для неігрових персонажів: солдати ховаються за укриттями, чужі переслідують гравця, а напарники допомагають йому в запалі бою. Все це вписується в концепцію дизайну сучасних шутерів: утримання території, створення рубежів оборони і стримування гравця. У цій статті я на прикладі перезапуску франшизи DOOM 2016 року розповім про те, що відбувається, коли розробники відмовляються використовувати в грі стандартний кодекс поведінки.


DOOM побудовано на філософії, відомої як “push forward combat” («агресивний бій»), що впливає на наратив, дизайн рівнів, переміщення гравця і багато іншого. Якщо коротко, то він є критичним поглядом і реакцією на сучасні шутери. У той час як Call of Duty змушує гравця повзати за укриттями і знімати ворогів здалеку, DOOM порушує ці правила, створюючи потужний, швидкий, «спинномозкової» геймплей. Але як це все влаштовано, і що робить штучний інтелект (далі ШІ), щоб зробити ігровий процес живим?

Агресивний бій
Філософія Push Forward Combat охоплює всі аспекти DOOM: вона визначає фундамент ігри і способи взаємодії гравців з ШІ в бою. Як пояснив Курт Лауди у своїй доповіді на GDC 2018, гра у великій мірі запозичує механіки оригінальних ігор DOOM: швидкий рух, таємні коридори і запеклі перестрілки. Але хоча вона прагне повернутися до коріння, їй в той же час потрібно залучити нову аудиторію, ніколи не грала в олдскульные FPS, в тому числі і в DOOM з DOOM II: Hell on Earth. Тому агресивний бій побудований на чотирьох стовпах:

  • Швидкість руху гравця і демонів.
  • Індивідуальність демонів
  • Унікальність кожного зброї
  • Збереження мощі гравця навіть у найтяжчій ситуації.

Ці чотири стовпи дозволили створити і вдосконалити механіки гри; завдяки їм ставало очевидно, які з механіки посилювали принципом агресивного бою, а які йому заважали. Тому з гри прибрана перезарядка зброї, адже вона заважала течією бою, а також доданий подвійний стрибок, що дозволяє швидше дістатися до ворогів. Нарешті, базовий геймплей повинен бути інтуїтивним і цікавим, але в той же час він може ставати все більш складним, винагороджуючи гравця за правильний вибір цілей і зброї. Бої в DOOM часто відбуваються на середніх і великих аренах, асиметричних за своєю природою, з безліччю переміщень по вертикалі. Вони набагато ближче до багатокористувацьким онлайн-шутер, ніж до традиційних однокористувальницька кампаній. Додайте до складу ворожих демонів, і ви отримаєте те, що id називає «бойовими шахами»: завдання гравця — з’ясувати, якого демона знищити першим, і як до нього дістатися.


Для реалізації і відточування такого ігрового процесу буде потрібно набір нових інструментів. Використовувані в ньому системи ШІ створені під серйозним впливом традиційних шутерів від першої особи і адаптовані під концепцію DOOM. Я ще повернуся до того, як саме ІІ DOOM завдяки своїй структурі підкріплює концепцію Push Forward Combat, але спочатку мені б хотілося дослідити роботу архітектур ІІ і вивчити джерела її виникнення. Для цього нам потрібно спочатку розповісти про DOOM, якого ніколи не було, і про те, як він перетворився на гру 2016 року.

Порятунок DOOM

Добре відомо, що цикл розробки DOOM 2016 був складним: франшиза мала проблеми самоідентичності і не знала, у що їй перетворитися в сучасній епосі. Спочатку гра нагадувала більш сучасні шутери, але врешті-решт її здали в утиль, і з цього моменту почав набувати форму той DOOM , який ми знаємо сьогодні. Саме в процесі цього переходу з’ясувалося, які інструменти тулчейна ІЇ можна адаптувати під гру і як вони здатні допомогти в реалізації концепції агресивного бою.

DOOM 4 — як він називався спочатку знаходився в розробці з 2008 року. Батьківська компанія ZeniMax Media, яка купила id Software в 2009 році, була незадоволена процесом розробки і після внутрішньої ревізії в 2011 році наполягала на змінах. Близькі до проекту джерела, що побажали залишитися анонімними, повідомили мені, що команда розробників Rage, готувалася до початку препродакшена сиквела, була змушена припинити роботу і злитися з командою DOOM 4. «Call of Doomy», як зневажливо називали гру в студії, різко змінила курс, перетворившись з DOOM 4 у просто DOOM. Це призвело до серйозного розчарування — ідеї та особистості опиралися новому обраниому напрямі. Новий дизайн проекту змусив Метта Хупера приступити до пошуків, необхідним для відродження енергії класичного DOOM. Мої джерела стверджують, що успіх мода Gothic DOOM розробника SgtMarkIV став чимось на зразок підтвердження правильності цього ідеалу. Це призвело до створення нового геймплейного демо, випущеного в 2012 році, в якому робився наголос на філософію push forward combat, а також була перероблена система glory kill (прим. пер.: система ефектного добивання ворога в ближньому бою), вже присутня в DOOM 4.

Читайте також  Перевірка даних — Java & Spring Validation

Разом з безліччю досвідчених розробників, які перейшли з команди Rage до створення DOOM, новий проект перенесли купу інструментів і систем і з самої гри, і з движка id Tech 5. Давайте поговоримо про базові інструменти архітектури ІЇ у движку id Tech, а також про те, як ці системи створені і відполіровані під Rage, були надалі портовані для DOOM.

Архітектура ШІ
Розробка тулчейна ШІ як частини движка id Tech 5, почалася ще в 2005 році, майже відразу після випуску DOOM 3. Вперше він був протестований у справі в Rage. Основна система прийняття рішень ворожого ШІ у Rage і DOOM складається з ієрархічних кінцевих автоматів (Hierarchical Finite State Machines): різновиди класичної реалізації ШІ, що забезпечує підвищену гнучкість і контроль над послідовністю станів з їх поведінкою.

Ієрархічні кінцеві автомати

Кінцеві автомати (Finite State Machines) тісно пов’язані з принципом стану (state), протягом якого ШІ може виконувати певну поведінку. Також при дотриманні певних умов ШІ може переходити в інші стани. З’єднання безлічі станів в групи і реалізація переходів між ними дозволяє створити гнучкі, що реагують на ситуацію і цікаві поведінки. В одному з моїх перших відео про Batman: Arkham Asylum розповідається, як вони використовувалися для стелса і боїв.


Однак схема може швидко стати дуже складною: кількість станів збільшується, а варіантів переходів між ними стає ще більше. Щоб справитися з цією проблемою, ієрархічні кінцеві автомати (ІКА) групують певні набори станів і виконують їх одним кластером з чіткими переходами всередину і назовні цього кластера.


По суті, кластери створюють маленькі кінцеві автомати усередині великого кінцевого автомата, в які і з яких система може виконувати перехід. Це дозволяє створити більш впорядкований і структуроване поведінка, при якому окремі стани присутні в одній або декількох групах. Завдяки цьому конкретні аспекти — переміщення в укриття, атака на відстані або наближення — можна обробляти і моделювати для кожного демона.


Це відрізняє DOOM від багатьох сучасних шутерів, в яких кінцеві автомати зустрічаються набагато рідше, а популярність набувають дерева поводжень (Behaviour Trees) або навіть HTN-планування.

Система ІКА в Rage дозволяла дизайнерам з певною гнучкістю налаштовувати поведінки в конкретних ситуаціях, але створювати такі кінцеві автомати могли тільки програмісти. Як розповіли мої джерела, найкраще було надати команді дизайнерів великий набір цікавих і захоплюючих поводжень для кожної битви. Це дозволяло зберегти цілісність систем ШІ і мінімізувати ймовірність їх несподіваного збою або поведінки. Для забезпечення цілісності всього процесу кінцеві автомати DOOM можна створювати тільки за допомогою спеціально створеного редактора, має інтерфейс з кодом на C++, який використовувався для побудови окремих станів. Цей редактор став розширеною версією раніше створеної макромови для Rage, який у редакторі використовується для запису станів та переходів нового кінцевого автомата. Він виконує перехресні посилання з файлами заголовків коду на C++, які задають всі можливі переходи для поточного стану. Це виявилося неймовірно цінною особливістю для команди програмістів, тому що дозволило швидко перевіряти цілісність і структурованість всього кінцевого автомата або вручну, або за допомогою інструменту візуалізації графів. Готова реалізація вийшла швидкою і не вимагала управління величезною кількістю ресурсів у грі. Однак незважаючи на те, що створені інструменти забезпечили чітку візуалізацію структури і поведінки кінцевих автоматів, вони також збільшили кількість абстракцій, що ускладнило покрокове виконання і відладку.

На додаток до ІКА, використовуваної для прийняття рішень про дії демонів, DOOM застосовуються дві системи, створені для Rage: система укриттів і система анімацій.

Система анімацій

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

Система укриттів

Нарешті, в Rage була створена і протестована система укриттів, активно взаємодіє з ШІ прийняття рішень, AnimWeb і вбудованими інструментами навігації. Бойова система Rage, а значить і її система укриттів надихалися попередніми іграми Halo, в яких загони монстрів ховались в області з хорошими укриттями, в той час як тяжкі вороги, такі як Shrouded і Gearhead, атакували гравця на відкритому просторі. Ця система враховувала відстані між гравцем і розташовуються дизайнерами оборонними позиціями, позиції ШІ щодо областей хороших укриттів, видимість ІІ-супротивників для гравця, присутність в укритті дружніх ШІ, оптимальні позиції для кидків гранат і багато іншого. Ймовірно, ви ставите питання, чому це так важливо: ШІ в DOOM ніколи не ховається за укриттями, та й самі укриття в цілому порушують концепцію агресивного бою. Як я поясню нижче, ця система неймовірно важлива для позиціонування демонів в DOOM, але абсолютно несподіваним чином!

Читайте також  DevCore: програмна частина проекту DevBoy

Процес розробки і випуску Rage дозволив довести всі ці системи ШІ до рівня зрілості і використовувати їх в інших продуктах. Вони не тільки мігрували в DOOM 2016 — в якому використовується движок id Tech 6 — а й застосовуються в грі 2014 року Wolfenstein: The New Order компанії MachineGame. Хоча ці системи вже довели свою цінність, для використання в DOOM їм необхідні були подальші налаштування і удосконалення. Крім того, дизайнерам потрібно було зробити так, щоб поведінка системи знаходилося в контексті агресивного бою. Тому давайте дізнаємося про дизайнерських секрети, що дозволили реалізувати цю філософію.

Дизайн ШІ
Тепер, коли ми знаємо про внутрішні системи ШІ, давайте розберемося, як вони використовуються для створення ворогів в DOOM і підкріплення ядра дизайну. Тому повернемося до чотирьох геймплейний стовпам агресивного бою: швидкості, індивідуальності демонів, унікальності зброї і мощі гравця. Що ж робить ШІ для посилення цих аспектів?

Швидкість

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


Однак ще більш цікава система позиціонування ІІ в бою для підтримки своєї ефективності і забезпечення свободи руху гравця. Стріляють вороги, такі як імпи, какодемони і манкубусы, активно прагнуть при можливості знаходитися на відстані від гравця, щоб атакувати здалеку. У той же час гра прагне зробити так, щоб інші вороги були добре розташовані для атаки, з урахуванням того, що їм знадобиться бігти до гравця в будь-який момент часу. Щоб досягти цього, DOOM бере систему укриттів з Rage і інвертує її: система використовується не для пошуку точок укриттів, а для знаходження відкритих позицій поруч з укриттями, що забезпечують максимальну видимість для гравця. Такі «перевернуті» укриття не тільки дозволяють демонам продовжувати атаки, але і допомагають гравцеві знаходити мету.

Індивідуальність

Тепер давайте розглянемо індивідуальність демонів. В DOOM є 16 окремих архетипів ШІ, кожен з яких володіє унікальними поводженнями і анімаціями, що підкреслюють його характерні особливості. З урахуванням високого темпу гри, основна мета полягає в миттєвому розпізнаванні демонів гравцем та забезпеченні цілісності їх поведінки. Уявіть Pac-Man, в якому гравець рухається в 10 разів швидше звичайного, а привиди насправді є пекельними полчищами! Тут просто немає місця для витіюватої і складного поведінки. Противники повинні бути впізнаваними для гравця і цікавими для дизайнера, викладаючого їх на шахову дошку бою.

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

Крім того, анімації створені таким чином, щоб підкреслити характерність кожного архетипу демона. На додаток до реалізації плавного змішування, AnimWeb також виконує перевірки анімацій в реальному часі, щоб переконатися, що анімація може вміститися в криву руху демона. Тому імпи можуть стрибати на короткі та далекі відстані, використовуючи однакову анімацію, яка настроюється в реальному часі, а лицарі пекла виконують перевірки, щоб при атаках не перетинатися з навколишніми об’єктами. Крім того, кожен демон виконує процес під назвою Focus Tracking: обчислює відповідний поворот голови, грудей і стегон IK-ризі, щоб повертатися і дивитися на гравця правильним чином.

Читайте також  Створення Штучного Інтелект методом «глокой куздры». Інтелектуальна одіссея

Крім всього цього DOOM знову повертає перепалки між ворогами, які використовувалися в оригінальних іграх серії: система фракцій фіксує взаємодії та поведінки між окремими архетипами ШІ. Вона використовує систему правил, яка визначає, як і чому одна фракція демонів починає злитися на іншу. Крім того, вона фіксує такі події, як випадковий або навмисний шкоди, яка завдається такими фракціями один одному, і використовує їх для запуску боїв між ворогами. Фракції всередині системи переймають звички інших фракцій, тому поки імпи страждають від лап манкубусів і баронів, одержимі солдати UAC у внутрішніх перепалках зазвичай виявляються вбитими першими.

Унікальність

Тепер поговоримо про унікальність кожної зброї. ШІ DOOM реагує, коли гравець використовує відповідне зброю для відповідного демона. В основному це реалізується системою тривалого шкоди в секунду і системою керування станами бою. Вона робить так, що демони вразливі до пострілів з певного зброї, і побоюються цієї зброї. Мої джерела пояснили, що всередині DOOM використовується система тривалого DPS (damage per second), нагороджуюча гравця за тривалу агресію до конкретного демону. Шкода стає тривалиою, що запускає больову реакцію демона. Джейк Кемпбелл розповідав про це у своїй доповіді на GDC. Ці больові реакції можуть бути дуже різноманітними: від невеликих судом, трохи впливають на точність прицілу ИИ, до завмирання і відступу, який перериває поточна поведінка ШІ.


Щоб ще більше підкріпити цю систему, окремі види зброї запускають реакцію в різних типах ворогів. Наприклад, при пострілі з штурмової гвинтівки імпи перестають рухатися, а зомбі при пострілі з дробовика швидко переходять в стан похитування, в якому їх легко вбити. Мої джерела сказали, що на етапі розробки какодемон міг застрягти в постійній реакції завмирання при безперервної стрільби з минигана. Це було зроблено навмисно, щоб віддати честь оригінального DOOM, але перед випуском гри від цього відмовилися.

Міць гравця

Нарешті, незважаючи на незліченні полчища демонів і витікаючу від них небезпеку, концепція агресивного бою завжди повинна прагне наділяти гравця міццю. Тому гра повинна зберігати баланс і ритм бою, що забезпечують постійне перебування гравця в потоці. Для цього DOOM використовує бойову систему, яка змушує демонів питати дозволу для нападу на гравця. Це реалізовано через систему токенів: кожен тип атаки — рукопашний, далекий і так далі — має в кожен момент часу обмежена кількість квитків. Щоб зробити атаку, демон повинен запросити токен, а після використання повернути його системі. На кожному рівні складності є свій набір значень токенів для кожного типу атаки, створює більш агресивні орди демонів і в той же час зберігає збалансованість завдяки обмеження на кількість одночасно атакуючих демонів. Забавно в цій системі те, що демони можуть красти токени один у одного, якщо відчувають, що способи використовувати їх більш ефективно в поточний момент часу. Основна причина цього в тому, щоб змусити демонів поруч з гравцем атакувати його, а не стояти поряд з дурним виглядом.


Крім того, дизайнери усвідомили, що не буде справедливо, якщо демони будуть атакувати, коли гравець не може відповісти. Тому під час виконання glory kills гравець невразливий, а штучний інтелект не має права починати нову поведінку атаки, поки glory kill не завершений. Нарешті, glory kills цінні для гравця тим, що дають здоров’я, а у разі вбивства бензопилою — і боєприпаси! При glory kills гравцям завжди випадають предмети, а великі демони дають ще більше життя. Однак випадають боєприпаси в основному постійно, тому що гра хоче, щоб гравець продовжував освоювати свій арсенал і використовував найкращу зброю в поточних умовах. Тому якщо ви використовуєте для розправи над лицарем пекла бензопилу, то це не дасть вам в результаті більше боєприпасів!

Висновок
Повернення DOOM в 2016 році виявилося тріумфальним, але як ми щойно переконалися, це сталося не випадково: завдяки рокам роботи над ігровим ІІ демони пекла повстали в повну силу. Ця гра — чіткий приклад використання класичних технік ІІ поряд з дизайнерськими інструментами, підкріплювальних ядро ігрового процесу. Як і вся франшиза в цілому, DOOM заявляє, що хоча деякі інструменти створення ШІ вже вийшли з моди, все ще залишається потенціал для створення нового цікавого ігрового процесу, залучає і сучасних гравців. Поки писалася ця стаття, було заявлено про розробку DOOM Eternal з ще більшою кількістю архетипів демонів. Пекло на землі ніколи не було таким захоплюючим.

Бібліографія
Loudy, K. and Campbell, J. 2018. Embracing Push Forward Combat in DOOM. Game Developers Conference, 2018.

Cambell, J. 2017 Bringing Hell to Life: AI and Fully Body in Animation DOOM. Game Developers Conference, 2017.

Степан Лютий

Обожнюю технології в сучасному світі. Хоча частенько і замислююся над тим, як далеко вони нас заведуть. Не те, щоб я прям і знаюся на ядрах, пікселях, коллайдерах і інших парсеках. Просто приходжу в захват від того, що може в творчому пориві вигадати людський розум.

You may also like...

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *