Introduction

Go-Bt est une bibliothèque d'Arbres de Comportement pour le langage Go, conçue pour les travailleurs en arrière-plan, l'IA de jeu, l'automatisation de tâches et la logique asynchrone.

Contexte Technique

Go-Bt utilise un modèle de multitâche coopératif, où les nœuds retournent leur état instantanément, cédant le contrôle au superviseur. Les nœuds sont sans état, et tous les états d'exécution et de mémoire temporelle vivent entièrement dans le BTContext. Chaque nœud retourne l'un des trois entiers : 1 (succès), 0 (en cours d'exécution) ou -1 (échec).

La bibliothèque fournit un ensemble minimal de nœuds de base qui peuvent être combinés pour créer tout type de flux de contrôle logique, notamment des nœuds composites (Selector, Sequence, MemSequence), des décorateurs (Inverter, Optional, Timeout, Retry, Repeat) et des feuilles (Condition, Action, Sleep).

Analyse et Implications

Go-Bt permet de créer des arbres de comportement complexes de manière élégante et concise, en utilisant les généricités de Go pour définir le type de l'état du système. La bibliothèque fournit également un Superviseur concurrent et sans panique pour exécuter l'arbre, qui tourne en arrière-plan et active la logique sans bloquer le thread principal de l'application.

Les tests temporels sont facilités par l'exposition de la fonction Now sur le BTContext, permettant de remplacer l'horloge standard par une fermeture mock pour avancer artificiellement dans le temps et déclencher les états de succès ou d'échec des nœuds Timeout ou Sleep.

Perspective

Go-Bt offre une solution élégante et efficace pour la création d'arbres de comportement dans les applications Go, en particulier pour les cas d'utilisation qui nécessitent une logique asynchrone et des tests temporels. Les développeurs peuvent surveiller les prochaines étapes de la bibliothèque, notamment l'ajout de nouveaux nœuds et la mise en œuvre de fonctionnalités avancées pour la gestion des états et des transitions.