2015-05-19 2 views
-2

Я делаю игру с сервером Node, который использует поиск пути для врагов. Я использовал сетку сетки 100x100, и я не видел замедление производительности, но когда я увеличил размер до 1000x1000, каждый раз, когда генерируется путь, на сервере есть 1 секунда задержки.Возможно, чтобы PathFind 1000x1000 Grid Map NodeJS?

В настоящее время я использую PathFindingjs с обнаружением пути A *. Есть ли лучший алгоритм поиска путей или алгоритм поиска пути, который позволит использовать сетку 1000x1000 без задержки, или мне не повезло?

Любая помощь приветствуется, спасибо.

+0

Если вы собираетесь опросить мой вопрос, скажите мне, почему. – ThatWeirdDude

+0

A * находит * лучший путь * и является хорошим алгоритмом для этого, вы просто хотите найти * любой путь *? Вы можете просто пойти с жадным подходом. –

+1

... но когда я увеличил рабочую нагрузку 10 000X, он замедлился. шокирующий. – dandavis

ответ

1

Что вы подразумеваете под «задержкой»? Например, потребовалось больше времени, чтобы обработать большую сетку, когда ничего больше не происходило? Или обработка «застыла», пока путь был рассчитан, а затем продолжен?

Получение более длительного времени для обработки является естественным для большого пространства для обработки. Больше ячеек - это больше вычислительной мощности. Нет никакого способа обойти это, кроме других ядер процессора или какого-то сервиса обработки. Это может быть ответ на ваш вопрос прямо там.

Nodejs - это однопоточная система, поэтому вся эта обработка приведет к зависанию других действий, которые происходят. Могут быть способы запуска кусков обработки пути, которые не оказывают заметного влияния на другие вещи - не уверены, как создается библиотека. Или вырезать сетку на более управляемые сегменты для алгоритма маршрутизации (будут решетки 4 500 × 500 почти одинаковыми?). Или иметь два разных сервера на одном и том же компьютере - и другие, и сегментировать ваши запросы.

Смежные вопросы