Détectez les bugs de logique avant vos joueurs
BranchPy Studio analyse l'intégralité de votre projet Ren'Py — en résolvant chaque label, saut, appel et embranchement de menu — pour détecter transitions cassées, cibles indéfinies et problèmes de variables. Chaque résultat est rattaché à la ligne exacte, sans aucune partie de test.
L'écran Analyze dans BranchPy Studio — résultats groupés par sévérité, chacun relié à sa ligne source.
Ren'Py exécute votre script — il ne le vérifie pas d'abord
Ren'Py analyse et exécute vos scripts à l'exécution. Un jump label_casse enfoui dans une branche rarement empruntée n'est détecté que lorsqu'un joueur l'atteint réellement — parfois des mois après la sortie, signalé comme un plantage dans un avis.
BranchPy Studio effectue une analyse statique déterministe sur tout votre projet avant de lancer quoi que ce soit. Il résout chaque référence de label, suit les affectations de variables sur toutes les branches et met en évidence les problèmes à la ligne où ils surviennent — pour corriger la cause au lieu de deviner quelle partie a déclenché le plantage. L'analyse est en lecture seule : votre source n'est jamais modifiée.
Ce qu'il détecte
Cibles de saut & d'appel indéfinies
Un jump ou un call référence un label qui n'existe nulle part dans le projet — signalé comme erreur avant de planter à l'exécution.
Variable lue avant affectation
Une variable est utilisée sur une branche où elle n'a jamais été affectée — le genre de NameError qui ne surgit que sur un chemin précis.
Labels inatteignables
Des labels définis qu'aucun saut, appel ou option de menu ne peut atteindre — souvent du contenu coupé, un label renommé ou un bug structurel.
Appel sans retour
Une cible de call n'a pas d'instruction return, donc l'exécution continue au-delà du bloc appelé d'une manière que vous n'aviez pas prévue.
Chemins de branche en double
Deux choix de menu qui mènent au même label — généralement un oubli de copier-coller qui érode discrètement le sens du choix.
Temps de lecture atypiques
Des labels bien plus longs ou plus courts que la moyenne du projet — un signal rapide pour la relecture du rythme et la priorisation QA.
Des passes complémentaires, une seule analyse
Ouvrez votre projet, lancez l'analyse et examinez des résultats exploitables — chaque passe ajoute de la profondeur sans modifier vos fichiers.
Doctor
Vérifie votre environnement — chemin du moteur, version de Python, config — et signale les problèmes de configuration avant l'analyse.
Analyze
La passe de base : construit le graphe des labels, résout chaque saut et appel, suit les variables et mesure le temps de lecture.
Pilot
Parcourt chaque chemin atteignable pour faire ressortir les avertissements de variables par branche et les conditions inatteignables.
Révision
Les résultats sont groupés par sévérité et par fichier, chacun relié à sa ligne. Ils alimentent aussi Flowchart et Compare.
Comment les résultats sont signalés
Chaque résultat est trié par sévérité pour traiter d'abord les plus dangereux.
| Sévérité | Signification | Exemples |
|---|---|---|
| Erreur | Plantera à l'exécution lorsque le chemin sera atteint. | Cible de saut/appel indéfinie ; variable lue avant affectation. |
| Avertissement | Probablement un bug ou un reste — à résoudre avant la sortie. | Label inatteignable ; appel sans retour. |
| Info | Un signal à examiner — pas nécessairement une erreur. | Chemins de branche en double ; temps de lecture atypiques. |