Moteur Godot pris en charge : 4.3 (v1.2.0+) | 4.2 (versions v1.1.x)
LimboAI est un plugin C++ open source pour Godot Engine 4 fournissant une combinaison d' arbres de comportement et de machines d'état , qui peuvent être utilisées ensemble pour créer des comportements d'IA complexes. Il est livré avec un éditeur d'arbre de comportement, une documentation intégrée, un débogueur visuel, un projet de démonstration complet avec un didacticiel, et bien plus encore ! Bien qu'il soit implémenté en C++, il prend entièrement en charge GDScript pour créer vos propres tâches et états.
Si vous aimez utiliser LimboAI, pensez à soutenir mes efforts avec un don sur Ko-fi ? Votre contribution m'aidera à continuer à le développer et à l'améliorer.
Les arbres de comportement sont de puissantes structures hiérarchiques utilisées pour modéliser et contrôler le comportement des agents dans un jeu (par exemple, les personnages, les ennemis). Ils sont conçus pour faciliter la création de comportements riches et hautement modulaires pour vos jeux. Pour en savoir plus sur les arbres comportementaux, consultez Introduction aux arbres comportementaux et notre projet de démonstration, qui comprend un didacticiel.
Le projet de démonstration se trouve dans le dossier
demo
et est disponible séparément dans Releases . Exécutezdemo/scenes/showcase.tscn
pour commencer. Il comprend également un didacticiel qui présente les arbres de comportement à travers des exemples illustratifs.
Vidéos YouTube produites par divers créateurs
Arbres de comportement (BT) :
Plans Blackboard : définissez des variables dans la ressource BehaviorTree et remplacez leurs valeurs dans le nœud BTPlayer.
Éditeur de plan : gérez les variables, leurs types de données et les indices de propriétés.
Étendues Blackboard : évitez les conflits de noms et activez des techniques avancées telles que le partage de données entre plusieurs agents.
Paramètres du tableau noir : exportez un paramètre BB, pour lequel l'utilisateur peut fournir une valeur ou le lier à une variable du tableau noir (peut être utilisé dans des tâches personnalisées).
Prise en charge de l'inspecteur pour spécifier les variables du tableau noir (éditeur personnalisé pour les propriétés StringName
exportées se terminant par "_var").
Créez, modifiez et enregistrez facilement des ressources BehaviorTree
dans l'éditeur.
Exécutez les ressources BehaviorTree
à l'aide du nœud BTPlayer
.
Créez des comportements complexes en combinant et en imbriquant les tâches dans une hiérarchie.
Contrôlez le flux d’exécution à l’aide de tâches composites, décoratrices et conditionnelles.
Créez des tâches personnalisées en étendant les classes principales : BTAction
, BTCondition
, BTDecorator
et BTComposite
.
Documentation de classe intégrée.
Système Blackboard : partagez des données de manière transparente entre les tâches à l'aide du Blackboard
.
Utilisez la tâche BTSubtree
pour exécuter une arborescence à partir d'un fichier de ressources différent, favorisant ainsi l'organisation et la réutilisabilité.
Débogueur visuel : inspectez l'exécution de n'importe quel BT dans une scène en cours d'exécution pour identifier et résoudre les problèmes.
Visualisez BT dans le jeu à l'aide du nœud BehaviorTreeView
(pour les outils personnalisés dans le jeu).
Surveillez les performances de l’arborescence avec des moniteurs de performances personnalisés.
Machines à états hiérarchiques (HSM) :
Étendez la classe LimboState
pour implémenter la logique d'état.
Le nœud LimboHSM
sert de machine à états qui gère les instances et les transitions LimboState
.
LimboHSM
est un état lui-même et peut être imbriqué dans d'autres instances LimboHSM
.
Basé sur les événements : les transitions sont associées à des événements et sont déclenchées par la machine à états lorsque l'événement correspondant est distribué, ce qui permet un meilleur découplage des transitions de la logique d'état.
Combinez des machines à états avec des arbres de comportement à l'aide BTState
pour une IA réactive avancée.
Option de délégation : à l'aide de vanilla LimboState
, déléguez l'implémentation à vos fonctions de rappel, ce qui la rend parfaite pour le prototypage rapide et les game jams.
? Remarque : la configuration et l'initialisation de la machine à états nécessitent du code ; il n'y a pas d'éditeur GUI.
Testé : les tâches de l'arbre de comportement et le HSM sont couverts par des tests unitaires.
GDExtension : LimboAI peut être utilisé comme extension. Les versions de moteur personnalisées ne sont pas nécessaires.
Démo + Tutoriel : Découvrez notre vaste projet de démonstration, qui comprend une introduction aux arbres de comportement à l'aide d'exemples.
Suivez le guide Premiers pas pour savoir comment démarrer avec LimboAI et le projet de démonstration.
LimboAI peut être utilisé soit comme module C++, soit comme bibliothèque partagée GDExtension. La version GDExtension est plus pratique à utiliser mais ses fonctionnalités sont quelque peu limitées. Quel que soit votre choix d’utilisation, votre projet restera compatible avec les deux et vous pourrez passer de l’un à l’autre à tout moment. Voir Utilisation de GDExtension.
Pour les versions les plus récentes, accédez à Actions → Toutes les versions , sélectionnez une version dans la liste et faites défiler vers le bas jusqu'à ce que vous trouviez la section Artefacts .
Pour les versions release, vérifiez Releases .
Téléchargez le code source du moteur Godot et placez ce module source dans le répertoire modules/limboai
.
Consultez la documentation du moteur Godot pour obtenir des instructions sur la façon de créer à partir du code source.
Si vous envisagez d'exporter un jeu à l'aide du module LimboAI, vous devrez également créer des modèles d'exportation.
Pour exécuter des tests unitaires, compilez le moteur avec tests=yes
et exécutez-le avec --test --tc="*[LimboAI]*"
.
Vous aurez besoin de l'outil de construction SCons et d'un compilateur C++. Voir aussi Compilation.
Exécutez scons target=editor
pour créer la bibliothèque de plugins pour votre plate-forme actuelle.
SCons clonera automatiquement le référentiel godot-cpp/ s'il n'existe pas déjà dans le répertoire limboai/godot-cpp
.
Par défaut, les cibles construites sont placées dans le projet de démonstration : demo/addons/limboai/bin/
Vérifiez scons -h
pour d'autres options et cibles.
Documentation en ligne : stable, la plus récente
Premiers pas
Introduction aux arbres de comportement
Création de tâches personnalisées dans GDScript
Partager des données à l'aide de Blackboard
Accéder aux nœuds dans l'arborescence de la scène
Machines à états
Utilisation de GDExtension
Utiliser LimboAI avec C#
Référence de classe
Les contributions sont les bienvenues ! Veuillez ouvrir des problèmes pour les rapports de bogues, les demandes de fonctionnalités ou les modifications de code. Pour obtenir des directives détaillées sur la contribution au code ou à la documentation, consultez notre page de contribution.
Si vous avez une idée de tâche d'arbre de comportement ou de fonctionnalité qui pourrait être utile dans divers projets, ouvrez un ticket pour en discuter.
Besoin d'aide ? Nous avons un serveur Discord : https://discord.gg/N5MGC95GpP
J'écris sur le développement de LimboAI sur Mastodon : https://mastodon.gamedev.place/@limbo.
L'utilisation de ce code source est régie par une licence de type MIT qui peut être trouvée dans le fichier LICENSE ou sur https://opensource.org/licenses/MIT
Le logo LimboAI et les ressources artistiques du projet de démonstration sont sous licence Creative Commons Attribution 4.0 International, disponible sur https://creativecommons.org/licenses/by/4.0/.