Створення штучного інтелекту ворогів у іграх. Поради Senior Gameplay Designer компанії Remedy
На початку весни редакція GameDev DOU відвідала Games Gathering ’24 Lviv. Один з виступів був від Леоніда Степанова — Senior Gameplay Designer у Remedy Entertainment. Він розповідав про створення штучного інтелекту ворогів у іграх.
Далі пряма мова лектора
Лекція розрахована на людей, які ще не знайомі зі спеціальністю AI/Combat дизайнера і хочуть дізнатися у чому полягає ця робота. Але також повинно бути цікаво тим, хто вже має досвід за цим фахом і хотів би дізнатися більше деталей про процеси та інструменти, які використовуються в інших ігрових компаніях.
Доповідь складається з двох основних частин. У першій буде розповідатися про етапи розробки неігрових персонажів і місце дизайнера у цьому процесі. У другій більше уваги буде приділено інструментам, якими доводиться користуватися спеціалісту у своїй щоденній роботі.
Про себе
Але перед цим хочу розповісти трохи про себе. Мене звати Леонід. Працюю геймдизайнером понад сім років. Свій шлях починав із портування ігор на мобільні пристрої. Відбувалося це в рамках компанії Pingle Games Studio. Найбільше за всі інші проєкти там хотілось би відзначити портування Life is Strange (iOS, Android) на мобільні пристрої.
Через деякий час я зміг приєднатися до 4А Games і попрацювати над Metro Exodus. Якщо конкретніше, я доєднався до них на моменті розробки DLC Історія Сема. Цей досвід, а також подальша участь у кількох ігрових стартапах, допомогли набратися достатньо знань, щоб стати частиною команди Remedy Entertainment. Де я і працюю зараз на посаді Senior Gameplay Designer, і відповідаю за розробку штучного інтелекту ворогів.
За весь кар’єрний шлях на цей момент працював з такими ігровими рушіями як Unreal Engine, 4A Engine та Northlight.
Якщо вам буде цікаво послухати більше про кожну зазначену компанію, та як відбувався мій перехід між ним, то я нещодавно брав участь у подкасті «Ранній Доступ». Там як раз, цьому приділяється багато уваги.
Remedy Entertainment
Remedy Entertainment це компанія розробник відеоігор, яка створює незвичні та захопливі світи. Заснована у 1995 році. На цей момент має два офіси: головний у Фінляндії та додатковий у Швеції. Нараховує приблизно 380 співробітників. Ви можете знати компанію за такими проєктами як: Death Rally, Max Payne
У компанії я працював над Alan Wake 2 що нещодавно вийшов в реліз. Та зараз працюю над Control 2. До речі зараз в компанії є відкриті вакансії. І одна з них саме за фахом AI Designer.
Роль і завдання AI Designer. Основні поняття
NPC — неігровий персонаж, який керується програмою. Може бути як дружнім, так і ворожим до гравця. Частіше все ж таки ворожим. Тому що часто гравці повинні проходити випробування в іграх. І найрозповсюдженішим варіантом є перемога над NPC. Тому і створювати частіше за все дизайнеру треба саме NPC-ворогів під контролем штучного інтелекту.
Game AI — штучний інтелект, що керує NPC. Є набагато простішим варіантом ніж штучні нейронні мережі з машинним навчанням. У іграх це скоріше імітація достатня, щоб гравець повірив в тем, що відбувається на екрані. Тому і немає сенсу робити ворогів занадто розумними, бо кінцевою метою відео ігор є розважити людину.
AI Designer — спеціаліст, відповідальний за дизайн і реалізацію Game AI у грі. Дизайнер є власником фічі (NPC або AI-системи) і її ідеологом, який веде процес розробки від дизайну до самого релізу. А також є головною ланкою, яка об’єднує всі інші відділи у процесі роботи над фічею. Взаємодіяти доведеться майже з усіма спеціалізаціями: геймдизайнерами, програмістами, 2D та 3D художниками, левел-дизайнерами, аніматорами, спеціалістами з візуальних та звукових ефектів і тестувальниками.
Далі хотілось би розповісти як саме і в який момент буде відбуватися ця взаємодія. А також щоденні завдання AI дизайнера. Вони дуже залежать від того, на якому етапі знаходиться проєкт. Тому будуть розглянуті основні з цих етапів.
Роль і завдання AI Designer. Дизайн
Як дизайнеру штучного інтелекту, вам доведеться створювати багато нових видів ворожих NPC та битв з боссами. Також потрібно буде підтримувати розробку базових, спільних для всіх неігрових персонажів, систем. Створення будь-якої системи чи персонажа, починається саме з дизайн-документа. На старті проєкту ми повинні мати приблизне уявлене, який результат хочемо отримати. Тому високорівневі вимоги мають бути сформульовані директорами. Врахування цих вимог є основою для всіх пітчив і дизайнів. Жанр, історія всесвіту гри, місце де відбуваються події, технічні вимоги — зазвичай мають найбільший вплив на майбутній документ.
Також під час створення нового ворога допомагає знання базових можливих архетипів. Зазвичай вони не змінюються від однієї гри до іншої (Tank, Damage Dealer, Summoner, Heal). Використання такого підходу допомагає структурувати список NPC і роздати ролі кожному з них. Якщо у вашій грі усі противники Damage Dealer, то треба подумати на які групи та патерни можливо поділити їх атаки. Головне, щоб була основа, яка б допомогла придумувати не навмання, а в рамках однієї концепції.
Базуючись на моєму досвіді, добрий дизайн документ повинен підготувати відповіді на питання усіх відділів, які будуть працювати над персонажем. Тому добро буде описати наступні пункти: назва персонажа, фракція, трохи лору, архетип, приблизні стати, базова поведінка, особливі навички, візуальні референси, перелік необхідного контенту від аніматорів, спеціалістів з візуальних та звукових ефектів. Звісно документ пройде не одну ітерацію перед тим як буде затверджений. Але після затвердження можна переходити до наступного етапу — прототипування.
Роль і завдання AI Designer. Прототип
Прототип є перевіркою ідей дизайнера з мінімальною затратою часу інших відділів. Якась допомога все ж таки знадобиться, щоб підтвердити та «продати» ідею. Але багато контенту може бути зроблено в низькій якості. Тому що на цьому етапі важливіша швидкість. Треба зрозуміти якомога раніше чи варта ідея, щоб на неї витрачати більше ресурсів.
В цьому AI дизайнеру зазвичай допомагає наявність спеціалізованих інструментів наявних в кожному рушії. Детальніше про ці інструменти будемо говорити у другій частині лекції. Досвід роботи з цими інструментами є найбільшою цінністю дизайнера штучного інтелекту. Дуже рятує те, що здебільшого ці інструменти схожі від рушія до рушія. Це означає, що навіть змінюючи проєкти ви продовжуєте отримувати навички, які знадобляться і надалі.
Також одним з інструментів, який є особливо важливим на етапі прототипування, є та чи інша мова скриптування. Вміння створювати логіку самостійно є дуже великою перевагою.
Етап прототипування повинен завершитися наявністю у грі персонажа, котрий у більшості своїх елементів відповідає дизайну, та справді вносить користь у гру.
Роль і завдання AI Designer. Продакшн
Наступний етап є найдовшим. Це продакшн. Він не наступить зненацька після створення одного NPC і перед ним пройде багато часу пошуку ідей по всім напрямкам від креативних до технічних. Весь час до його початку ви будете зайняті першими двома етапами. Повторюючи дії з дизайну та прототипування раз за разом для кожного нового неігрового персонажа. Окрім того, великі проєкти будуть потребувати від вас роботи над іншими більш глобальними AI-системами. Але в рамках цієї лекції ми не будемо концентруватися на них. І будемо роздивлятися розробку саме персонажів.
Все це означає, що в продакшн ви вийдете з великою кількістю прототипів ворогів. І впродовж нового етапу необхідно їх вдосконалити так, щоб вони були готові опинитися в фінальній грі. Це означає багато робити навіть на мікро рівні. Такої як налаштування тривалості анімацій, кількості шкоди, кулдауни навичок тощо.
Також саме в цей момент відбувається найбільша взаємодія з іншими напрямками розробки. Проходить дуже багато обговорень та замовлення різноманітного контенту від інших відділів (анімації, кодові фічі, звуки, візуальні ефекти, тощо). Весь цей контент перетворюється на блоки, з яких і збирається цільний персонаж.
Починається дуже активна робота з левел-дизайнерами. Тому що на цьому етапі всі розроблені вами NPC повинні не просто існувати. А повинні працювати разом, створюючи захопливі ігрові ситуації. Правильне їх використання і групова взаємодія в край необхідні для кінцевого результату.
Роль і завдання AI Designer. Баланс, полішинг, виправлення багів
Далі після років продакшину ваша гра повинна бути майже готова. І починається найбільш педантичний етап. Тут основними завданнями дизайнера стає доведення всього до ідеалу. Або хоча б намагання це зробити.
Плейтести (ваш найкращий друг на цьому етапі) і балансування. Балансування не повинно залишатися під кінець. Це процес, який відбувається під час всієї розробки. Але під кінець його вже можна налаштувати найкраще, бо усі складові готові. Також будуть відбуватися полішинг контенту і таймінгів. І звісно виправлення багів, які так чи інакше будуть присутні у грі.
Хоч це і фінальний етап, він вкрай важливий. Тому що гравці побачать все на релізі саме таким, яким ви тут залишили. І ви, як дизайнер відповідаєте за гарний результат найбільше за усіх. Через це важливо мати достатньо часу на ці покращення. І при правильному плануванні минулих етапів, можливо, навіть пощастить і вийде обійтися без кранчів.
Інструменти для створення ШІ. Робочий екран AI Designer
Далі ми переходимо до другої частини лекції, в якій розповідається про інструменти, що допомагають створювати ШІ ворогів у іграх. На зображені можна побачити як зазвичай виглядає робочий екран AI дизайнера. Як ви бачите на цьому скріншоті багато всього відбувається одночасно, тому давайте подивимося на кожен з цих інструментів окремо.
Перша їх группа направлена на збір інформації для ШІ про навколишній світ.
Інструменти для створення ШІ. Навігаційна сітка
Навігаційна сітка — це набір двовимірних полігонів, які визначають області середовища доступні NPC для переміщення. Персонажі, які керуються штучним інтелектом можуть ходити тільки в межах таких зон. Дана сітка може генеруватися вручну або автоматично. Зараз частіше зустрічається другий варіант, з можливістю прибрати зайві частини сітки у разі потреби.
Буває статичною — не змінюється під час гри. Або динамічною — зміни середовища змушують найближчі клітини меша перебудуватися (наприклад, буде зруйнована стіна будівлі). Дуже часто частини навігаційної сітки бувають відокремленими одна від одної. Щоб з’єднати подібні частини використовується інструмент під назвою Навлінк. Він є мостом і поєднує розірвані частини меша. Візуально це виглядає так, що персонажі роблять стрибки під час використання навлінок.
Персонажі різних розмірів потребують різних шарів сітки та наборів навлінок у зв’язку з їх фізичними особливостями.
Інструменти для створення ШІ. Запити до середовища та пошук шляху
Система запитів до середовища. Це інструмент, який генерує на навігаційній сітці задану кількість точок. Далі дизайнер проводить різні тести над цими точками та надає їм рахунок за успішне проходження. Приклади тестів: дистанція від точки до об’єкта, наявність прямого поля зору, наявність біля точки небезпечних зон та багато інших. Результатом роботи системи будуть координати у просторі, які NPC можуть використовувати у своїх цілях, частіше за все це переміщення туди або використання навички у тому напрямку.
При наявності поверхні для переміщення та цілі знайденої завдяки системі запитів вороги можуть змінювати своє положення у просторі. В цьому їм допомагає ще одна система, яка варта згадки — Пошук шляху. Завдяки складним алгоритмам, за які відповідають програмісти, будується оптимальний маршрут для переміщення, що враховує дистанцію, напрямок, поверхню, швидкість персонажа та інші параметри.
Інструменти для створення ШІ. Органи чуття
Вищезгадані інструменти більше сконцентровані на поверхні для переміщення та маршрутах. Але NPC для роботи ще необхідно збирати інформацію про багато інших об’єктів оточення. Особливо персонажах, що знаходяться навколо.
Для цього використовується інструмент, який імітує можливості людини — Система органів чуття. Найчастіше використовуються такі органи як зір, слух та дотик. Окремо ще можна зазначити отримання шкоди, бо це потребує швидкої реакції від NPC.
Але часто штучний інтелект може порушувати правила. Наприклад, якщо битва з гравцем вже почалась, то нам не потрібно щоб вороги загубили їх з виду. В цьому випадку штучний інтелект буде завжди знати, де їхня ціль.
Інструменти для створення ШІ. Ментальні стани
Якщо у грі вороги з’являються завчасно, то у гравця повинна бути можливість підкрастися до них і спланувати свої дії. Це означає що потрібна відмінність у поведінці штучного інтелекту до того, як гравці були помічені ними та після. Зазвичай вороги патрулюють територію у стані Спокою. Їх дії розмірені і легко зрозумілі гравцю. Передбачуваність необхідна для того, щоб була можливість побудувати стратегію у голові перед боєм.
Гравець може випадково або навмисно привернути увагу NPC. Це відбудеться внаслідок роботи органів чуттів, які ми згадували раніше. NPC може побачити, почути гравців. Або ті можуть підійти занадто близько чи атакувати першими. Привертання уваги повинно переводити ворогів у стан Тривоги. Цей стан дає час гравцям виправити помилку, якщо вони все ж таки не хотіли бути поміченими. Завдання NPC у цьому стані візуально та звуками показати роздратування і нервовість. Також ворог може спробувати перевірити джерело роздратування.
Останній стандартний стан це Бій. В ньому вже відбувається основне протистояння гравцю. І всі дії штучного інтелекту спрямовані на завдання шкоди персонажу гравця, або випробувані їх якимось іншим чином.
Інструменти для створення ШІ. Дерево поведінки і дошка знань
До цього слайду у нас відбувався тільки збір інформації штучним інтелектом. Нарешті настав час їм приймати рішення та виконувати дії. І тут ми знайомимося з головним інструментом AI дизайнера — Деревом поведінки. Воно складається з перевірок та блоків логіки, які відповідальні за певні дії NPC. Виконання відбувається зверху вниз та зліва направо. Перевірки створюють розгалуження, які виглядають в результаті як гілки дерева, що і дало назву цьому інструменту.
Робота дерева проходячи через всі перевірки приводить AI до якогось фінального рішення у вигляді дії — переміщення, атаки, використання навички чи навіть просто очікування більш зручного моменту. У парі з деревом зазвичай працює Дошка Знань, що виконує роль пам’яті, зберігаючі всю інформацію, отриману до цього.
Інструменти для створення ШІ. Скрипти
Останній інструмент який хотілося б згадати це Скрипти. Більшість інструментів зазвичай виконані програмістами. І дизайнеру здебільшого треба тільки навчитися їх використовувати та пропонувати ідеї для покращення. Але інколи з’являється потреба створити щось зовсім нове, чого ще немає на проєкті, як і інструментів для цього. Особливо часто це відбувається на ранніх етапах проєкту та при прототипуванні. Наявність навичок скриптування у дизайнерів значно пришвидшує процес розробки гри.
Скрипти можуть мати текстову форму, або візуальну (як Blueprints в Unreal Engine). Саме візуальна форма допомогла мені швидше зрозуміти як працює логіка в іграх. Після чого треба було лише вивчити синтаксис, щоб перейти до текстової форми. Приклади використання скриптів: прототипування, кастомні фічі, битви з боссами, імплементація візуального та звукового контенту.
Висновки
В рамках лекції ми ознайомилися з основними завданнями дизайнера штучного інтелекту під час кожного з етапів розробки. Дізналися які інструменти використовує дизайнер щоденно у своїй роботі. Є ще багато систем, які не були згадані, але можуть опціонально бути присутніми у проєкті — Токени Атаки, Уникнення, Групова поведінка, Система Сутичок. Але розповідь про кожну з них затягнуться ще на одну лекцію.
В цілому хочу сказати, що я особисто в захваті від цієї спеціальності. Вона поєднує в собі креатив та технічні знання, менеджмент і вміле використання софт скілів. Тому тим, кого зацікавила ця професія, я бажаю успішно вивчити вищезгадані інструменти. Володіння ними зробить вас цікавим кандидатом для будь-якої ігрової студії.
Немає коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарів