Motor Godot compatible: 4.3 (v1.2.0+) | 4.2 (versiones v1.1.x)
LimboAI es un complemento C++ de código abierto para Godot Engine 4 que proporciona una combinación de árboles de comportamiento y máquinas de estado , que se pueden usar juntos para crear comportamientos complejos de IA. Viene con un editor de árbol de comportamiento, documentación incorporada, depurador visual, un extenso proyecto de demostración con un tutorial y más. Si bien está implementado en C++, es totalmente compatible con GDScript para crear sus propias tareas y estados.
Si le gusta usar LimboAI, considere apoyar mis esfuerzos con una donación en Ko-fi. Tu aporte me ayudará a seguir desarrollándolo y mejorándolo.
Los árboles de comportamiento son poderosas estructuras jerárquicas que se utilizan para modelar y controlar el comportamiento de los agentes en un juego (p. ej., personajes, enemigos). Están diseñados para facilitar la creación de comportamientos ricos y altamente modulares para sus juegos. Para obtener más información sobre los árboles de comportamiento, consulte Introducción a los árboles de comportamiento y nuestro proyecto de demostración, que incluye un tutorial.
El proyecto de demostración se encuentra en la carpeta
demo
y está disponible por separado en Versiones . Ejecutedemo/scenes/showcase.tscn
para comenzar. También incluye un tutorial que presenta los árboles de comportamiento a través de ejemplos ilustrativos.
Vídeos de YouTube producidos por varios creadores.
Árboles de comportamiento (BT):
Planes de Blackboard: defina variables en el recurso BehaviorTree y anule sus valores en el nodo BTPlayer.
Editor de planes: administre variables, sus tipos de datos y sugerencias de propiedades.
Alcances de Blackboard: evite conflictos de nombres y habilite técnicas avanzadas como compartir datos entre varios agentes.
Parámetros de Blackboard: exporte un parámetro BB, para el cual el usuario puede proporcionar un valor o vincularlo a una variable de Blackboard (se puede usar en tareas personalizadas).
Compatibilidad con inspector para especificar variables de pizarra (editor personalizado para propiedades StringName
exportadas que terminan en "_var").
Cree, edite y guarde fácilmente recursos BehaviorTree
en el editor.
Ejecute recursos BehaviorTree
utilizando el nodo BTPlayer
.
Cree comportamientos complejos combinando y anidando tareas en una jerarquía.
Controle el flujo de ejecución mediante tareas compuestas, decoradoras y de condición.
Cree tareas personalizadas ampliando las clases principales: BTAction
, BTCondition
, BTDecorator
y BTComposite
.
Documentación de clase incorporada.
Sistema Blackboard: comparta datos sin problemas entre tareas utilizando Blackboard
.
Utilice la tarea BTSubtree
para ejecutar un árbol desde un archivo de recursos diferente, promoviendo la organización y la reutilización.
Depurador visual: inspecciona la ejecución de cualquier BT en una escena en ejecución para identificar y solucionar problemas.
Visualice BT en el juego usando el nodo BehaviorTreeView
(para herramientas personalizadas en el juego).
Supervise el rendimiento del árbol con monitores de rendimiento personalizados.
Máquinas de estados jerárquicos (HSM):
Amplíe la clase LimboState
para implementar la lógica de estado.
El nodo LimboHSM
sirve como una máquina de estado que gestiona instancias y transiciones LimboState
.
LimboHSM
es un estado en sí mismo y puede anidarse dentro de otras instancias LimboHSM
.
Basado en eventos: las transiciones están asociadas con eventos y la máquina de estado las activa cuando se envía el evento relevante, lo que permite un mejor desacoplamiento de las transiciones de la lógica de estado.
Combine máquinas de estado con árboles de comportamiento utilizando BTState
para obtener IA reactiva avanzada.
Opción de delegación: utilizando LimboState
básico, delega la implementación a tus funciones de devolución de llamada, lo que lo hace perfecto para la creación rápida de prototipos y juegos.
? Nota: La configuración e inicialización de la máquina de estado requieren código; no hay editor GUI.
Probado: las tareas del árbol de comportamiento y HSM están cubiertas por pruebas unitarias.
GDExtension: LimboAI se puede utilizar como extensión. No es necesario construir motores personalizados.
Demostración + Tutorial: consulte nuestro extenso proyecto de demostración, que incluye una introducción a los árboles de comportamiento mediante ejemplos.
Siga la guía de Primeros pasos para aprender cómo comenzar con LimboAI y el proyecto de demostración.
LimboAI se puede utilizar como módulo C++ o como biblioteca compartida de GDExtension. La versión GDExtension es más cómoda de usar pero tiene funciones algo limitadas. Cualquiera que elijas usar, tu proyecto seguirá siendo compatible con ambos y podrás cambiar de uno a otro en cualquier momento. Consulte Uso de GDExtension.
Para las compilaciones más recientes, navegue hasta Acciones → Todas las compilaciones , seleccione una compilación de la lista y desplácese hacia abajo hasta encontrar la sección Artefactos .
Para versiones de lanzamiento, consulte Lanzamientos .
Descargue el código fuente de Godot Engine y coloque la fuente de este módulo en el directorio modules/limboai
.
Consulte la documentación de Godot Engine para obtener instrucciones sobre cómo compilar a partir del código fuente.
Si planeas exportar un juego utilizando el módulo LimboAI, también necesitarás crear plantillas de exportación.
Para ejecutar pruebas unitarias, compila el motor con tests=yes
y ejecútalo con --test --tc="*[LimboAI]*"
.
Necesitará la herramienta de compilación SCons y un compilador de C++. Véase también Compilación.
Ejecute scons target=editor
para crear la biblioteca de complementos para su plataforma actual.
SCons clonará automáticamente el repositorio godot-cpp/ si aún no existe en el directorio limboai/godot-cpp
.
De forma predeterminada, los objetivos creados se colocan en el proyecto de demostración: demo/addons/limboai/bin/
Consulte scons -h
para conocer otras opciones y objetivos.
Documentación en línea: estable, más reciente
Pinitos
Introducción a los árboles de comportamiento
Creando tareas personalizadas en GDScript
Compartir datos usando Blackboard
Accediendo a nodos en el árbol de escenas
maquinas de estados
Usando GDExtensión
Usando LimboAI con C#
referencia de clase
¡Las contribuciones son bienvenidas! Abra los problemas para informes de errores, solicitudes de funciones o cambios de código. Para obtener pautas detalladas sobre cómo contribuir al código o la documentación, consulte nuestra página de Contribución.
Si tiene una idea para una tarea de árbol de comportamiento o una característica que podría ser útil en una variedad de proyectos, abra una incidencia para discutirla.
¿Necesitar ayuda? Contamos con un servidor de Discord: https://discord.gg/N5MGC95GpP
Escribo sobre el desarrollo de LimboAI en Mastodon: https://mastodon.gamedev.place/@limbo.
El uso de este código fuente se rige por una licencia estilo MIT que se puede encontrar en el archivo LICENCIA o en https://opensource.org/licenses/MIT
El logotipo de LimboAI y los recursos artísticos del proyecto de demostración tienen la licencia Creative Commons Attribution 4.0 International que se puede encontrar en https://creativecommons.org/licenses/by/4.0/