Порівняння ефективності алгоритмів пошуку шляху при розробці ігрового штучного інтелекту
DOI:
https://doi.org/10.30837/bi.2021.2(97).06Ключові слова:
ІГРОВИЙ ШТУЧНИЙ ІНТЕЛЕКТ, ПОШУК ШЛЯХУ, ПОШУК В ШИРИНУ, АЛГОРИТМ ДЕЙКСТРИ, ЕВРИСТИЧНИЙ АЛГОРИТМ, ЖАДКОВИЙ ПОШУК, АЛГОРИТМ А*Анотація
З точки зору ігор справжній ШІ далеко виходить за рамки вимог розважального програмного проекту. В іграх така міць не потрібна. Ігровий ШІ не повинен бути наділений почуттями та самосвідомістю, йому немає необхідності вчитися чогось за межами рамок ігрового процесу. Справжня мета ШІ в іграх полягає в імітації розумної поведінки та у наданні гравцеві переконливого, правдоподібного завдання. Щоб штучний інтелект міг приймати осмислені рішення, йому необхідно будь-яким чином сприймати середовище, в якому він знаходиться. У найпростіших системах таке сприйняття може обмежуватися простою перевіркою положення об’єкта гравця. У складних системах потрібно визначати основні показники і якості ігрового світу, наприклад можливі маршрути для пересування, наявність природних укриттів на території, області конфліктів. При цьому розробникам необхідно вигадувати спосіб виявлення та визначення основних властивостей ігрового світу, важливих для ШІ системи. Наприклад, укриття на місцевості можуть бути визначені дизайнерами рівнів або заздалегідь обчислені при завантаженні або компіляції карти рівня. Деякі елементи необхідно обчислювати на льоту, наприклад, карти конфліктів і найближчі загрози. Пошук шляху або pathfinder — визначення комп’ютером найоптимальнішого маршруту між двома точками. З ним часто можна зіткнутися при розробці ігор, наприклад, якщо в них є вороги, що вільно пересуваються. Потрібно не просто прагнемо знайти найкоротшу відстань, а також необхідно враховувати і тривалість руху. Для пошуку цього шляху можна використовувати алгоритм пошуку за графом, який застосовується, якщо карта є графом. A* часто використовується як алгоритм пошуку за графом. Пошук в ширину — це найпростіший алгоритм пошуку за графом, тому в цій статті почнемо розбиратися з нього і поступово перейдемо до A*. Карти, на яких шляхи прокладаються за допомогою алгоритму «Зіткнутися і повернути», дозволяють пристосуватися до карт, що змінюються. Але у стратегічних іграх гравці не можуть чекати, поки їхні війська розберуться з прокладанням маршрутів. Крім того, карти шляхів можуть бути дуже великими, і на вибір правильного шляху на таких картах витрачатиметься дуже багато ресурсів. У таких ситуаціях на допомогу приходить алгоритм пошуку шляхів.
Посилання
Grid pathfinding optimizations // URL: https://www.redblobgames.com/ pathfinding/grids/algorithms.html (date of access: 11.01.2022).
Grids and Graphs // URL: https://www.redblobgames.com/pathfinding/ grids/graphs.html (date of access: 11.01.2022).
Введення в алгоритм A* // URL: https://habr.com/ru/post/331192/ (date of access: 11.01.2022).
Пошук шляху, або як вороги в іграх знаходять дорогу //URL: https://dtf.ru/gamedev/709133-poisk-puti-ili-kakvragi-v-igrah-nahodyat-dorogu (date of access: 11.01.2022).
Map representations // URL: http://theory.stanford.edu/~amitp/Game Programming/MapRepresentations.html (date of access: 11.01.2022).
Algorithm A * Implementation // URL: https://habr.com/ru/post/331220/ (date of access: 11.01.2022).
Admissible heuristic // URL: https://en.wikipedia.org/wiki/Admissible _heuristic (date of access: 11.01.2022).
Створення штучного інтелекту для ігор – від проектування до оптимізації // URL: https://habr.com/ru/company/intel/blog/265679/ (date of access: 11.01.2022).
Як створити ігровий ШІ: гайд для початківців // URL: https://habr.com/ru/company/pixonic/blog/428892/ (date of access: 11.01.2022).
Як створити ігровий ШІ: гайд для початківців //URL: https://habr.com/ru/post/420219/ (date of access: 11.01.2022).
Не зовсім людина: штучний інтелект в іграх // URL: https://skillbox.ru/media/gamedev/iskusstvennyy-intellektv-igrakh/ (date of access: 11.01.2022).
Pathfinding Demystified (Part I): Generic Search Algorithm // URL: https://www.gabrielgambetta.com/generic-search.html (date of access: 11.01.2022).
Generalized Platformer AI Pathfinding // URL: https://www.gamedev.net/articles/programming/artificial-intelligence/generalized-platformer-ai-pathfinding-r3924/ (date of access: 11.01.2022).
Алгоритм Дейкстри. Пошук оптимальних маршрутів на графі // URL: https://habr.com/ru/post/111361/ (date of access: 11.01.2022).