Поддерживаемый Godot Engine: 4.3 (v1.2.0+) | 4.2 (выпуски v1.1.x)
LimboAI — это плагин C++ с открытым исходным кодом для Godot Engine 4 , обеспечивающий комбинацию деревьев поведения и конечных автоматов , которые можно использовать вместе для создания сложного поведения ИИ. Он поставляется с редактором дерева поведения, встроенной документацией, визуальным отладчиком, обширным демонстрационным проектом с учебным пособием и многим другим! Хотя он реализован на C++, он полностью поддерживает GDScript для создания собственных задач и состояний.
Если вам нравится использовать LimboAI, пожалуйста, поддержите мои усилия пожертвованием на Ko-fi? Ваш вклад поможет мне продолжать его развивать и улучшать.
Деревья поведения — это мощные иерархические структуры, используемые для моделирования и управления поведением агентов в игре (например, персонажей, врагов). Они созданы для того, чтобы упростить создание богатых и модульных вариантов поведения для ваших игр. Чтобы узнать больше о деревьях поведения, ознакомьтесь с разделом «Введение в деревья поведения» и нашим демонстрационным проектом, который включает учебное пособие.
Демо-проект находится в папке
demo
и доступен отдельно в Releases . Чтобы начать, запуститеdemo/scenes/showcase.tscn
. Он также включает учебное пособие, которое знакомит с деревьями поведения на наглядных примерах.
Видео на YouTube, созданные разными авторами
Деревья поведения (BT):
Планы Blackboard: определите переменные в ресурсе BehaviorTree и переопределите их значения в узле BTPlayer.
Редактор планов: управляйте переменными, их типами данных и подсказками свойств.
Области Blackboard: предотвращайте конфликты имен и используйте расширенные методы, такие как обмен данными между несколькими агентами.
Параметры Blackboard: экспортируйте параметр BB, для которого пользователь может указать значение или привязать его к переменной Blackboard (может использоваться в пользовательских задачах).
Поддержка инспектора для указания переменных доски (пользовательский редактор для экспортированных свойств StringName
, заканчивающихся на «_var»).
Легко создавайте, редактируйте и сохраняйте ресурсы BehaviorTree
в редакторе.
Выполните ресурсы BehaviorTree
с помощью узла BTPlayer
.
Создавайте сложные модели поведения, объединяя и встраивая задачи в иерархию.
Управляйте потоком выполнения с помощью составных, декораторных и условных задач.
Создавайте собственные задачи, расширяя базовые классы: BTAction
, BTCondition
, BTDecorator
и BTComposite
.
Встроенная документация по классам.
Система Blackboard: беспрепятственный обмен данными между задачами с помощью Blackboard
.
Используйте задачу BTSubtree
для выполнения дерева из другого файла ресурсов, обеспечивая организацию и возможность повторного использования.
Визуальный отладчик: проверьте выполнение любого BT в работающей сцене, чтобы выявить и устранить проблемы.
Визуализируйте BT в игре с помощью узла BehaviorTreeView
(для пользовательских внутриигровых инструментов).
Отслеживайте производительность дерева с помощью пользовательских мониторов производительности.
Иерархические конечные автоматы (HSM):
Расширьте класс LimboState
для реализации логики состояний.
Узел LimboHSM
служит конечным автоматом, который управляет экземплярами и переходами LimboState
.
LimboHSM
сам по себе является состоянием и может быть вложен в другие экземпляры LimboHSM
.
На основе событий: переходы связаны с событиями и запускаются конечным автоматом при отправке соответствующего события, что позволяет лучше отделить переходы от логики состояний.
Объедините конечные автоматы с деревьями поведения, используя BTState
для расширенного реактивного искусственного интеллекта.
Вариант делегирования: используя ванильный LimboState
, делегируйте реализацию своим функциям обратного вызова, что делает его идеальным для быстрого прототипирования и игровых джемов.
? Примечание. Для настройки и инициализации конечного автомата требуется код; графического редактора нет.
Протестировано: задачи дерева поведения и HSM покрываются модульными тестами.
GDExtension: LimboAI можно использовать как расширение. Специальные сборки двигателя не требуются.
Демо + руководство: ознакомьтесь с нашим обширным демонстрационным проектом, который включает в себя введение в деревья поведения на примерах.
Следуйте руководству «Первые шаги», чтобы узнать, как начать работу с LimboAI и демонстрационным проектом.
LimboAI можно использовать как модуль C++ или как общую библиотеку GDExtension. Версия GDExtension более удобна в использовании, но несколько ограничена в возможностях. Какой бы вариант вы ни выбрали, ваш проект останется совместимым с обоими, и вы сможете в любой момент переключиться с одного на другой. См. Использование GDExtension.
Для самых последних сборок перейдите в «Действия» → «Все сборки» , выберите сборку из списка и прокрутите вниз, пока не найдете раздел «Артефакты» .
Для выпускных сборок проверьте Releases .
Загрузите исходный код Godot Engine и поместите исходный код этого модуля в каталог modules/limboai
.
Инструкции по сборке из исходного кода см. в документации Godot Engine.
Если вы планируете экспортировать игру с использованием модуля LimboAI, вам также потребуется создать шаблоны экспорта.
Чтобы выполнить модульные тесты, скомпилируйте движок с tests=yes
и запустите его с --test --tc="*[LimboAI]*"
.
Вам понадобится инструмент сборки SCons и компилятор C++. См. также Компиляция.
Запустите scons target=editor
чтобы создать библиотеку плагинов для вашей текущей платформы.
SCons автоматически клонирует репозиторий godot-cpp/, если он еще не существует в каталоге limboai/godot-cpp
.
По умолчанию построенные цели помещаются в демонстрационный проект: demo/addons/limboai/bin/
Проверьте scons -h
на наличие других опций и целей.
Онлайн-документация: стабильная, последняя версия
Первые шаги
Введение в деревья поведения
Создание пользовательских задач в GDScript
Обмен данными с помощью Blackboard
Доступ к узлам в дереве сцены
Государственные машины
Использование GDExtension
Использование LimboAI с C#
Ссылка на класс
Вклады приветствуются! Пожалуйста, открывайте проблемы для отчетов об ошибках, запросов функций или изменений кода. Подробные инструкции по участию в коде или документации можно найти на нашей странице «Содействие».
Если у вас есть идея для задачи дерева поведения или функции, которая может быть полезна в различных проектах, откройте проблему, чтобы обсудить ее.
Нужна помощь? У нас есть сервер Discord: https://discord.gg/N5MGC95GpP
О разработке LimboAI я пишу на Mastodon: https://mastodon.gamedev.place/@limbo.
Использование этого исходного кода регулируется лицензией типа MIT, которую можно найти в файле LICENSE или по адресу https://opensource.org/licenses/MIT.
Логотип LimboAI и художественные материалы демо-проекта лицензируются по международной лицензии Creative Commons Attribution 4.0, которую можно найти по адресу https://creativecommons.org/licenses/by/4.0/.