Déboguer les jeux générés par l'IA
Updated 2026-09-05
Trouvez la première frontière qui échoue, donnez à l'agent un symptôme reproductible et retestez la même action du joueur. Commencez avec le moteur et le build que vous exécutez réellement.
Classez l'échec avant de demander une correction
Identifiez l'étape la plus précoce qui échoue : découverte du projet, import, analyse ou compilation, démarrage de la scène, entrée du joueur, état du gameplay, export ou lancement cible. Les symptômes ultérieurs peuvent être les conséquences de ce premier échec. Gardez ensemble la version du moteur, la révision du projet, la cible et la reproduction exacte.
Par exemple, une scène qui ne démarre jamais ne peut pas vous dire si son bouton de redémarrage fonctionne. Un navigateur qui ne peut pas récupérer le paquet du jeu ne peut pas tester le contrôleur. Orientez l'erreur vers la bonne frontière avant de modifier le code ; une boucle de réparation n'accumulera ainsi pas des patches sans rapport tandis que le prérequis original reste cassé.
| Symptôme | Inspecter d'abord | Résultat du nouveau test |
|---|---|---|
| Le projet ne s'ouvre pas | Chemin, version, dépendances | Le projet prévu se charge |
| Scène vide | Erreurs de démarrage, scène, caméra, visibilité | Le contenu prévu apparaît |
| L'entrée n'a aucun effet | Focus, mapping de l'action, état, handlers | L'action modifie l'état du jeu |
| L'export échoue | Preset ou prérequis de la cible | L'artefact est créé |
| Le build échoue uniquement sur la cible | Ressources empaquetées et journaux de plateforme | La cible termine la même boucle |
Capturez la première erreur significative du moteur
Dans Godot, utilisez le panneau de débogage et la sortie runtime pertinente. Dans Unity, inspectez séparément les erreurs de compilation et d'exécution et attendez que l'éditeur soit prêt avant d'interpréter les résultats du mode jeu. Conservez la pile ou l'emplacement qui identifie le script défaillant et l'opération qui l'a déclenché.
Envoyez à l'agent un extrait ciblé avec le contexte de scène ou d'objet pertinent. Évitez un journal géant et indifférencié qui masque la première erreur, mais gardez l'enregistrement complet localement pour une inspection ultérieure. Masquez les identifiants et les données personnelles. Un rapport utile indique ce que le joueur a fait, ce qui devait arriver et ce que le moteur a réellement signalé.
Réduisez la reproduction sans modifier l'exigence
Partez d'un état de projet récupérable et isolez la plus petite scène ou action qui présente encore le défaut. Gardez le contrôleur, la règle de collision ou la frontière de sauvegarde réels impliqués dans le problème. Supprimer entièrement le système défaillant peut produire une exécution propre tout en faisant disparaître le comportement à corriger.
Le brief ci-dessous est un modèle de diagnostic original. Remplissez-le avec des détails observés au lieu de demander au modèle de supposer une cause. Exigez une explication proposée et une modification étroitement limitée. Une fois le test terminé, rejoignez le parcours joueur complet afin que la réparation locale ne masque pas une transition de scène cassée.
Project revision: <record actual revision>
Engine and target: <record actual environment>
Steps: launch -> start round -> perform the failing action
Expected state: <specific result>
Observed state: <specific result>
First engine error: <relevant error and location>
Inspect the referenced scene and script before editing.
Propose one cause, make a scoped fix, then repeat these steps.
Preserve the required behavior and report any remaining failure.Étudiez un écran vide par couches
Déterminez d'abord si le moteur a démarré et si la scène prévue s'est chargée. Inspectez ensuite la sélection de la caméra, les dimensions du viewport, la visibilité et la position des objets ainsi que tout overlay qui recouvre la scène. Utilisez ensemble l'état du moteur et une capture réelle : une image seule peut ne pas révéler que la scène est en pause, hors caméra ou vide.
Appliquez une entrée et observez si l'état change même lorsque rien n'apparaît. Si la position change mais pas l'image, concentrez-vous sur le rendu ou les références de scène. Si rien ne change, examinez le démarrage et les entrées avant de modifier l'art. Reliez chaque hypothèse à une observation afin que l'agent ne réécrive pas inutilement les deux systèmes.
Suivez l'entrée à travers la transition de gameplay
Suivez l'action du focus et du mapping jusqu'à son handler, puis jusqu'à l'état qu'elle doit modifier. Vérifiez l'état de pause et l'interception par l'interface avant d'accuser les calculs de déplacement. Un échec de redémarrage peut venir d'un handler manquant, d'une référence de scène obsolète ou d'un état jamais réinitialisé.
Après la réparation, testez l'action depuis plusieurs états pertinents : premier lancement, après une victoire et après une défaite lorsque cela s'applique. Cherchez les handlers dupliqués ou les objets obsolètes qui n'apparaissent qu'après plusieurs manches. Un petit miniflow complet peut localiser ces défauts de cycle de vie plus efficacement que des tests répétés du bouton isolé.
Séparez le chargement du navigateur de la logique du jeu
Pour un export web Godot, inspectez les panneaux réseau et console du navigateur avant de modifier le code de gameplay. Confirmez que le HTML, le JavaScript, le WebAssembly et le paquet du jeu exportés se chargent depuis l'emplacement prévu. Comparez les paramètres d'hébergement à la documentation officielle de l'export web, y compris les exigences de la configuration de thread choisie.
Gardez cohérents les noms des fichiers compagnons exportés et testez l'artefact plutôt qu'un mélange de fichiers anciens et nouveaux. Si le mauvais projet apparaît, inspectez le cache du service worker dans le navigateur de test. Exercez ensuite l'entrée et vérifiez le contenu en mouvement. Un canvas non vide est un contrôle initial du rendu, et non une preuve que la boucle de jeu fonctionne.
Contrôlez les échecs propres à l'export sur la cible
Lorsque l'éditeur fonctionne mais que le build distribué échoue, comparez la sélection de la scène de démarrage, les ressources incluses, la configuration et les journaux de la cible. Conservez le hash exact de l'artefact afin qu'un ré-export ultérieur n'invalide pas l'enregistrement de reproduction. Testez depuis un état de départ propre avant de vous fier aux sauvegardes existantes ou aux caches de l'éditeur.
Ne modifiez pas la mécanique centrale pour résoudre un fichier empaqueté manquant. Corrigez la frontière de packaging et rejouez le même parcours d'acceptation dans le build cible. Pour les artefacts desktop, utilisez le véritable système d'exploitation ; pour les artefacts navigateur, utilisez le navigateur et l'hébergement prévus. Un export croisé seul n'établit pas le comportement cible.
Clôturez une réparation avec un résultat avant-après
Conservez la reproduction en échec, le diff délimité et l'action répétée qui produit désormais l'état attendu. Ajoutez un contrôle de régression à la frontière qui a causé le défaut, puis rejouez la boucle de jeu environnante. Enregistrez les corrections manuelles et les requêtes consommées par les réparations infructueuses.
Les exemples ici sont des procédures de diagnostic, et non un cas publié d'échec et de correction. Utilisez-les pour créer un rapport concret depuis votre projet. Lorsque le même symptôme persiste après des propositions répétées, arrêtez la boucle automatique et réunissez l'observation manquante au lieu d'élargir la réécriture sans nouvelle preuve.
Questions fréquentes
L'agent dit que le jeu est corrigé, mais l'écran est vide. Que faire ?
Reproduisez le symptôme et inspectez les erreurs de démarrage, la scène active, la caméra et la réponse aux entrées. Le message d'achèvement n'est pas une observation runtime.
Dois-je régénérer tout le projet ?
Isolez d'abord la première frontière défaillante et préservez l'état fonctionnel. Une reproduction ciblée est généralement plus facile à relire qu'un remplacement qui modifie de nombreux systèmes.
Pourquoi le navigateur affiche-t-il un jeu plus ancien ?
Vérifiez l'identité de l'artefact, les fichiers servis et le cache du service worker dans le navigateur de test. Confirmez que l'export actuel est réellement chargé.
Les contrôles de script réussis prouvent-ils que le jeu est jouable ?
Ils couvrent les contrôles exécutés. Le câblage des scènes, les entrées, le rendu, les transitions d'état et la persistance exigent des preuves runtime.
Que doit contenir un rapport de bug utile ?
L'identité du projet et du moteur, la cible, les étapes, les états attendu et observé, la première erreur pertinente et la plus petite scène ou les fichiers nécessaires à la reproduction.