- PVSM.RU - https://www.pvsm.ru -

Алгоритмы поиска путей на JavaScript

Алгоритмы поиска путей на JavaScript

Поиск оптимального маршрута юнита к цели на неизвестной карте — одна из самых сложных задач при разработке игры. К счастью, существует некоторое количество алгоритмов, которые решают эту задачу. Есть и отличная библиотека PathFinding.js [1] с поддержкой 11 таких алгоритмов.

Библиотеку легко интегрировать в любую веб-игру. Говорят, она отлично оптимизируется под конкретные архитектуры, при этом производительность возрастает на порядок.

По адресу http://qiao.github.com/PathFinding.js/visual [2] есть онлайн-демо с симпатичной визуализацией выполнения алгоритмов. Здесь скорость искусственно занижена (для красоты).

Сейчас поддерживается 11 алгоритмов:

  • AStarFinder *
  • BreadthFirstFinder *
  • BestFirstFinder
  • DijkstraFinder *
  • BiAStarFinder
  • BiBestFirstFinder
  • BiDijkstraFinder *
  • BiBreadthFirstFinder *
  • JumpPointFinder *
  • OrthogonalJumpPointFinder *
  • Trace

Для алгоритмов реализованы три эвристики расчёта расстояния: Manhattan [3] (расстояние городских кварталов), евклидова метрика [4] и расстояние Чебышёва [5]. Каждая из них использует эвристический анализ, чтобы определить перспективность возможного направления дальнейшего пути, то есть каково расстояние от соседних квадратов до цели, в соответствии с определением расстояния.

Автор: alizar

Источник [6]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/javascript/70275

Ссылки в тексте:

[1] PathFinding.js: https://github.com/qiao/PathFinding.js

[2] http://qiao.github.com/PathFinding.js/visual: http://qiao.github.com/PathFinding.js/visual

[3] Manhattan: https://en.wikipedia.org/wiki/Taxicab_geometry

[4] евклидова метрика: https://en.wikipedia.org/wiki/Euclidean_distance

[5] расстояние Чебышёва: https://en.wikipedia.org/wiki/Chebyshev_distance

[6] Источник: http://habrahabr.ru/post/238001/