À propos du projet

Gua est un protocole d'automatisation d'exécution pour les jeux, inspiré de Playwright. Il expose l'interface utilisateur d'un jeu en cours d'exécution sous forme d'arbre sémantique UI, permettant aux tests automatisés, aux inspecteurs et aux agents IA de localiser les contrôles par ID, rôle, texte et état plutôt que par reconnaissance d'image fragile ou coordonnées d'écran. Il prend en charge Godot 4.7 via un addon GDScript soutenu par GDExtension et Unity 6 via un package qui reflète automatiquement les contrôles UI Toolkit, uGUI et TextMeshPro sur Windows x64, Linux x64 et les builds Mono macOS Intel/Apple Silicon. Au-delà de l'automatisation de l'interface utilisateur, Gua fournit un arbre d'objets monde pour les informations sémantiques du monde du jeu, des actions de jeu sémantiques et une entrée brute optionnelle pour le gameplay, un temps virtuel déterministe via GuaClock, l'enregistrement, la comparaison visuelle et une politique d'exposition qui limite ce que les joueurs IA peuvent voir et quelles opérations d'interface utilisateur ils peuvent utiliser. Les jeux natifs peuvent se connecter via gui-mcp, tandis que Godot Web Export et les builds Unity WebGL peuvent utiliser l'adaptateur expérimental gua-webmcp natif du navigateur. Gua est distribué sous plusieurs packages NuGet : Gua.Core pour les liaisons C ABI, Gua.Testing pour les localisateurs, attentes et assertions dans les tests .NET, Gua.Testing.Godot et Gua.Testing.Unity pour les hôtes de test spécifiques aux moteurs, Gua.Runtime pour les auteurs d'adaptateurs, Gua.Testing.Visual pour la comparaison de bases PNG, Gua.Testing.Snapshots pour les bases JSON déterministes UI et World, et Gua.Testing.Recording pour les parcours utilisateur rejouables. Un Gua Inspector fournit des interfaces navigateur et bureau Windows pour inspecter l'arbre sémantique, l'état des nœuds, les captures d'écran et les journaux. Le dépôt link1345/gua-tester propose des workflows GitHub Actions réutilisables pour exécuter des tests Godot et Unity en CI.