Sites


Utiliser Godot Game Engine 3.0

Définir les scènes

Notre jeu sera basé sur des scènes. Nous avons déjà décrit les avantages des scènes dans le chapitre Structurer le jeu. Nous pouvons résumer le but du système de scène avec ces

caractéristiques :

  • Encapsulation : une scène contiendra une fonctionnalité ou un composant du jeu. Tous les comportements spécifiques à cette fonctionnalité seront contenus dans cette scène.

  • Réutilisation : Les scènes sont instanciées dans d’autres scènes pour contribuer à une bonne optimisation et à de meilleurs délais de production.

  • Configurable : Les scènes peuvent avoir différents paramètres qui sont uniques pour chaque instance et qui affectes leur apparence et leur comportement.

  • Simplifie le travail d’équipe : Les scènes peuvent être modifiées par différents membres de l’équipe pour leur permettre d’y intégrer leur travail.

Sur ces bases, nous allons créer une scène pour chaque élément dont notre jeu aura besoin :

  • Une scène pour le background (arrière-plan),

  • Une scène pour le joueur,

  • Une scène pour notre obstacle,

  • Et une scène pour (les gouverner tous) pour les mélanger tous.

Créer une scène

Créons notre première scène.

  1. Cliquez sur Scène > Nouvelle scène dans le menu. L’éditeur n’affiche rien tant que la scène reste vide. En fait, si on essaye de sauvegarder maintenant, Godot nous informe qu’il est impossible de sauvegarder une scène sans arborescence racine dans l’éditeur de Node. Ajoutons-y donc des éléments.

  2. Dans l’éditeur de scène, cliquez sur Ajouter un nouveau Node (/enfant) ou utilisez le raccourcis clavier ctrl + A. Le menu créé un nouveau Node apparait.

  3. La liste des types de Nodes prédéfinis est plutôt longue, nous allons donc utiliser L’espace de recherche pour trouver celui qui nous intéresse. Ecrivons Node2D, c’est un type de Node basique pour les jeux en 2D.

  4. Parmi les résultats affichés, sélectionnez celui dont vous avez besoin et cliquez sur Créer.

  5. Vous pouvez maintenant sauvegarder la scène via le menu Scène > Sauvegarder la scène sous… Sauvegardons la dans le dossier Scene que nous venons de créer.
    Nommons la scene1.tscn ou Level.tscn.
    Enregistrer une scène dans Godot

  6. Testez éventuellement la scène en cliquant sur le bouton lancer la scène actuellement en cours d’édition en haut de l’éditeur  ou utilisez le raccourcis clavier F6.

Le Node2D est maintenant ajouté à la scène et apparait à la fois dans l’éditeur et dans l’éditeur de scène.

Les scènes Peuvent être sauvegardées avec les extensions .tscn(lisible pour tout le monde via un éditeur de texte), .scn (Binaire) et .res. Gardez à l’esprit que les fichier .tscn sont plus légers et rapide, ils donnent la possibilité d’être lu par un humain et offre un meilleur contrôle des versions. Lors de l’importation, les fichier .tscn son compilés en binaires .scn stockés dans le dossier .import.

Définir la scène principale

Comme nous l’avons dit, le jeu sera composé de nombreuses scènes. Nous avons donc besoin de définir la scène avec laquelle nous commencerons.

  1. Allez dans les réglages du projet (Projet > Paramètres sur projet)

  2. Dans la catégorie Général > Application > Run, sélectionnez le fichier de la scène de votre choix en cliquant sur l’icône du dossier.

  3. Vous pouvez maintenant lancer votre jeu en cliquant sur le bouton Lancer le projet en haut de l’éditeur. Si vous aviez cliqué sur ce bouton avant de définir la scène, le logiciel aurait ouvert un panneau vous proposant de sélectionner la scène principale de votre projet.

La chauve-souris

