Beehave — дополнение Behavior Tree для Godot
Теги: beehave godot gamedev behavior-tree
Beehave — минималистичный аддон behaviour tree для игрового движка [godot]. Проект начат как форк простого примера и доработан автором для удобства использования: добавлен отладочный вид в редакторе, исправлены и расширены ноды, а также организован отдельный репозиторий с поддержкой веток для Godot 3.x и 4.x.
Статья написана с помощью gpt-5 mini.
Ключевая идея Beehave — дать простой и расширяемый набор нод для построения логики NPC через поведенческие деревья (Behaviour Trees), не перегружая пользователем лишним функционалом.
Что умеет Beehave
- Минималистичная реализация behaviour tree, удобная для интеграции в проекты.
- Поддержка Godot 3.x и Godot 4.x (отдельные ветки и сборки).
- Отладочный режим/вид в редакторе для визуализации выполнения дерева.
- Набор базовых нод: Conditions, Actions (leaf nodes), Composites (Selector, Sequence и их “Star” варианты) и Decorators (Failer, Succeeder, Inverter, Limiter).

Leaf nodes
- Conditions (
ConditionLeaf) — простые проверочные ноды, возвращаютSUCCESSилиFAILURE(например, проверка видимости, дистанции и т.д.). - Actions (
ActionLeaf) — ноды действий, могут быть длительными и возвращатьRUNNINGдо завершения.
Пример Condition (GDScript):
class_name IsVisibleCondition
extends ConditionLeaf
func tick(actor, blackboard):
if actor.visible:
return SUCCESS
return FAILURE
Пример Action (GDScript):
class_name MakeVisibleAction
extends ActionLeaf
func tick(actor, blackboard):
if actor.visible:
return FAILURE
actor.visible = true
return SUCCESS
blackboard используется для обмена данными между нодами дерева.
Composites
- Selector — возвращает
SUCCESS, если хотя бы один ребёнок вернулSUCCESS; в противном случаеFAILURE. - Selector Star — похож на Selector, но при наличии
RUNNINGребенка пропускает ранее выполненные дети (полезно, если нужно, чтобы выполнялось только одно действие одновременно). - Sequence — возвращает
SUCCESS, если все дети вернулиSUCCESS; если хоть один вернулFAILURE— возвращаетFAILURE. - Sequence Star — похож на Sequence, но при
RUNNINGребёнка пропускает ранее успешные дети.
Decorators
- Failer — всегда возвращает
FAILURE. - Succeeder — всегда возвращает
SUCCESS. - Inverter — инвертирует статус дочерней ноды (
SUCCESS↔FAILURE). - Limiter — ограничивает число запусков дочерней ноды.
Смотри еще
Полную лицензию и исходный код смотрите в репозитории:
- Репозиторий: bitbrain/beehave
- [godot]
- [gamedev]