Данило Сиротинський “artificial intelligence in games: myth and reality”

42
Штучний Інтелект у Іграх Міф чи реальність?

Upload: lviv-startup-club

Post on 13-Apr-2017

256 views

Category:

Business


3 download

TRANSCRIPT

Page 1: Данило Сиротинський “Artificial intelligence in games: Myth and Reality”

Штучний Інтелект у ІграхМіф чи реальність?

Page 2: Данило Сиротинський “Artificial intelligence in games: Myth and Reality”

Про презентацію

Данило Сиротинський - Dragons Games. Доповідач

Ігор Меншиков - розробник штучного інтелекту.

Page 3: Данило Сиротинський “Artificial intelligence in games: Myth and Reality”

Чи обовязковий АІ?

Грі не потрібно мати людського інтелекту для того, щоби бути цікавою і навпаки, навіть якщо в грі є інші абсолютно реальні гравці, як в MMO - це абсолютно не гарантує, що гра вийде максимально цікавою. Портал 1 грався офігенно без усілякого АІ.

Page 4: Данило Сиротинський “Artificial intelligence in games: Myth and Reality”
Page 5: Данило Сиротинський “Artificial intelligence in games: Myth and Reality”

Тест Тюринга

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

Закохати в себе. Ви повинні змусити гравцяспівчувати персонажу, переживати, очікуватисцен із ним, він може стати справжнім другом,чи ворогом. Не формально, а дійсно.Як у якісних книжках і фільмах.

Page 6: Данило Сиротинський “Artificial intelligence in games: Myth and Reality”

Ролі АІ

Моби - як правило дурні і не глибокі. Наприклад, “боси”.

NPC - вид мобів з якими можна вступати в соціальний контакт. Для ігор, в яких існує сюжет, чого всім раджу.

Боти - замінюють самого гравця, другого гравця, тд. Наприклад, інші фракції в Total War, противники в одиночній грі в Starcraft, Warcraft, Civilisation, Counter Strike, тд. Зазвичай, значно складніші для написання.

Page 7: Данило Сиротинський “Artificial intelligence in games: Myth and Reality”

Ігри з простою механікою

Пекмен, Маріо - є тільки моби.

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

Page 8: Данило Сиротинський “Artificial intelligence in games: Myth and Reality”
Page 9: Данило Сиротинський “Artificial intelligence in games: Myth and Reality”

Diablo

Моби - звичайні монстри з якими б’єшся. Чаклун може спавнити їх на підмогу. В грі також присутні і NPC з якими можна торгувати. Присутній алгоритм пошуку шляху.

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

Page 10: Данило Сиротинський “Artificial intelligence in games: Myth and Reality”
Page 11: Данило Сиротинський “Artificial intelligence in games: Myth and Reality”

Меморізація й оптимізаційна евристика:Шахи

АІ тут називається ботом, оскільки заміняє другого гравця.

Оскільки за розумний час тут нічого не обчислиш, використовується підхід станів автомата (fsm)

відносно попередньо обчислених меморізованих ходів і при потребі, таки прораховування, але неглибоке,

з евристикою, яка аналізує ці всі прораховані ходи і вирішує як таки бути, наприклад використовуючи

певні алгоритми оптимізації навчені на прикладах.

Людиногравці грають за тим же принципом оптимізаційної евристики, але в меншій мірі меморізації, оскільки всього не запам’ятаєш. Відрізняється алгоритм за яким навчалась оптимізаційна евристика й сам

досвід (кількість навчання).

Page 12: Данило Сиротинський “Artificial intelligence in games: Myth and Reality”

Складністьза рахунок простих

дрібненьких модулів

Divide et Impera

Page 13: Данило Сиротинський “Artificial intelligence in games: Myth and Reality”
Page 14: Данило Сиротинський “Artificial intelligence in games: Myth and Reality”
Page 15: Данило Сиротинський “Artificial intelligence in games: Myth and Reality”

Розділення, Евристика й Оптимізація:Civilization | Heroes of Might & Magic

Прийняття рішень ботами тут йде зарахунок системи з кількох різних модулів для обчислення різних частин гри. Окремо йде обчислення того куди піти юнітам, окремо приймаються стратегічні рішення по науці, окремо по містобудівництву, окремо по дипломатії. Але вони скльопані до купи й не тягнуть гравця врізнобіч, а йдуть “в ногу” зарахунок певних дуже абстрагованих еврестичних показників. Наприклад, силовий показник рівня небезпеки від сусідів, чи можливості їх захопити впливає на прийняття рішення про побудову військових споруд і війська алгоритмом побудови міста, а також має наслідки для алгоритму дипломатії, очевидні наслідки для розстановки юнітів. Більш розділеною зарахунок побудови ігрової механіки є Civilization, ніж у Heroes of MM. Чим більшою є розділеність зарахунок правильної побудови ігрової механіки, тим кращий АІ легше зробити.

