Для большинства современных компьютерных игр, особенно для стратегий в реальном времени, игровой опыт сильно зависит от правильной работы искусственного интеллекта. Такая часть искусственного интеллекта, как поиск пути, сильно влияет на успех игры. Поэтому игровые дизайнеры тратят огромное количество усилий, чтобы увеличить производительность алгоритмов ответственных за поиск пути. Такие алгоритмы работают с большим количеством компьютерных ресурсов, но не должны нагружать процессор.
Навигация в виртуальном мире осуществляется с помощью алгоритма А* вместе с локальным алгоритмом движения для нахождения оптимального пути. Навигационные сетки наиболее популярный подход для объединения алгоритмов поиска пути с локальными алгоритмами движения.
Рисунок 1. Пример навигационной сетки (NavMesh).
Навигационная сетка (NavMesh) - это абстрактное представление виртуального мира игры в виде ячеек, образующих доступное для перемещения компьютерных персонажей пространство (рисунок 1). Ячейки в этом пространстве являются многоугольниками. В зависимости от количества сторон у этих многоугольников, навигационные сетки делятся на триангуляционные и полигональные. Пример триангуляционной сети показан на рисунке 1 (серые многоугольники представляют пространство доступное для передвижения, белые многоугольники - препядствия). Многоугольники в навигационной сетке должны быть выпуклыми. Это необходимо для свободного перемещения персонажа игры внутри одного многоугольника. В этом случае алгоритм поиска оптимального пути может исполняться на графе, в котором ячейки являются узлами графа, а соединения между ними образуют переходы и являются ребрами графа.
Во многих случаях разработчикам требуется создавать навигационные сетки вручную, что занимает много времени и может привести к ошибкам, при которых образуются области недоступные для передвижения игровых персонажей, либо персонажи начинают застревать в углах и препятствиях. Поэтому существуют специальные алгоритмы генерации навигационных сеток для предотвращения таких ошибок.
Проделанная работа показала, что даже такое с первого взгляда простое изменение искусственного интеллекта в игре, как изменение способа построения путей для внутриигровых персонажей, может существенно изменить геймплей, преобразив получаемый игровой опыт. Когда компьютер может подстраиваться под игровые действия, игроку приходится придумывать каждый раз новую стратегию или изменять имеющуюся, что несомненно делает игровой процесс более интересным.
1. Xiao Cui, Hao Shi. An Overview of Pathfinding in Navigation Mesh// IJCSNS International Journal of Computer Science and Network Security, 48 VOL.12 No.12 - December 2012
2. Ramon Oliva, Nuria Pelechano. Automatic Generation of Suboptimal NavMeshes//Motion in Games, 4th International Conference, MIG 2011, Edinburgh, UK, November 13-15, 2011.
3. Delaunay B. Sur la sphere vide. A la memoire de Georges Voronoi // Изв. АН СССР. VII серия. Отделение матем. и естеств. наук. — 1934. — № 6. — С. 793—800
4. Dijkstra E. W. A note on two problems in connexion with graphs// Numer. Math — Springer Science+Business Media, 1959. — Vol. 1, Iss. 1. — P. 269-271. — ISSN 0029-599X; 0945-3245— doi:10.1007/BF01386390
5. Евстигнеев В. А. Глава 3. Итеративные алгоритмы глобального анализа графов. Пути и покрытия // Применение теории графов в программировании/ Под ред. А. П. Ершова. — Москва: Наука. Главная редакция физико-математической литературы, 1985. — С. 138-150. — 352 с.
6. Hart P. E., Nilsson, N. J., Raphael, B. A Formal Basis for the Heuristic Determination of Minimum Cost Paths // IEEE Transactions on Systems Science and Cybernetics SSC4. — 1968. — № 2. — С. 100 — 107.
7. Hart P. E., Nilsson, N. J., Raphael, B. Correction to «A Formal Basis for the Heuristic Determination of Minimum Cost Paths» // SIGART Newsletter. — 1972. — Т. 37. — С. 28 — 29.
8. T. H. Cormen, C. E. Leiserson, R. L. Rivest, C. Stein. Introduction to Algorithms. — 3rd edition. — The MIT Press, 2009. — ISBN 978-0-262-03384-8.. Перевод 2-го издания: Томас Х. Кормен, Чарльз И. Лейзерсон, Рональд Л.
9. Christoph Romstock Generating 2D Navmeshe//GDOL (Gamedev.net Open License)
10. Unity Documentation // https: //docs.unity3 d.com/ru/current/Manual/Overview2D.html