Re: Передвижение бота из пункта А в пункт В по вейпоинтам.
В рамках поставленной Кристаллом задачи: "Боты ходят по дороге с правосторонним движением, и таскают тритий от рудника к заводу", решение достижимо, к примеру, так, как показано в примерах.
RunMe0.bb демонстрирует вариант с управлением ботами с помощью инструкций, "вшитых" в вейпоинты. Получаем нечто вроде зацикленной перфоленты. В примере реализовано только три вида инструкций: 0- идти к след.ВП, 1- забрать ресурсы, 2-отдать ресурсы. Естественно, набор инструкций можно расширить как угодно, усложнив поведение ботов.
RunMe1.bb показывает вариант с жалким подобием псевдоинтеллекта ботов: бот выбирает куда и зачем ему идти (к руднику, к гаражу) самостоятельно, испольуя ВП лишь как рельсы. Этот вариант НЕПРИМЕНИМ на практике, и служит лишь антипримером. Он показывает, что жесткая привязка бота к дороге и отсутствие реального ИИ и путенахождения приводят к разрушению упорядоченной структуры кода и "наматыванию соплей"- лишних и дублирующихся строк.
Для реализации сложных моделей поведения ботов, нужно разграничивать модули ИИ, отвечающие за принятие решений и поиск пути, фактически отказываясь от "дорог" и "жестких курсов" и переходя к ПП по нерегулярной сети вейпоинтов и набору задач, которые должен гибко меняя поведение решать конкретный бот. Т.е.- к ИИ юнитов в стратегии. ТЗ, данное Кристаллом, не предполагает таких возможностей, в итоге мы останавливаемся на примере № 0.
P.S. Сорри за убогие модели ботов.
|