Des scènes et des nœuds

Introduction

../../_images/chef.png

Imaginez une seconde que vous n'êtes plus développeur de jeux. Au lieu de cela, vous êtes un chef ! Changez votre tenue de hipster pour une toque et une veste croisée. Maintenant, au lieu de faire des jeux, vous créez de nouvelles et délicieuses recettes pour vos invités.

Alors, comment un chef crée-t-il une recette ? Les recettes sont divisées en deux sections : la première est celle des ingrédients et la seconde celle des instructions de préparation. Ainsi, n'importe qui peut suivre la recette et savourer votre magnifique création.

Faire des jeux dans Godot, c'est à peu près la même chose. L'utilisation du moteur donne l'impression d'être dans une cuisine. Dans cette cuisine, les nœuds sont comme un réfrigérateur rempli d'ingrédients frais avec lesquels cuisiner.

Il existe de nombreux types de nœuds. Certains affichent des images, d'autres jouent du son, d'autres nœuds affichent des modèles 3D, etc. Il y en a des douzaines.

Les nœuds

Mais commençons par les bases. Les nœuds sont des éléments fondamentaux pour la création d'un jeu. Comme mentionné ci-dessus, un nœud peut exécuter une variété de fonctions spécialisées. Cependant, un nœud donné a toujours les attributs suivants :

  • Il a un nom.
  • Il a des propriétés éditables.
  • Il peut recevoir une fonction de rappel à traiter à chaque trame.
  • Il peut être étendu (pour avoir plus de fonctions).
  • Il peut être ajouté à un autre nœud en tant qu'enfant.
../../_images/tree.png

Le dernier est important. Les nœuds peuvent avoir d'autres nœuds comme enfants. Lorsqu'ils sont disposés de cette façon, les nœuds deviennent un arbre.

Dans Godot, la capacité d'organiser les nœuds de cette façon crée un outil puissant pour organiser les projets. Comme les différents nœuds ont des fonctions différentes, leur combinaison permet de créer des fonctions plus complexes.

Ne vous inquiétez pas si vous ne percutez pas encore. Nous continuerons d'explorer cette question au cours des prochaines sections. Le fait le plus important à retenir pour l'instant est que les nœuds existent et peuvent être arrangés de cette façon.

Les scènes

../../_images/scene_tree_example.png

Maintenant que le concept de nœuds a été défini, l'étape logique suivante consiste à expliquer ce qu'est une scène.

Une scène est composée d'un groupe de nœuds organisés hiérarchiquement (en arborescence). En outre, une scène :

  • a toujours un seul nœud racine.
  • peut être sauvegardée sur disque et chargée à nouveau.
  • peut être instanciée (plus de détails plus tard).

Exécuter un jeu signifie exécuter une scène. Un projet peut contenir plusieurs scènes, mais pour que le jeu se lance, l'une d'entre elles doit être sélectionnée comme scène principale.

Fondamentalement, l'éditeur Godot est un éditeur de scènes. Il dispose de nombreux outils pour éditer des scènes 2D et 3D ainsi que des interfaces utilisateur, mais l'éditeur est basé sur le concept d'édition d'une scène et des nœuds qui la composent.

Éditeur

Ouvrez le projet créé dans Introduction à l'éditeur de Godot, ou créez en un nouveau. L'éditeur de Godot s'ouvrira :

../../_images/empty_editor.png

Comme mentionné précédemment, fabriquer des jeux dans Godot, c'est comme être dans une cuisine : ouvrons le réfrigérateur et ajoutons de nouveaux nœuds au projet. Nous commencerons par un message "Hello World!" que nous afficherons à l'écran.

