просто отпишусь сюда о моем результате изучения бехавиор трии может кому-то пригодятся выводы.
1- сначала я посмотрел стримы Фллаки -
https://www.youtube.com/watch?v=RBcek3Y ... krMov330FFон там не использует бехавиор трии, и даже немного покритиковал его.
И если посмотреть на его конечную логику ботов , то действительно в таком случае бехавиор трии не сильно и нужен.
2- вот когда он действительно становится нужен - когда у бота обширный выбор действий, скажем от 10(с потолка), и все они могут быть как автономными так и зависимыми друг от друга, отслеживание всего дерева логики в блуепринтах превращается в филиал ада.
Когда бот не просто один из АИ-класса агрессив-френдли-ситизен(тоесть три модели поведения в которых все что нужно идти туда при достижении точки что сделать), а намного более функциональный.
Но в бехавиор трии легко отслеживается вся цепочка которая ведет к результату.
3- о написании BT- тасков и сервисов: мой вывод - основную логику все равно пишем в контроллере, а в БТ- тасках только вызываем ее, тогда логика доступна и в блуепринте и в бехавиор трии. Ну и для простоты всех участников логики дерева снабжаем интерфейсами.
В итоге - в БТ-тасках только коммуникация АИ-контроллера со всем с чем ему нужно взаимодействовать, и раздача ключей, и они становятся - очень простыми. Сами БТ- таски желательно пилить не под одиночные задачи а более универсальные и настраиваемые, например если нужно взаимодействие с обьектом то в таск добавить переменную фильтр по классу обьектов и тд.
В действительности все можно сделать и без бехавиор трии, но при сильно большом и ветвистом дереве логики с ним намного(!) проще, и наращивать дерево проще, и проще находить ошибки.
_________________
we need to go deeper