Тим не менше, існуючий штучний інтелект Цивілізації не є співмірним по крутості вирішування поставлених йому задач з людським, але це компенсовано тим, що йому дається більше ресурсів (на складніших рівнях). Чому так є не пояснено сценарієм, через що проглядається фейковість. Фейковість також сильно виходить назовні коли бот допускає банальні помилки в своїй стратегії.

Page 16: Данило Сиротинський “Artificial intelligence in games: Myth and Reality”
Page 17: Данило Сиротинський “Artificial intelligence in games: Myth and Reality”

Розділення, Евристика й Оптимізація:Starcraft

Проста гра: евристика, алгоритми оптимізації. АІ вміє швидко розвідувати мапу не тратячи надто багато ресурсів. АІ добре знає якими юнітами і турелями можна

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

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

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

окремих модулів. Навчений оптимізовувати напрямки атаки, послідовність використання юнітів і те, якими юнітами у що цілити, попередньо враховуючи

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

шкодять цьому АІ. Планування наступу, наприклад, найімовірніше, складається з окремого оцінювання того чого варте (в умовних очках) знищення яких споруд,

турелів і юнітів, програвання “подумки” варіантів наступів з різних позицій при цьому віддаючи поведінку юнітів і структур в руки відносно простеньких моб-стайл

АІ, а розстановку нападаючих юнітів в руки окремої спеціалізованої АІ.

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

Розглянемо місію протосів знищити вищий розум зергів. По суті треба знищити ворожу базу (подібно до простої одиночної гри по мапах). Щоб місія була складною,

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

поводиться не найвигідніше, а так, як йому сказав розробник. Такий підхід класний, якщо дурості та піддавання АІ пояснені сценарієм. Якщо ні, гравцеві видно фейк.

Page 18: Данило Сиротинський “Artificial intelligence in games: Myth and Reality”
Page 19: Данило Сиротинський “Artificial intelligence in games: Myth and Reality”

Сильний Сюжет і FSM: Metal Gear

Моби - ходять по продуманих дизайнером місцях. Якшо затрігераєш алерт, вони починають ходити де тебе бачили останній раз чи ше шось таке, шукати не за попередньо продуманим дизайнером шляхом. Поки не алерт - поводяться - патролюють одним із заготовлених ігровим дизайнером шляхів.Як результат все приблизно відповідає реальності при тому, що моби працюють по станах автомата (finite-state machine / automata). Спершу, подібно до людей на вахті в реальному світі. Коли алерт - поводяться подібно до того як реальні люди в таких самих обставинах поводилися б, покрайній мірі, на думку гравця.

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

Приклад того, як потрібно будувати сюжет для того, щоби не мати потім такого явного фейка, як виглядають зблизька баталії в Total War і щоби не мати гемору з розробками ботів і тд.

Page 20: Данило Сиротинський “Artificial intelligence in games: Myth and Reality”

Total War: Bulat Steel, або як псувати враження

Я мушу тримати в місті по 20 загонів, і все одно місто бунтує. АІ тримає в місті 1 загін і місто не бунтує. Це бісить і ламає бачення логіки гри гравцем.

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

АІ в Total War працює в значній мірі за рахунок алгоритмів оптимізації.

Page 21: Данило Сиротинський “Artificial intelligence in games: Myth and Reality”
Page 22: Данило Сиротинський “Artificial intelligence in games: Myth and Reality”

Glitches:Gothic

1) NPC мав відвести мене з точки а в точку б. Застряг в камені. No comments

2) Орк б’ється зі мною і застрягає в дереві. Такі речі дико виносять мозг розробникам, але гравцям деколи весело (особливо якшо в тебе лишився 1 хп - в мене так бувало). Звісно бажано пофіксати аби вашу гру не розносили в пух і прах ютюбери, а компенсації моменту про 1 хп треба робити сценарійно, наприклад бац і вам повезло з останніх сил в відчаї попасти орку прямо в серце.

Page 23: Данило Сиротинський “Artificial intelligence in games: Myth and Reality”

Подрібнення

Є задачі відокремлені від абстрактної ігрової логіки. Розв’язки задач, як от пошук шляху з уникненням рухомих перешкод часто поставляються в окремих фреймворках/модулях, або є вбудованою частиною ігрових двигунів і ті ж розв’язки використовуються в абсолютно різних іграх. Чому взагалі згадали про pathfinding? Бо він входить в поведінку на нижчому рівні. Тобто на абстрактному рівні я пішов юнітом в напрямку до точки Z, але на ділі, не абстрагуючись, що я зробив - це пройшов через точку A i B на найкоротшому (чи найбезпечнішому?) шляху до Z. Divide et Impera. Розділяйте АІ на максимально дрібні вузькоспеціалізовані підзадачі.

Page 24: Данило Сиротинський “Artificial intelligence in games: Myth and Reality”

Ролі АІ

Page 25: Данило Сиротинський “Artificial intelligence in games: Myth and Reality”

Три застосування АІ

