Pull to refresh

Comments 3

Я что-то похожее делал. Вообще, идея не нова и я углядел ее еще в RTS.

Есть такая команда - двигаться и атаковать. Это по сути и есть "проверка мостов троллем". Юнит двигается к точке, в случае противника в поле зрения - активируется подзадача "подойти к противнику на дистанцию удара", если дистанция позволяет "начать атаку". Дальше запускается не/прерываемая анимация атаки.

Вроде бы довольно простая логика, но тут так много слов в статье, сложно для внимания. Хз, проблема это перевода или статья такая.

Я делал похожую систему, но с динамическими приоритетами на задачи. Опишу на чуть более простом примере.

Например, похожая система в играх жанра "симулятор колонии". Там задача куда сложнее линейного порядка приоритетов. Задача ставится на группу юнитов. Например: выкопать руду. При этом, для подзадачи должны быть выбраны юниты, которые выполнят задачу 1.быстро 2.по приоритету.

Для добычи нужна кирка. Она есть у юнита 1, но он далеко. При этом добывает лучше юнит 2, и он близко, но будет долго добывать без кирки. Итого, для наиболее оптимального решения задачи возможны различные комбинации подзадач, при этом приоритет той или иной зависит от позиции юнитов и прочих условий.

Например, решение: юниты двигаются навстречу друг другу, юнит 1 передает кирку юниту 2, юнит 2 идет добывать. Или решение: юнит 1 идет добывать. В любом случае, приоритет и результирующий набор подзадач зависит от прогнозируемого времени выполнения решения. При этом даже сами комбинации подзадач могут формироваться динамически, через прогнозирования минмаксов и генетических алгоритмов.

Да и вообще тема htn planning через декомпозицию выглядит в ряде случаев крайне неоптимальной. Особенно в области ИИ. Предполагается ручное (человеческое) разбиение некой задачи на фиксированные подзадачи ради выполнения "комманды".

При этом более эффективным будет применение динамического формирования событий на основе желаемого результата. Т.е. результирующего изменения свойств состояния модели мира. Т.е. не "команда", а желаемый результат.

Я немножко глупенький и не шарю в терминах предметной области, так что поправьте, если что не так понял?

П.с. туплю в слове команда, т.к. проверочное слово: command 🤣

Sign up to leave a comment.