Чому амазонка в Diablo II не збирає зілля, коли воно на іншій стороні провалля?

Досліджую Diablo II: Resurrected і помічаю наступний феномен: клікаєш на зілля, а амазонка біжить прямо до нього, добігає до початку провалля, і замість того, щоб обійти навкруги, та підняти зілля, зупиняється.

Я думаю, що тут якась вада алгоритму, що використовують.

Подивимося більш абстрактно на цю ситуацію: є точка А, є точка Б, є перешкода П між цими двома точками.

Завдання: отримати шлях із точки А у точку Б, якщо перешкода не ділить лабіринт навпіл (що унеможливить її обхід).

Цю задачу взагалі можна вирішити?

Ось ще приклад:

Коли монстри за парканом, вони не переслідують паладина. Створють натовп у найближчій точці, але вона за парканом. Щоб дістатися паладина треба відійти від паркана ліворуч на 10 кроків — тут паркан закінчується — далі зробити два кроки вперед і все — перешкода вже позаду — хапай ворога. Але монстри так не робять. Хоча людині зрозуміло: якщо паркан заважає — треба простежити шлях що його оминає.

Підписуйтеся на Telegram-канал @gamedev_dou, щоб не пропустити найважливіші статті і новини про геймдев

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Поки ще у моєї нової гри — що надасть амазонці фантастичні можливості для розвитку її талантів і здібностей...
Поки що у моєї нової гри є лише початок. Інтерфейс буде таким:
Вікно з кнопками
«Що», «Де», «Коли», «Яка дія», «Які наслідки»
Цього мені вистачить щоб місяці три захоплено програмувати щось таке ж надзвичайне як і все інші мої подєлкі.

Оскільки я вирішив що пофіксити той баг можна, якщо створити карткову версію гри, то почав програмувати її логіку, нижче простий приклад приготування окріпу з холодної води та вогню.
З дуже смачним (іншим) багом inside який я зараз пофіксю.

Counter: 5
found rule main.Rule@386bacc7
 [Cold water] ok
 [Fire] ok
 [User action] not found
Not ready: no msg
Counter: 6
found rule main.Rule@386bacc7
 [Cold water] ok
 [Fire] ok
 [User action] ok
 removing[Cold water]
 removing[Fire]
 removing[User action]
 adding [Boiled water]
Counter: 7
found rule main.Rule@386bacc7
 [Cold water] not found
Not ready: no msg
 [Cold water] not found
Counter: 8
found rule main.Rule@386bacc7
 [Cold water] not found
Not ready: no msg
 [Cold water] not found
Counter: 9
found rule main.Rule@386bacc7
 [Cold water] not found
Not ready: no msg
 [Cold water] not found

До речі, цей ласий шматок логів є справжнісіньким матеріалом для тренування / загадкою / квестом для справжніх програмістів. Тут виклик — чи можна по цих логах зрозуміти, а який саме у мене алгоритм, що дозволяє мені отак boil cold water ?

Та не використовує іграшка цей алгоритм. Інакше монстри оминали б паркани.

Подивимося більш абстрактно на цю ситуацію: є точка А, є точка Б, є перешкода П між цими двома точками.
Завдання: отримати шлях із точки А у точку Б, якщо перешкода не ділить лабіринт навпіл (що унеможливить її обхід).
Цю задачу взагалі можна вирішити?

Ты явно ошибся, написав в своем в описании что ты «программист».

Учиться никогда не поздно, впрочем. Млжешб начать с декомпилированных исходников первой дьяблы: github.com/...​73ff/Source/path.cpp#L301

Може, зробили, щоб персонажі бігли куди клікнув, а не під снаряди чи до монстрів. Бо помруть.

Якщо це відбувається лише при грі за амазонку, то як на мене проблема не в алгоритмі обходу, а в чомусь іншому, пов’язаному конкретно з цим персонажем

Перевірив. Коли монстри за парканом, вони не переслідують паладина. Створють натовп у найближчій точці, але вона за парканом. Щоб дістатися паладина треба відійти від паркана ліворуч на 10 кроків — тут паркан закінчується — далі зробити два кроки вперед і все — перешкода вже позаду — хапай ворога. Але монстри так не робять. Тому це все ж таки вада алгоритму. Якщо паркан заважає — треба простежити шлях що його оминає.

Хіба А* не вирішує цю задачу?

ви занадто багато хочете від людини рочків 50+ шо ввірвалась в програмування з ноги й ще й одразу в js

ШІ монстрів у Дьябло тупить чогось. Не використовує можливості алгоритму пошуку «A star»

Ну це уже проблема розробників, відповідь на питання чи ця проблема вирішується є 😁

Підписатись на коментарі