1. Боти (дуже хороша ідея робити ігри, де їх немає).2. Моби (найлегше, якщо моби в вашому сценарії - якісь тупі зомбі, чи ще якісь

істоти не наділені особливим інтелектом).3. Правила (динамічна зміна сценарію, складності, якісь підказки).

Page 26: Данило Сиротинський “Artificial intelligence in games: Myth and Reality”

Моби

АІ мобів в стратегічних іграх, аркадах та хак-н-слешах тісно взаємодіє з ядром. Його задачі - автоматизація поведінки мобів, npc, ігрових босів, автомитазація складних тригерів ігрового світу.

Page 27: Данило Сиротинський “Artificial intelligence in games: Myth and Reality”

Боти

Є унікальним для кожної гри. API для компютерного бота має бути тотожним з API для людини. В багатьох іграх скрипти ботів існують окремо від клієнтської частини гри.

Page 28: Данило Сиротинський “Artificial intelligence in games: Myth and Reality”

Тактичний АІ

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

Page 29: Данило Сиротинський “Artificial intelligence in games: Myth and Reality”

Стратегічний АІ

Стратегічний АІ приймає рішення про конкретну задачу. Часто в них юзаються карти - карти рішень, карти ресурсів, карти конфліктів

Page 30: Данило Сиротинський “Artificial intelligence in games: Myth and Reality”

Програмування АІ

Page 31: Данило Сиротинський “Artificial intelligence in games: Myth and Reality”

Programming: Методи штучного інтелекту

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

правильно.

Евристика використовується коли за короткий час не можна прийняти однозначне абсолютно правильне

рішення. Коли єдиного абсолютно правильного рішення не існує, як наприклад, коли моделюється

багатогранна людська поведінка, чи поведінка квантів, або якщо на те, щоби найкраще рішення знайти, як

для пошуку найкоротшого розв’язку гри Sokoban, потрібно дуже багато часу. Сюди входять, наприклад,

алгоритми оптимізації і “правила правої руки”, “лівої ноги”, “третього.. тойво” коли ігровий розробник

робить вгадувалку в стилі станів автомата (FSM), яка не обов’язково забеспечить вибір найкращого

рішення, але за час даний їй постарається підібратися близько.

Page 32: Данило Сиротинський “Artificial intelligence in games: Myth and Reality”

Пошук шляху та суміжні алгоритми

1. Алгоритм Дейкстри2. Алгоритм Астар3. RVO

Page 33: Данило Сиротинський “Artificial intelligence in games: Myth and Reality”

Astar and Dijkstra

Page 34: Данило Сиротинський “Artificial intelligence in games: Myth and Reality”

Programming: Які є Підходи

1. Машина станів автомата - FSM - в т.ч. Behaviour tree, Decision tree - це лише методи для реалізації цього підходу.

2. Utility based - оцінка правильності рішення на основі пріоритету3. Алгоритми оптимізацій, як от нейромережі, генетичний алгоритм, тощо,

support vector machines, тони інших, так звані “складні експертні системи” часто тотожні цьому.

4. Конкретні алгоритми для точного вирішення різних конкретних задач, які потрібно вирішувати в конкретній грі. Наприклад, пошук шляху.

Page 35: Данило Сиротинський “Artificial intelligence in games: Myth and Reality”

Programming: Decision Tree

Купа if-then-else стейтментів. Найпростіша архітектура

Page 36: Данило Сиротинський “Artificial intelligence in games: Myth and Reality”
Page 37: Данило Сиротинський “Artificial intelligence in games: Myth and Reality”

Programming: FSM

Сутність приймає рішення відповідно до конкретного стану. Стани - спокій, рух до точки, переслідування цілі.

Page 38: Данило Сиротинський “Artificial intelligence in games: Myth and Reality”

Planner

В даній архітектурі АІ шукає шлях досягнення цілі вже поставленої цілі

Page 39: Данило Сиротинський “Artificial intelligence in games: Myth and Reality”

Utility based algorithm

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

Page 40: Данило Сиротинський “Artificial intelligence in games: Myth and Reality”

Память та навчання АІ

Штучний інтелект часто мусить пам'ятати прийняті рішення. Наприклад в стратегічній грі компютерний бот вибирає довгортивалу стратегію гри - атакувати головну ворожі базу чи взяти її в облогу. Для складнішої поведінки та навчання - записуємо прийняті нами та ворогом рішення в dictionary чи спеціальні структури даних.

Page 41: Данило Сиротинський “Artificial intelligence in games: Myth and Reality”

Паралелізація АІ

Поширена практика по оптимізації. Стратегічний і тактичний рівні - в окремі потоки, з високою частотою обновлення. задачі нижчого порядку мають свою логіку - Пошук найближчих цілей має високу частоту обновлення. Пошук шляху є сенс виконувати з допомогою threadpool.

Page 42: Данило Сиротинський “Artificial intelligence in games: Myth and Reality”

Дякую за увагу!