Elle est le personnage principal de la scène. Elle va avoir un Sprite (ou d’autres éléments visuels), une Caméra qui la suit et une zone de collision. Lors de la création de la scène, nous gardons à l’esprit les points suivants :

  • La chauve-souris aura peut-être certains paramètres qui permettront de modifier le Gameplay : citons par exemple la vitesse, la gravité, la puissance du saut induit par l’action du joueur. Nous devons rendre ces réglages facilement modifiables pour laisser le Game Designer trouver le meilleur compromis et les tester facilement dans le jeu.

  • La chauve-souris devra pouvoir entrer en collision avec d’autres objets et pour cela, nous aurons besoin d’une zone de collision.

  • Nous aurons besoin d’animation pour les différents événements de la vie de notre personnage. Nous aurons besoin que ces animations interagissent avec un script, le cas échéant.

Avec ses informations en tête, nous avons une spécification technique que nous pouvons fournir à l’équipe pour cette scène :

  • Il doit y avoir un Node Area2D parent d’un Node CollisionShape2D. Ces deux Nodes organisés de la sorte nous permettent de détecter une collision avec d’autres Area2D.

  • Il doit y avoir un Node AnimationPlayer nommé animation, ainsi qu’une animation nommée fly.

  • Il doit y avoir un Node Camera2D qui suis la chauve-souris ; attribuons 0 à la propriété Limit > Bottom pour que la camera ne suive pas le personnage dans sa chute et -200 > Top pour ne pas qu’elle le suive en hauteur. En bref elle ne suivras le personnage quand dans ses déplacements horizontaux.

 

Nous avons ajouté tout ce qu’il faut dans la scène pour qu’elle fonctionne, pour le reste, c’est à l’équipe de s’en charger pour en faire quelque chose de bien en ajoutant des Nodes de différents types.

UI (interface)

La scène de l’UI montre les informations sur le jeu comme le score, les vies, les caractéristiques, etc. Dans notre cas, nous n’avons qu’un Node Label qui affiche le score actuel. Le code servira donc à appeler la Label et à changer ses valeurs.

Dans ce cas, nous utilisons un Node CanvasLayer en tant que racine et lui ajoutons un Label appelé points en tant qu’enfant. Utiliser un CanvasLayer au lieu d’un Node de base nous permet de définir librement la position z de l’interface graphique. L’interface est censée être placée au point 0, mais nous aurons aussi un fond en parallaxe. Définissions donc le calque sur 2 pour que l’interface reste toujours au premier plan.

Les obstacles

La scène des obstacles apparaît dans le niveau principal. Leur scène contient une zones de dégât. Cette scène est très importante pour le Game Designer car elle comporte les paramètres de base de la difficulté. Pour vous assurer d’offrir aux Game Designer toutes les options dont ils ont besoin pour pouvoir personnaliser suffisamment l’expérience. Laissez-les vous surprendre !

Dans notre exemple, la scène des obstacles comporte les éléments suivants :

  • Sa propre zone de dégât,

  • Son Sprite.

Maintenant que nous avons fait notre obstacle, nous allons pouvoir l’instancier dans notre niveau pour les faire apparaître où nous le voulons.

 

La scène principale

La scène principale regroupe toutes les instances des autres scènes. Cette scène aura également la possibilité de notifier les événements qui se produisent pendant le jeu (les collisions entre les objets, custom évent, etc.). Il y a plusieurs manières pour structurer votre jeu et votre communication entre les éléments du jeu. Les objets du jeu peuvent s’envoyer des messages entre eux et lancer des évènements depuis la scène principale. Ils peuvent également diffuser leur évènement par le billai des signaux auxquels les objets sont connectés ou bien envoyer des messages aux groupes. C’est à vous de décider, mais gardez à l’esprit que le Level Designer aura besoin d’un maximum de liberté pour modifier les objets dans le niveau.

Enfin, nous allons ajouter un Node ParallaxBackground (avec 1 :1 de dimension).

  1. Ajoutez un Node enfant ParallaxLayer.

  2. Définissez la propriété Motion > Mirroring à la taille de votre Sprite.

  3. Ajoutez un Node enfant Sprite.

  4. Définissez l’image de votre Background comme propriété de Texture

Il y a une erreur de communication avec le serveur Booktype. Nous ne savons pas actuellement où est le problème.

Vous devriez rafraîchir la page.