В настоящее время я пишу 2D-игру в Javascript, используя HTML5 <canvas> элемент. Это идет очень хорошо, но я столкнулся с проблемой.
Дизайн уровня для моей игры - сетка (поэтому стоимость пути, перемещающаяся из одной ячейки в ячейку север/юг/восток/запад, равна 1) с различными препятствиями, занимающими различные местоположения в сетке; очень похоже на лабиринт, но с гораздо большим количеством комнаты для маневра. Каждый индивидуальный уровень составляет порядка 400 и раз; 200 клеток.
Я пытаюсь внедрить врага, который будет искать игрока независимо от того, где он может быть, но у меня возникли проблемы с попыткой перевести один из различных алгоритмов поиска пути в соответствии с моей ситуацией. Большинство из тех, с которыми я сталкивался (например, A * и Dijkstra), по-видимому, лучше всего подходят для 3D или более сложных 2D-ситуаций. Мне было интересно, можно ли значительно упростить эти алгоритмы, чтобы лучше соответствовать моим целям, или если что-то вроде поиска по глубине будет более эффективной альтернативой, учитывая размер уровня.