Чому амазонка в Diablo II не збирає зілля, коли воно на іншій стороні провалля?
Досліджую Diablo II: Resurrected і помічаю наступний феномен: клікаєш на зілля, а амазонка біжить прямо до нього, добігає до початку провалля, і замість того, щоб обійти навкруги, та підняти зілля, зупиняється.
Я думаю, що тут якась вада алгоритму, що використовують.
Подивимося більш абстрактно на цю ситуацію: є точка А, є точка Б, є перешкода П між цими двома точками.
Завдання: отримати шлях із точки А у точку Б, якщо перешкода не ділить лабіринт навпіл (що унеможливить її обхід).
Цю задачу взагалі можна вирішити?
Ось ще приклад:
Коли монстри за парканом, вони не переслідують паладина. Створють натовп у найближчій точці, але вона за парканом. Щоб дістатися паладина треба відійти від паркана ліворуч на 10 кроків — тут паркан закінчується — далі зробити два кроки вперед і все — перешкода вже позаду — хапай ворога. Але монстри так не робять. Хоча людині зрозуміло: якщо паркан заважає — треба простежити шлях що його оминає.
13 коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарівПоки ще у моєї нової гри — що надасть амазонці фантастичні можливості для розвитку її талантів і здібностей...
Поки що у моєї нової гри є лише початок. Інтерфейс буде таким:
Вікно з кнопками
«Що», «Де», «Коли», «Яка дія», «Які наслідки»
Цього мені вистачить щоб місяці три захоплено програмувати щось таке ж надзвичайне як і все інші мої подєлкі.
Оскільки я вирішив що пофіксити той баг можна, якщо створити карткову версію гри, то почав програмувати її логіку, нижче простий приклад приготування окріпу з холодної води та вогню.
З дуже смачним (іншим) багом inside який я зараз пофіксю.
До речі, цей ласий шматок логів є справжнісіньким матеріалом для тренування / загадкою / квестом для справжніх програмістів. Тут виклик — чи можна по цих логах зрозуміти, а який саме у мене алгоритм, що дозволяє мені отак boil cold water ?
uk.m.wikipedia.org/wiki/Алгоритм_пошуку_A
Та не використовує іграшка цей алгоритм. Інакше монстри оминали б паркани.
Ты явно ошибся, написав в своем в описании что ты «программист».
Учиться никогда не поздно, впрочем. Млжешб начать с декомпилированных исходников первой дьяблы: github.com/...73ff/Source/path.cpp#L301
Може, зробили, щоб персонажі бігли куди клікнув, а не під снаряди чи до монстрів. Бо помруть.
Якщо це відбувається лише при грі за амазонку, то як на мене проблема не в алгоритмі обходу, а в чомусь іншому, пов’язаному конкретно з цим персонажем
Перевірив. Коли монстри за парканом, вони не переслідують паладина. Створють натовп у найближчій точці, але вона за парканом. Щоб дістатися паладина треба відійти від паркана ліворуч на 10 кроків — тут паркан закінчується — далі зробити два кроки вперед і все — перешкода вже позаду — хапай ворога. Але монстри так не робять. Тому це все ж таки вада алгоритму. Якщо паркан заважає — треба простежити шлях що його оминає.
Хіба А* не вирішує цю задачу?
ви занадто багато хочете від людини рочків 50+ шо ввірвалась в програмування з ноги й ще й одразу в js
ШІ монстрів у Дьябло тупить чогось. Не використовує можливості алгоритму пошуку «A star»
Ну це уже проблема розробників, відповідь на питання чи ця проблема вирішується є 😁