Unterstützte Godot-Engine: 4.3 (v1.2.0+) | 4.2 (v1.1.x-Versionen)
LimboAI ist ein Open-Source-C++-Plugin für Godot Engine 4 , das eine Kombination aus Verhaltensbäumen und Zustandsmaschinen bietet, die zusammen verwendet werden können, um komplexe KI-Verhaltensweisen zu erstellen. Es enthält einen Verhaltensbaum-Editor, eine integrierte Dokumentation, einen visuellen Debugger, ein umfangreiches Demoprojekt mit Tutorial und mehr! Obwohl es in C++ implementiert ist, unterstützt es vollständig GDScript zum Erstellen eigener Aufgaben und Zustände.
Wenn Sie gerne LimboAI nutzen, denken Sie bitte darüber nach, meine Bemühungen mit einer Spende auf Ko-fi zu unterstützen ? Ihr Beitrag wird mir helfen, es weiterzuentwickeln und zu verbessern.
Verhaltensbäume sind leistungsstarke hierarchische Strukturen, die zur Modellierung und Steuerung des Verhaltens von Agenten in einem Spiel (z. B. Charaktere, Feinde) verwendet werden. Sie sollen es einfacher machen, umfassende und hochmodulare Verhaltensweisen für Ihre Spiele zu erstellen. Weitere Informationen zu Verhaltensbäumen finden Sie in der Einführung in Verhaltensbäume und in unserem Demoprojekt, das ein Tutorial enthält.
Das Demoprojekt befindet sich im
demo
und ist separat unter „Releases“ verfügbar. Führen Siedemo/scenes/showcase.tscn
aus, um zu beginnen. Es enthält auch ein Tutorial, das Verhaltensbäume anhand anschaulicher Beispiele vorstellt.
Von verschiedenen Erstellern produzierte YouTube-Videos
Verhaltensbäume (BT):
Blackboard-Pläne: Definieren Sie Variablen in der BehaviorTree-Ressource und überschreiben Sie ihre Werte im BTPlayer-Knoten.
Planeditor: Verwalten Sie Variablen, ihre Datentypen und Eigenschaftshinweise.
Blackboard-Bereiche: Verhindern Sie Namenskonflikte und ermöglichen Sie erweiterte Techniken wie die gemeinsame Nutzung von Daten zwischen mehreren Agenten.
Blackboard-Parameter: Exportieren Sie einen BB-Parameter, für den der Benutzer einen Wert bereitstellen oder ihn an eine Blackboard-Variable binden kann (kann in benutzerdefinierten Aufgaben verwendet werden).
Inspektor-Unterstützung für die Angabe von Blackboard-Variablen (benutzerdefinierter Editor für exportierte StringName
Eigenschaften, die mit „_var“ enden).
Erstellen, bearbeiten und speichern Sie BehaviorTree
-Ressourcen ganz einfach im Editor.
Führen Sie BehaviorTree
Ressourcen mithilfe des BTPlayer
Knotens aus.
Erstellen Sie komplexe Verhaltensweisen, indem Sie Aufgaben in einer Hierarchie kombinieren und verschachteln.
Steuern Sie den Ausführungsfluss mithilfe von Verbund-, Dekorations- und Bedingungsaufgaben.
Erstellen Sie benutzerdefinierte Aufgaben, indem Sie die Kernklassen erweitern: BTAction
, BTCondition
, BTDecorator
und BTComposite
.
Integrierte Klassendokumentation.
Blackboard-System: Teilen Sie Daten mithilfe des Blackboard
nahtlos zwischen Aufgaben.
Verwenden Sie die BTSubtree
-Aufgabe, um einen Baum aus einer anderen Ressourcendatei auszuführen und so die Organisation und Wiederverwendbarkeit zu fördern.
Visueller Debugger: Überprüfen Sie die Ausführung aller BTs in einer laufenden Szene, um Probleme zu identifizieren und zu beheben.
Visualisieren Sie BT im Spiel mit BehaviorTreeView
Knoten (für benutzerdefinierte In-Game-Tools).
Überwachen Sie die Baumleistung mit benutzerdefinierten Leistungsmonitoren.
Hierarchische Zustandsmaschinen (HSM):
Erweitern Sie die LimboState
-Klasse, um Zustandslogik zu implementieren.
LimboHSM
Knoten dient als Zustandsmaschine, die LimboState
Instanzen und -Übergänge verwaltet.
LimboHSM
ist selbst ein Zustand und kann in anderen LimboHSM
Instanzen verschachtelt werden.
Ereignisbasiert: Übergänge sind mit Ereignissen verknüpft und werden von der Zustandsmaschine ausgelöst, wenn das entsprechende Ereignis ausgelöst wird, was eine bessere Entkopplung der Übergänge von der Zustandslogik ermöglicht.
Kombinieren Sie Zustandsmaschinen mit Verhaltensbäumen mithilfe von BTState
für erweiterte reaktive KI.
Delegationsoption: Delegieren Sie die Implementierung mit Vanilla LimboState
an Ihre Callback-Funktionen, was sie perfekt für Rapid Prototyping und Game Jams macht.
? Hinweis: Für die Einrichtung und Initialisierung der Zustandsmaschine ist Code erforderlich. Es gibt keinen GUI-Editor.
Getestet: Verhaltensbaumaufgaben und HSM werden durch Komponententests abgedeckt.
GDExtension: LimboAI kann als Erweiterung verwendet werden. Benutzerdefinierte Engine-Builds sind nicht erforderlich.
Demo + Tutorial: Schauen Sie sich unser umfangreiches Demoprojekt an, das eine Einführung in Verhaltensbäume anhand von Beispielen beinhaltet.
Befolgen Sie die Anleitung „Erste Schritte“, um zu erfahren, wie Sie mit LimboAI und dem Demoprojekt beginnen.
LimboAI kann entweder als C++-Modul oder als gemeinsam genutzte GDExtension-Bibliothek verwendet werden. Die GDExtension-Version ist bequemer zu verwenden, weist jedoch etwas eingeschränkte Funktionen auf. Wofür Sie sich auch entscheiden, Ihr Projekt bleibt mit beiden kompatibel und Sie können jederzeit von einem zum anderen wechseln. Siehe Verwenden von GDExtension.
Navigieren Sie für die neuesten Builds zu Aktionen → Alle Builds , wählen Sie einen Build aus der Liste aus und scrollen Sie nach unten, bis Sie den Abschnitt Artefakte finden.
Informationen zu Release-Builds finden Sie unter Releases .
Laden Sie den Quellcode der Godot Engine herunter und legen Sie diese Modulquelle im Verzeichnis modules/limboai
ab.
Anweisungen zum Erstellen aus Quellcode finden Sie in der Dokumentation zur Godot Engine.
Wenn Sie planen, ein Spiel mithilfe des LimboAI-Moduls zu exportieren, müssen Sie auch Exportvorlagen erstellen.
Um Komponententests auszuführen, kompilieren Sie die Engine mit tests=yes
und führen Sie sie mit --test --tc="*[LimboAI]*"
aus.
Sie benötigen das SCons-Build-Tool und einen C++-Compiler. Siehe auch Kompilieren.
Führen Sie scons target=editor
aus, um die Plugin-Bibliothek für Ihre aktuelle Plattform zu erstellen.
SCons klont das Repository „godot-cpp/“ automatisch, wenn es nicht bereits im Verzeichnis limboai/godot-cpp
vorhanden ist.
Standardmäßig werden erstellte Ziele im Demoprojekt platziert: demo/addons/limboai/bin/
Überprüfen Sie scons -h
auf andere Optionen und Ziele.
Online-Dokumentation: stabil, aktuell
Erste Schritte
Einführung in Verhaltensbäume
Erstellen benutzerdefinierter Aufgaben in GDScript
Daten mit Blackboard teilen
Zugriff auf Knoten im Szenenbaum
Zustandsmaschinen
Verwenden von GDExtension
Verwendung von LimboAI mit C#
Klassenreferenz
Beiträge sind willkommen! Bitte öffnen Sie Probleme für Fehlerberichte, Funktionsanfragen oder Codeänderungen. Ausführliche Richtlinien zum Mitwirken an Code oder Dokumentation finden Sie auf unserer Seite Mitwirken.
Wenn Sie eine Idee für eine Verhaltensbaumaufgabe oder eine Funktion haben, die in verschiedenen Projekten nützlich sein könnte, öffnen Sie ein Problem, um es zu besprechen.
Brauchen Sie Hilfe? Wir haben einen Discord-Server: https://discord.gg/N5MGC95GpP
Ich schreibe über die LimboAI-Entwicklung auf Mastodon: https://mastodon.gamedev.place/@limbo.
Die Nutzung dieses Quellcodes unterliegt einer MIT-Lizenz, die in der LICENSE-Datei oder unter https://opensource.org/licenses/MIT zu finden ist
Das LimboAI-Logo und die Kunstressourcen des Demoprojekts sind unter der Creative Commons Attribution 4.0 International-Lizenz lizenziert, die Sie unter https://creativecommons.org/licenses/by/4.0/ finden.