Pour cela, il faut ajouter un nœud Label. Cliquez sur le bouton "Ajouter un nœud enfant" en haut à gauche du panneau scène (l'icône représente un symbole plus). Ce bouton est la méthode principale pour ajouter un nœud à une scène, et il ajoutera toujours le nœud choisi en tant qu'enfant du nœud actuellement sélectionné (ou, dans une scène vide, en tant que nœud "racine").

Note

In an empty scene (without root node), the scene dock shows several options to quickly add a root node to the scene. "2D Scene" adds a Node2D node, "3D Scene" adds a Spatial node, "User Interface" adds a Control node, and "Other Node" which lets you select any node (so it is equivalent to pressing the "Add Child Node" button). You can also press the star-shaped icon to toggle the display of your favorited nodes.

Notez que ces préréglages sont là par commodité et ne sont pas imposés pour les différents types de scènes. Toute les scène 3D n'ont pas besoin d'un nœud Spatial en tant que nœud racine, comme toute les scènes Interface utilisateur ou 2D n'ont pas besoin d'un nœud Control ou Node2D en tant que nœud racine.

Now, to add a label node to this scene you can click on the Other Node button or the Add Node button at the top. In scenes that aren't empty you use the add node button to create every child node.

../../_images/newnode_button.png

Cela ouvrira la boîte de dialogue Créer un nœud, montrant la longue liste des nœuds qui peuvent être créés :

../../_images/node_classes.png

Sélectionnez d'abord le nœud "Label". La recherche est probablement le moyen le plus rapide :

../../_images/node_search_label.png

Et enfin, créez le Label ! Il se passe beaucoup de choses lorsque vous appuyez sur Créer :

../../_images/editor_with_label.png

Tout d'abord, la scène passe dans l'éditeur 2D (parce que Label est un type de nœud 2D), et le Label apparaît, sélectionné, dans le coin supérieur gauche de la fenêtre.

Le nœud apparaît dans l'éditeur d'arbre de scène dans le dock Scène, et les propriétés du label apparaissent dans le dock Inspecteur.

L'étape suivante sera de modifier la propriété "Text" du nœud Label. Changeons cela en "Hello, World!" :

../../_images/hw.png

Ok, tout est prêt pour lancer la scène ! Appuyez sur le bouton Lancer la scène dans la barre supérieure (ou appuyez sur F6) :

../../_images/playscene.png

Eeeeet... Oups.

../../_images/neversaved.png

Les scènes doivent être sauvegardées pour être exécutées, alors enregistrez la scène sous quelque chose comme le nom Hello.tscn dans Scène -> Enregistrer :

../../_images/save_scene.png

Et voilà quand quelque chose de drôle arrive. La boîte de dialogue de fichier est une boîte de dialogue spéciale, et vous permet seulement d'enregistrer à l'intérieur du projet. La racine du projet est res:// qui signifie "chemin des ressources". Cela signifie que les fichiers ne peuvent être sauvegardés qu'à l'intérieur du projet. Pour l'avenir, lorsque vous effectuez des opérations de fichiers dans Godot, rappelez-vous que res:// est le chemin des ressources, et peu importe la plateforme ou l'emplacement d'installation, c'est le moyen de localiser où se trouvent les fichiers de ressources à l'intérieur du jeu.

Après avoir sauvegardé la scène et appuyé de nouveau sur Lancer la scène, la démo "Hello, World!" devrait enfin s'exécuter :

../../_images/helloworld.png

Ça marche !

Note

Si jamais cela n'a pas fonctionné et que vous avez au moins un écran compatible hiDPI, alors vous devrez activer l'option HiDPI dans Godot Engine. Pour se faire, allez dans Projet → Paramètres du projet → Display → Window puis cochez Allow Hidpi dans la catégorie Dpi.

Configurer le projet

Ok, il est temps de configurer le projet. Pour l'instant, la seule façon d'exécuter quelque chose est d'exécuter la scène actuelle. Les projets, cependant, peuvent avoir plusieurs scènes, de sorte que l'une d'entre elles doit être réglée comme scène principale. C'est la scène qui sera chargée à chaque fois que le projet est exécuté.

Ces paramètres sont tous stockés dans un fichier project.godot, qui est un fichier texte en clair au format win.ini (pour faciliter l'édition). Il y a des douzaines de paramètres que vous pouvez modifier dans ce fichier pour modifier la façon dont un projet s'exécute. Pour simplifier ce processus, Godot fournit une boîte de dialogue de paramétrage du projet, qui agit comme une sorte de frontend pour éditer un fichier project.godot.

Pour accéder à cette boîte de dialogue, sélectionnez Projet -> Paramètres du projet. Essayez ceci maintenant.

Une fois la fenêtre ouverte, sélectionnons une scène principale. Localisez la propriété Application/Run/Main Scene et cliquez dessus pour sélectionner 'hello.tscn'.

../../_images/main_scene.png

Maintenant, avec ce changement, lorsque vous appuyez sur le bouton Jouer (ou F5), cette scène sera exécutée, quelle que soit la scène en cours d'édition.

La boîte de dialogue des paramètres du projet offre de nombreuses options qui peuvent être sauvegardées dans un fichier project.godot et affiche leurs valeurs par défaut. Si vous modifiez une valeur, une case est cochée à gauche de son nom. Cela signifie que la propriété sera sauvegardée dans le fichier project.godot et mémorisée.

Comme note complémentaire, il est également possible d'ajouter des options de configuration personnalisées et de les lire au moment de l'exécution en utilisant le singleton ProjectSettings.

À suivre...

Ce tutoriel parle "des scènes et des nœuds", mais jusqu'à présent il n'y a eu qu'une seule scène et qu'un seul nœud ! Ne vous inquiétez pas, le prochain tutoriel s'étendra sur ce sujet...