Я працюю над тим, щоб намагатися покращити нарізку для ворогів моєї гри. Зараз вони просто постійно рухаються до точної позиції гравця, обчислюючи кут між собою та гравцями та рухаючись у цьому напрямку. У мене також є алгоритм стикування, який заважає ворогам укладатися один на одного, тому вони формуватимуться в групи, а не просікати один одного.
Однак тепер, коли я додав карту на основі плитки, мені потрібні вороги, щоб вони також могли обміняти перешкоди та стіни, наприклад. Спочатку я спробував додати значення розділення до плит, що не є прохідними, щоб алгоритм стікання розглядав стіни та перешкоди як об'єкти, від яких слід відійти. Мені ще належить розібратися, чи можливо це зробити, чи ні, оскільки мій початковий тест показав, що вороги вдаряють у невидиму «стіну», де немає непрохідних плиток, але чомусь вони вдаряють її і починають спати.
Мені було цікаво, чи може бути занадто важким для продуктивності обчислити шлях до гравця за допомогою A *, а потім використати алгоритм стікання, щоб запобігти збиткові. Спочатку моя гра повинна була бути хвильовою стрілялкою, але я вирішив замість цього зробити її на рівні в жилах «Гарячої лінії Майамі», тому, швидше за все, у мене буде менше ворогів, з випадковою ордою, і я просто зроблю вони сильніші.
Це життєздатне рішення? Я використовую Java з Slick2D в якості мого ігрового двигуна. Або є краще рішення / алгоритм, який вирішує обидві ці проблеми?