Motor Godot suportado: 4.3 (v1.2.0+) | 4.2 (versões v1.1.x)
LimboAI é um plugin C++ de código aberto para Godot Engine 4 que fornece uma combinação de Árvores de Comportamento e Máquinas de Estado , que podem ser usadas juntas para criar comportamentos complexos de IA. Ele vem com um editor de árvore de comportamento, documentação integrada, depurador visual, extenso projeto de demonstração com tutorial e muito mais! Embora seja implementado em C++, ele oferece suporte total a GDScript para criar suas próprias tarefas e estados.
Se você gosta de usar o LimboAI, considere apoiar meus esforços com uma doação no Ko-fi? Sua contribuição me ajudará a continuar desenvolvendo e melhorando.
Árvores de Comportamento são estruturas hierárquicas poderosas usadas para modelar e controlar o comportamento dos agentes em um jogo (por exemplo, personagens, inimigos). Eles foram projetados para facilitar a criação de comportamentos ricos e altamente modulares para seus jogos. Para saber mais sobre árvores de comportamento, confira Introdução às árvores de comportamento e nosso projeto de demonstração, que inclui um tutorial.
O projeto demo fica na pasta
demo
e está disponível separadamente em Releases . Executedemo/scenes/showcase.tscn
para começar. Também inclui um tutorial que apresenta árvores de comportamento por meio de exemplos ilustrativos.
Vídeos do YouTube produzidos por vários criadores
Árvores de Comportamento (BT):
Planos Blackboard: Defina variáveis no recurso BehaviorTree e substitua seus valores no nó BTPlayer.
Editor de planos: gerencie variáveis, seus tipos de dados e dicas de propriedades.
Escopos do Blackboard: evite conflitos de nomes e habilite técnicas avançadas como o compartilhamento de dados entre vários agentes.
Parâmetros do quadro-negro: exporte um parâmetro BB, para o qual o usuário pode fornecer um valor ou vinculá-lo a uma variável do quadro-negro (pode ser usado em tarefas personalizadas).
Suporte do inspetor para especificar variáveis do quadro-negro (editor personalizado para propriedades StringName
exportadas que terminam com "_var").
Crie, edite e salve facilmente recursos BehaviorTree
no editor.
Execute recursos BehaviorTree
usando o nó BTPlayer
.
Crie comportamentos complexos combinando e aninhando tarefas em uma hierarquia.
Controle o fluxo de execução usando tarefas de composição, decorador e condição.
Crie tarefas personalizadas estendendo as classes principais: BTAction
, BTCondition
, BTDecorator
e BTComposite
.
Documentação de classe integrada.
Sistema Blackboard: Compartilhe dados perfeitamente entre tarefas usando o Blackboard
.
Use a tarefa BTSubtree
para executar uma árvore a partir de um arquivo de recurso diferente, promovendo organização e reutilização.
Depurador Visual: Inspecione a execução de qualquer BT em uma cena em execução para identificar e solucionar problemas.
Visualize BT no jogo usando o nó BehaviorTreeView
(para ferramentas personalizadas no jogo).
Monitore o desempenho da árvore com monitores de desempenho personalizados.
Máquinas de Estado Hierárquico (HSM):
Estenda a classe LimboState
para implementar a lógica de estado.
O nó LimboHSM
serve como uma máquina de estado que gerencia instâncias e transições LimboState
.
LimboHSM
é um estado em si e pode ser aninhado em outras instâncias LimboHSM
.
Baseado em eventos: As transições estão associadas a eventos e são acionadas pela máquina de estado quando o evento relevante é despachado, permitindo um melhor desacoplamento das transições da lógica de estado.
Combine máquinas de estado com árvores de comportamento usando BTState
para IA reativa avançada.
Opção de delegação: usando o vanilla LimboState
, delegue a implementação às suas funções de retorno de chamada, tornando-o perfeito para prototipagem rápida e game jams.
? Nota: A configuração e inicialização da máquina de estado requerem código; não há editor GUI.
Testado: as tarefas da árvore de comportamento e o HSM são cobertos por testes de unidade.
GDExtension: LimboAI pode ser usado como extensão. Construções de mecanismos personalizados não são necessárias.
Demonstração + Tutorial: Confira nosso extenso projeto de demonstração, que inclui uma introdução às árvores de comportamento usando exemplos.
Siga o guia de primeiros passos para saber como começar a usar o LimboAI e o projeto de demonstração.
LimboAI pode ser usado como um módulo C++ ou como uma biblioteca compartilhada GDExtension. A versão GDExtension é mais conveniente de usar, mas com recursos um tanto limitados. Seja qual for a sua escolha, seu projeto permanecerá compatível com ambos e você poderá mudar de um para outro a qualquer momento. Consulte Usando GDExtension.
Para as compilações mais recentes, navegue até Actions → All Builds , selecione uma compilação na lista e role para baixo até encontrar a seção Artefatos .
Para compilações de lançamento, verifique Releases .
Baixe o código-fonte do Godot Engine e coloque a fonte deste módulo no diretório modules/limboai
.
Consulte a documentação do Godot Engine para obter instruções sobre como construir a partir do código-fonte.
Se você planeja exportar um jogo utilizando o módulo LimboAI, também precisará criar modelos de exportação.
Para executar testes de unidade, compile o mecanismo com tests=yes
e execute-o com --test --tc="*[LimboAI]*"
.
Você precisará da ferramenta de construção SCons e de um compilador C++. Veja também Compilando.
Execute scons target=editor
para construir a biblioteca de plugins para sua plataforma atual.
SCons clonarão automaticamente o repositório godot-cpp/ se ele ainda não existir no diretório limboai/godot-cpp
.
Por padrão, os alvos construídos são colocados no projeto de demonstração: demo/addons/limboai/bin/
Verifique scons -h
para outras opções e alvos.
Documentação Online: estável, mais recente
Primeiros passos
Introdução às árvores de comportamento
Criando tarefas personalizadas em GDScript
Compartilhando dados usando o Blackboard
Acessando nós na árvore de cena
Máquinas de estado
Usando GDExtension
Usando LimboAI com C#
Referência de classe
Contribuições são bem-vindas! Abra problemas para relatórios de bugs, solicitações de recursos ou alterações de código. Para diretrizes detalhadas sobre como contribuir com código ou documentação, confira nossa página Contribuição.
Se você tiver uma ideia para uma tarefa de árvore de comportamento ou um recurso que possa ser útil em vários projetos, abra um problema para discuti-lo.
Precisar de ajuda? Temos um servidor Discord: https://discord.gg/N5MGC95GpP
Escrevo sobre o desenvolvimento do LimboAI no Mastodon: https://mastodon.gamedev.place/@limbo.
O uso deste código-fonte é regido por uma licença estilo MIT que pode ser encontrada no arquivo LICENSE ou em https://opensource.org/licenses/MIT
O logotipo LimboAI e os ativos de arte do projeto de demonstração são licenciados sob a licença Creative Commons Attribution 4.0 International, que pode ser encontrada em https://creativecommons.org/licenses/by/4.0/