Так что в основном я закодировал A * pathfinder, который может найти пути через препятствия и двигаться с диагнозом. Я в основном реализовал псевдокод от http://www.policyalmanac.org/games/aStarTutorial.htm до реального кода, а также использовал метод двоичной кучи для добавления и удаления элементов из открытого списка.Как улучшить производительность моего A * path finder?
Использование двоичной кучи привело к значительному повышению производительности, примерно в 500 раз быстрее, чем алгоритм сортировки вставки, который я использовал ранее.
проблема в том, что она по-прежнему занимает около 1,5 млн. Наносекунд, что составляет около 0,0015 секунды.
Итак, вопрос заключается в том, что мой план состоит в том, чтобы сделать игру защиты башни, где каждый раз, когда я должен добавить карту башни, каждый раз нужно обновлять траекторию. Если бы у меня было около 50 мобов на карте, это означает, что для обновления всех путей для всего моба потребуется около .0015 * 50 = .075 секунд. Игра в основном тикает (все обновления игрового материала) каждые 1/60 секунды, что составляет 0,016 секунды, поэтому проблема в том, что для обновления путей требуется больше времени, чем требуется для галочки, что приведет к большому отставанию. Итак, как мне это сделать? Мне нужно найти лучший алгоритм для сортировки открытого списка или как-то разделить задачи поиска пути, чтобы каждый тик только X-число задач поиска пути, в отличие от всех из них.
Ваш вопрос является слишком специфичен для уровня описания вы дали нам. –