Поиск пути
Поиск пути (англ. Pathfinding) — термин в информатике и искусственном интеллекте, который означает определение компьютерной программой наилучшего, оптимального маршрута между двумя точками.
В играх
Поиск пути в контексте компьютерных игр касается пути, на котором движущийся объект ищет путь вокруг препятствий. Наиболее часто задача поиска пути возникает в стратегиях реального времени, в которых игрок даёт задание игровым юнитам (единицам) двигаться через игровой уровень, который содержит препятствия. Кроме стратегий, задача поиска пути, так или иначе, в той или иной мере встречается в большинстве современных игровых жанров. Так как игры становятся всё сложнее, то поиск пути также эволюционирует и развивается вместе с ними.
Стратегии реального времени обычно содержат большие территории с открытым ландшафтом, в которых поиск пути обычно является простой задачей. Однако в большинстве случаев по карте перемещается не один юнит, а несколько, что создаёт потребность в различных и намного более сложных алгоритмах поиска пути для избежания пробок в узких областях игрового ландшафта. В стратегиях игровой уровень делится на тайлы (англ. tiles), которые действуют как узлы (англ. nodes) в алгоритме поиска пути.[1][2]
В жанре 3D-шутеров используются намного более ограниченные пространства, которые не так легко разделить на узлы. Здесь взамен узлов используются так называемые вэйпоинты (англ. waypoints; дословно — русск. точки пути). Вэйпоинты — это нерегулярные и вручную установленные узлы, которые содержат информацию о том, к каким другим узлам возможно добраться от данного.
Алгоритмы
По своей сути алгоритм поиска пути ищет на графе, начиная с одной (стартовой) точки и исследуя смежные узлы до тех пор, пока не будет достигнут узел назначения (конечный узел). Кроме того, в алгоритмы поиска пути в большинстве случаев заложена также цель найти самый короткий путь. Некоторые методы поиска на графе, такие как поиск в ширину, могут найти путь, если дано достаточно времени. Другие методы, которые «исследуют» граф, могут достичь точки назначения намного скорее. Здесь можно привести аналогию с человеком, идущим через комнату. Человек может перед началом пути заранее исследовать все характеристики и препятствия в пространстве, вычислить оптимальный маршрут и только тогда начать непосредственное движение. В другом случае человек может сразу пойти в приблизительном или предполагаемом направлении цели и потом, уже во время пути, делать корректировки своего движения для избегания столкновений с препятствиями.
К самым известным и популярным алгоритмам поиска пути относятся такие алгоритмы:
- Алгоритм поиска A*
- Алгоритм Дейкстры
- Волновой алгоритм
- Navmesh[1]
- Иерархические алгоритмы[1]
- Обход препятствий[1]
- Алгоритм "Разделяй и властвуй"
- Алгоритм поворота Креша
См. таже
Примечания
- ↑ 1,0 1,1 1,2 1,3 Роман Будкеев Поиск пути в игре жанра RTS Страница 1 из 2. bimedev.ru (29 июня 2007 года). Проверено 21 января 2010.
- ↑ Роман Будкеев Поиск пути в игре жанра RTS Страница 2 из 2. bimedev.ru (29 июня 2007 года). Проверено 21 января 2010.
Внешние ссылки
- Англоязычные
- http://www.policyalmanac.org/games/aStarTutorial.htm
- http://theory.stanford.edu/~amitp/GameProgramming/
- http://sourceforge.net/projects/argorha
- http://www.ai-blog.net/archives/000152.html
- Русскоязычные
- Bryan Stout (оригинальная статья) Maxim Kamensky (перевод) Алгоритмы поиска пути. pmg.org.ru (5 декабря 2000 года). Проверено 22 июля 2009.
- George Judkin Алгоритм поиска пути на карте (англ.). Королевство Delphi (28 марта 2005 года). Проверено 22 июля 2009.
- John Christian Lonningdal (оригинальная статья) Анисимов С.Ю. (перевод) Поиск пути: описание волнового алгоритма и других. www.iskint.ru (декабрь 1996 года). Проверено 22 июля 2009.
- Поиск пути: исходные коды программ. www.iskint.ru. Проверено 22 июля 2009.
de:Pathfinding en:Pathfinding fr:Recherche de chemin fi:Polunetsintä zh:寻路
Если вам нравится SbUP.com Сайт, вы можете поддержать его - BTC: bc1qppjcl3c2cyjazy6lepmrv3fh6ke9mxs7zpfky0 , TRC20 и ещё....