L’instanciation (suite)

Récapitulatif

L’instanciation a de nombreuses utilisations pratiques. En un coup d’œil, avec l’instanciation vous avez :

  • La possibilité de subdiviser les scènes et de les rendre plus faciles à gérer.
  • Un outil pour gérer et éditer plusieurs instances de nœud à la fois.
  • Une façon d’organiser et d’intégrer des flux de jeu complexes ou même des interfaces utilisateur (dans Godot, les éléments d’interface utilisateur sont aussi des nœuds).

Langage de conception

Mais la plus grande force qui vient avec l’instanciation des scènes est qu’elle fonctionne comme un excellent langage de conception. C’est à peu près ce qui distingue Godot de tous les autres moteurs. Godot a été conçu dès le départ autour de ce concept.

Lorsque vous créez des jeux avec Godot, l’approche recommandée est de rejeter la plupart des modèles de conception courants, tels que les diagrammes MVC ou Entity-Relationship, et de penser plutôt à vos scènes d’une manière plus naturelle. Commencez par imaginer les éléments visibles dans votre jeu, ceux qui peuvent être nommés non seulement par un programmeur, mais par n’importe qui.

Par exemple, voici comment imaginer un simple jeu de tir :

../../_images/shooter_instancing.png

Vous pouvez créer un diagramme comme celui-ci pour presque tous les types de jeux. Notez les parties du jeu que vous pouvez visualiser, puis ajoutez des flèches pour représenter la possession d’un composant par un autre.

Une fois que vous avez un diagramme comme celui-ci, le processus recommandé pour créer un jeu est de créer une scène pour chaque élément répertorié dans le diagramme. Vous utiliserez l’instanciation (soit par code ou directement dans l’éditeur) pour les relations de possession.

Dans la programmation de jeux vidéos (ou de logiciels en général), une bonne partie du temps est consacrée à concevoir une architecture et à ajouter les composants du jeu dans cette architecture. La conception basée sur des scènes remplace cette approche et rend le développement plus rapide et plus simple, ce qui vous permet de vous concentrer sur la logique du jeu. Comme la plupart des composants du jeu correspondent directement à une scène, l’utilisation d’un design basé sur l’instanciation de la scène signifie que peu d’autres codes architecturaux sont nécessaires.

Jetons un coup d’œil à un exemple supplémentaire, un peu plus complexe, d’un jeu de type monde ouvert avec beaucoup de ressources et d’éléments imbriqués :

../../_images/openworld_instancing.png

Prenons par exemple l’élément « room » (chambre) du diagramme. Disons que nous commencions par celui-ci. Nous pourrions alors créer quelques variantes de la scène « room », avec différents arrangements de meubles (eux-mêmes des scènes) à l’intérieur. Plus tard nous pourrions même créer un scène « house » (maison) faisant la connexion entre les différentes scènes « room » et en créer ainsi l’intérieur.

Ensuite, nous pourrions faire une scène de citadelle, qui est faite de nombreuses maisons instanciées. Ensuite, nous pourrions commencer à travailler sur le terrain de la carte du monde, en y ajoutant la citadelle.

Plus tard, nous pourrions créer des scènes représentant des gardes (et d’autres PNJs) et les ajouter à la citadelle. En conséquence, ils seraient indirectement ajoutés à l’ensemble du monde du jeu.

Avec Godot, il est facile d’itérer sur votre jeu comme ceci, car tout ce que vous avez à faire est de créer et d’instancier plus de scènes. De plus, l’interface utilisateur de l’éditeur est conçue pour être conviviale pour les programmeurs et les non-programmeurs. Un processus typique de développement d’équipe peut impliquer des artistes 2D ou 3D, des concepteurs de niveaux, des concepteurs de jeux et des animateurs, tous travaillant avec l’interface de l’éditeur.

Surcharge d’informations !

Beaucoup d’informations générales viennent de vous être données en même temps. Cependant, la vocation première de ce tutoriel était de vous faire prendre conscience de la manière dont les scènes et l’instanciation sont utilisées dans de vrais projets.

Tout ce dont il est question ici deviendra une seconde nature pour vous une fois que vous commencerez à créer des jeux et à mettre ces concepts en pratique. Pour l’instant, ne vous en faites pas trop, et passez au prochain tutoriel !