Comprendre un projet Godot avant de le remanier
Vous reprenez un projet Godot après quelques semaines. Il contient trois scènes de menu, un écran de chargement et un script nommé GameManager. Vous voulez changer la destination du bouton Jouer. Avant de modifier quoi que ce soit, une question se pose : qu'est-ce qui mène où, actuellement ?
Commencez par distinguer la navigation entre scènes, les dépendances de fichiers et les événements. Ces relations décrivent des choses différentes. Les examiner séparément vous donne une carte utile pour le remaniement et une liste concrète de vérifications à effectuer ensuite.
1. Partez du point d'entrée du projet
Dans Godot, vérifiez la scène principale configurée et la liste des autoloads dans les paramètres du projet. Ouvrez cette scène et identifiez le script qui gère la première action du joueur. Si un autoload pilote la navigation, incluez-le dans votre revue : les autoloads peuvent rester disponibles d'une scène à l'autre et gérer leur changement. Voir la documentation Godot sur les autoloads (en anglais).
Notez trois éléments : la scène de départ, l'action qui permet de la quitter et la destination prévue. Une simple note comme « Jouer → écran de chargement → premier niveau » suffit à orienter votre recherche.
2. Distinguez le chargement d'un fichier du changement de scène
Un script peut charger une scène comme ressource sans y faire passer le jeu. Une scène peut aussi contenir des instances d'autres scènes. Assimiler chaque référence à un déplacement donne une image trompeuse du projet.
- Navigation entre scènes : la destination vers laquelle un script demande au jeu de se diriger.
- Dépendances des scripts : les fichiers chargés ou préchargés par un script.
- Connexions de signaux : la méthode appelée en réponse à un événement.
Supposons qu'un script de menu précharge une fenêtre de réglages et passe au premier niveau lorsque le joueur appuie sur Jouer. La fenêtre appartient à votre liste de dépendances ; le premier niveau, à votre liste de destinations. Ouvrir la fenêtre et entrer dans le niveau sont deux tests distincts.
3. Examinez les relations dans BranchPy Studio
Dans Graph View, les projets Godot disposent de vues distinctes : Project Structure, Script Dependencies et Signal / Event Map. Project Structure présente les transitions déduites des appels de scripts et les relations confirmées. Script Dependencies affiche les références load() et preload() détectées.
Repérez le script à modifier. Examinez ses destinations, puis les fichiers qu'il charge. Utilisez les emplacements source affichés pour consulter le code dans votre éditeur. Si une transition est indiquée comme déduite, vérifiez qu'elle correspond au parcours prévu avant de vous y fier.
4. Transformez la carte en une courte liste de tests
Pour cet exemple de menu, la revue peut aboutir à ces vérifications :
- Démarrer le jeu normalement et utiliser Jouer pour entrer dans le niveau prévu.
- Ouvrir et fermer les réglages sans quitter le menu.
- Revenir au menu depuis le jeu, puis appuyer de nouveau sur Jouer.
- Si Continuer choisit sa destination à partir d'une sauvegarde, tester une partie sauvegardée et une nouvelle partie.
Effectuez une modification cohérente, examinez les relations mises à jour et testez ces parcours dans Godot. Conservez cette liste avec votre modification pour qu'un autre développeur puisse la reprendre.
Que signifie une carte incomplète ?
Une destination construite à partir de variables, chargée par un système de navigation personnalisé ou choisie selon une sauvegarde peut échapper à l'analyse statique. L'absence d'une relation ne prouve pas qu'une scène est inutilisée. Une relation visible ne prouve pas que le joueur peut l'emprunter dans tous les états du jeu.
Pour les scènes réutilisables, examinez aussi les hypothèses concernant les parents et les chemins de nœuds. Le guide Godot sur l'organisation des scènes (en anglais) explique pourquoi les dépendances à l'environnement d'une scène peuvent fragiliser sa réutilisation. La carte vous aide à choisir où regarder ; confirmez ensuite le comportement dans le jeu en cours d'exécution.
La démo Godot intégrée permet d'examiner ces vues sans fournir votre propre projet. L'analyse de votre projet Godot nécessite une offre compatible avec Godot ; les capacités varient selon le moteur. L'analyse de BranchPy ne réécrit pas vos fichiers source.