Godot

De EduTech Wiki
Aller à la navigation Aller à la recherche


Cet article est en construction: un auteur est en train de le modifier.

En principe, le ou les auteurs en question devraient bientôt présenter une meilleure version.



Présentation

Logo officiel

Fiche technique

Nom du programme Godot
Dernière version 3.2.3 (17 septembre 2020)
Site web https://godotengine.org/
Auteur Juan Linietsky et Ariel Manzur
Première année de sortie 2014
Lien Github https://github.com/godotengine/godot
Liens de téléchargement Windows

Mac

Linux

Langage supporté GdScript, C++, C#, Python, Nim et D
Environnement Windows, Mac, Linux, FreeBSD, OpenBSD, Haiku
Déploiement Windows, MacOS, Linux, BSD, Haiku, iOS, Android, BlackBerry, HTML5
Langue Multilingue dont l’anglais (principal) et le français.
Licence Licence MIT
Documentation française https://docs.godotengine.org/fr/stable/

Description générale

Godot est un moteur de jeu open source permettant de créer des jeux en 2D et 3D. Son langage de programmation principal est GdScript, un langage basé sur Python et développé expressément pour Godot. Il est également possible d’utiliser un langage de programmation visuel, VisualScript, qui s’appuie sur une interface graphique. Toutefois, depuis la dernière version 3.0, Godot est compatible avec les langages C++, C#, Python, Nim et D.

Dans l'introduction de sa documentation officielle, Godot se présente de la manière suivante :

“Godot Engine est un moteur de jeu multiplateforme riche en fonctionnalités pour créer des jeux 2D et 3D à partir d'une interface unifiée. Il fournit une série d'outils usuels afin que les utilisateurs puissent se concentrer sur la création de jeux sans avoir à réinventer la roue. Les jeux peuvent être exportés en un seul clic vers un grand nombre de plateformes, incluant les principales plateformes de bureau (Linux, MacOs, Windows) ainsi que mobiles (Android, iOS) et web (HTML5). Godot est complètement libre et open source sous la très permissive licence MIT. Sans conditions liées, sans royalties, rien. Les jeux des utilisateurs sont les leurs, jusqu'à la dernière ligne de code du moteur. Le développement de Godot est totalement indépendant et piloté par sa communauté, ce qui donne la possibilité aux utilisateurs d'aider à façonner leur moteur pour le faire correspondre à leurs attentes. Il est soutenu par la fondation à but non lucratif Software Freedom Conservancy.”[1]

Godot est souvent comparé à Unity. Tout comme ce dernier, Godot possède une « assets library » permettant de charger des démos, des projets, des outils ou encore des plugins. Vous trouverez des exemples de jeux développés sur Godot dans le showcase leur site officiel.

Communauté

La communauté Godot est particulièrement active afin de soutenir tout développeur, qu’il soit novice ou expert. Il existe des communautés aussi bien en ligne que physique. Concernant les groupes d’utilisateurs, Godot en recense 12 soit : Q&A officiel, Forum officiel, Discord, Godot Contributors Chat, Facebook, Reddit, GitHub (report de bug), Twitter, Steam Community, Youtube, IRC et Matrix.

Godot organise également des évènements telle que des conférences, des workshops ou des rencontres de développeurs.

Enfin, une multitude de tutoriels existent afin d’apprendre à utiliser Godot. Un large panel est disponible allant d’un premier jeu sans aucune expérience à des tutoriels pour développeurs. La page officielle de Godot à propos des tutoriels et des ressources (angl.) vous donnera toutes les informations à ce sujet.

Alternatives

Godot est souvent comparé à Unity, autre moteur de jeu réputé dans le domaine de la programmation de jeu vidéo. La communauté web contient de nombreux d’articles et vidéos comparant ces deux moteurs de jeu, chaque développeur ayant sa préférence. Pour une comparaison des deux moteurs de jeux, le site internet GameDesignig propose un article appelé : Unity vs. Godot: Performance, Community Support, Ease of Use, & Pricing

Guide d'utilisation

Téléchargement et installation

Vous pouvez télécharger Godot gratuitement aux liens suivants : Windows, Mac, Linux. Suivez ensuite les instructions sur la page de téléchargement. Godot se télécharge et s'installe de manière classique.

Mac

Attention, sur Mac, à la première ouverture, un message d'avertissement apparait et vous ne pourrez ouvrir Godot. Vous devez aller dans les "préférences système", sous "Sécurité et confidentialité". Dans l'onglet "Général", vous devez autoriser l'ouverture de l'application en cliquant sur "Ouvrir quand même".

Windows

Deux versions vous sont proposées, soit 32 bits ou 64 bits. Afin de savoir quelle version est adaptée à votre ordinateur, vous devez répondre aux deux questions suivantes : (1) votre ordinateur a-t-il un processeur 32 ou 64 bits ? (2) Le système d’exploitation de mon ordinateur est-il en 32 ou 64 bits ? En effet, selon un post du Techsoup “a computer with a 32-bit processor can only run a 32-bit operating system and 32-bit software. A computer with the more advanced 64-bit processor can run both 64-bit and 32-bit operating systems and software. However, if a 64-bit computer has a 32-bit operating system installed, it can only run 32-bit software.”[2]

Comment savoir ?

  1. Système d’exploitation vous pouvez en savoir plus sur votre système d’exploitation grâce à la FAQ suivante de Microsoft.
  2. Processeur ouvrez les Informations Système (ou faite une recherche pour les trouver). Dans le résumé du système puis type de système, vous trouverez l’information "x86-based PC" si vous êtes en 32 bits et "x64-based PC" si vous êtes en 64 bits.

Première ouverture et gestionnaire de projets

A la première ouverture de Godot, le gestionnaire de projet s'ouvrira automatiquement. N'ayant pas de projet, vous pouvez soit annuler le message d'avertissement ou accéder à la bibliothèque de projet Godot. En cliquant sur annuler, vous resterez dans l'onglet "Projets". En cliquant sur "accéder à la bibliothèque de projet, l'onglet "Modèles" s'ouvrira automatiquement.

Voici les actions que vous pouvez faire depuis cette première fenêtre:

  1. Accéder aux projets aux aux modèles
  2. Changer la langue
  3. Scanner un dossier à la recherche de projets Godot
  4. Créer un nouveau projet
  5. Importer un projet (fichier projet.godot)
Godot ouverture.png

Interface

Une fois un projet ouvert, l'interface de l'éditeur de Godot s'ouvre. Cette interface est divisée en trois grande parties :

  1. Une première colonne à gauche (orange) permet d’avoir accès aux différents Docks, soit le Dock des scènes (haut) qui répertorie les nœuds de la scène en cours et permet d’importer des objets, ainsi que le Dock du système des fichiers (bas) qui correspond à l’organisation des fichiers, dossiers et ressources de votre projet, tels que présent sur votre ordinateur.
  2. La colonne de droite (rouge) est en lien avec le Dock des scènes. Les onglets « inspecteur » et « nœuds », permettent de paramétrer chaque élément sélectionné dans la colonne de gauche. En d’autres termes, cliquant dans la colonne de gauche sur un nœud de votre scène, l’inspecteur se déploie à droite afin de paramétrer ce nœud. L’onglet nœud permet de créer des signaux et des groupes.
  3. La zone du milieu (bleu) est la zone d’affichage. Grâce aux quatre boutons tout en haut de cette zone (bleu clair), vous pouvez choisir entre les affichages 2D, 3D, Script ou Assets. Cette zone d’affichage peut contenir différents onglets (icône +) vous permettant de naviguer entre les scènes de votre projet. Dans les modes 2D et 3D (bleu clair), une barre d’outils vous permet d’effectuer des modifications.

A cela s'ajoute un panneau en bas (vert) donnant accès aux sorties, à la console de débogage, au mixeur audio et à l'éditeur des animations. Vous pouvez agrandir ce panneau en cliquant simplement dessus. Une fenêtre plus grande s'ouvre afin d'avoir accès aux informations y relatives.

Pour finir, deux menus (de gauche à droite) permettent l'accès aux réglages Godot et aux boutons de test du projet.

Interface d'un projet Godot à son ouverture

Modification de l'interface

L'interface Godot est personnalisable. En cliquant sur les trois points verticaux (bleu), vous pouvez choisir l'emplacement des Docks. Dans la zone d’affichage, en cliquant sur les flèches disposées en carrés (jaune), vous pouvez agrandir la zone pour travailler en plein écran. Enfin, les colonnes sont redimensionnable en positionnant la souris au bord de n'importe quel panneau.

L'interface Godot permet égalemetn de travailler en mode "splitview". Dans la barre d'outil du menu 2D ou 3D, cliquer sur le bouton "Affichage" (vert) afin de visualiser les différentes possibilités pour séparer la zone d'affiche de manière horizontale ou verticale.

Interface Godot avec le panneau inférieur de sortie ouvert.

Les nœuds et les scènes

Les différents types de nœuds

Catégories et définition

Godot fonctionne avec un système de nœuds. Il existe 4 principaux catégories de nœuds :

  1. Nœuds 2D (en violet)
  2. Nœuds 3D (en rouge)
  3. Nœuds Interface Utilisateur (UI) (en vert)
  4. Autres nœuds (animation, timer, environnement, viewport, etc.)

Dans Godot, un nœuds peut-être aussi bien un objet, une image, un texte qu'un son, une animation ou un timer. Tous les nœuds ont toutefois ces éléments en communs[3] :

  • Un nom
  • Des propriétés éditables
  • Possibilité de recevoir une fonction de rappel à traiter à chaque trame
  • Possibilité d'être étendu (pour avoir plus de fonctions)
  • Possibilité d'être ajouté à un autre nœud en tant qu'enfant
  • Chaque type de nœuds se décline ensuite en une multitude de
Exemple d'un arbre de nœuds dans Godot

Organisation

Dans Godot, un projet est donc un ensemble de nœuds formant des scènes. Un nœud peut avoir différent nœuds enfants de sorte que les nœuds s'organisent en un arbre.

Dans l'exemple ci-contre, tous les nœuds sont verts. Il s'agit donc de nœuds d'UI. Le noeud parent est "End Screen". Il a comme enfant quatre nœuds: "background", "Title", "Label" et "Menu". Ce dernier noeud est à son tour le parent de deux enfants "PlayButton" et "QuitButton".

Cet arbre de nœuds forme un scène, c'est à dire un fichier .tscn dans votre Dock du système de fichiers. Il peut se nommer d'après le premier nœud parent ou avoir un nom à part entière. A savoir qu'une scène ne peut avoir qu'un seul nœud racine. Dans l'exemple ci-contre, il s'agit de EndScreen.

Type de nœuds (ou classe)

Chaque nœud fait partie d'une catégorie (2D, 3D, UI ou Autre) mais possède également un type particulier. Pour être plus juste, il faudrait ici utiliser le mot classe afin de faire référence au langage de programmation GDScript. Chaque nœuds a un type, une classe particulière avec un certain nombre de paramètres et de méthodes qui lui son propre. Chaque type de nœud est reconnaissable grâce à son symbole.

Dans l'exemple ci-contre:

  • EndScreen est un nœud "Control"
  • background est un nœud "TextureRect"
  • Title et Label sont des nœuds "Label"
  • Menu est un noeud "VBoxContainer"
  • PlayButton et Quitbutton sont des noeuds "Button"

En ajoutant un nœud à une scène (symbole "+" ou cmd + A sur Mac), il est obligatoire de choisir son type, sa classe. Cela définira les paramètre ainsi que les méthodes (le code) qui pourront être utilisées. Un nœud "Label" par exemple contient du texte éditable et paramétrable (couleur, police, espacement, etc). Un nœud "Button" contient lui aussi du texte éditable et paramétrable mais également des paramètres de "Hover" ou "Pressed" permettant de styliser ce type de nœud de manière différente d'un label.

Lorsque vous ajoutez un nœud à une scène, une barre de recherche (bleu) vous permet d'effectuer une recherche rapide. De plus, en cliquant sur le nœud désiré, vous obtenez des informations supplémentaires à son sujet dans la description (orange).

Ajout d'un nœud

Nœuds fréquemment utilisés

Le tableau ci-dessous résume des nœuds fréquemment utilisés:

Nœuds fréquemment utilisés
Catégorie Type (Classe) Utilisation
UI ColorRect Rectangle de couleurs pour faire un fond d'écran par exemple.
UI Label Espace où inscrire du texte
UI Button Boutton. Il existe différent type de bouton comme des CheckBox, TextureButton, LinkButton, etc.
UI HBoxContainer

VBoxContainer

GridContainer

Conteneurs permettant d’aligner les nœuds enfants de manière horizontale, verticale ou en grille.
UI Videoplayer Affichage des vidéos
Nœuds 2D Sprite Image 2D
Nœuds 2D AnimatedSprite Collection d'images pouvant être animées.
Nœuds 2D CollisionPolygon2D

CollisionShape2D

Formes 2D "invisible" permettant de définir des bords pour des collisions.
Nœuds 2D Tilemap Carte de tuile. Elles permettent de créer des cartes, des mondes basées sur des tuiles d'un TileSet (textures, formes, etc.).
Nœuds 2D VisibilityNotifier2D Permet de détecter lorsque le nœud est approximativement proche de l'écran. Est utilisé par exemple sur un ennemi, pour faire débuter son mouvement à l'approche du joueur. Ainsi, les ennemis ne bougent en permanence, ce qu pourrait diminuer les performance du jeu.
Nœuds 3D MeshInstance Permet de créer des formes en 3D (cube, sphère, cylindre, etc.).
Nœuds 3D KinematicBody Utilisé pour créer des éléments pouvant être contrôlé par le joueur comme le personnage par exemple.
Nœuds 3D RigidBody Utilisé pour créer des éléments qui répondent à la physique.
Nœuds 3D Camera Il existe différent type de caméra dont des caméras qui incluent les collisions ou qui se dirigent vers d'autres nœuds.
Nœuds 3D GridMap Idem à Tilemap mais pour le 3D. Quadrillage qui permet de créer des cartes, des mondes basée sur des sets.
Autre AnimationPlayer Permet de créer des animations en modifiants les paramètres du noeud parents dans l'inspecteur.
Autre AudioStreamPlayer Audio pour l'entier du jeu.
Autre WordEnvironment Permet de définir des propriétés d'environnement pour la scène (couleur du ciel, de l'arrière plan, lumière, ombres, etc.)

Instanciation

Tout stocker dans une seule scène peut fonctionner pour les petits projets. Toutefois, lorsque ceux-ci deviennent trop complexe, instancier les scènes est nécessaire. Instancier une scène signifie "mettre une scène dans une scène". La scène instanciée est alors un nouveau nœud de la scène.

Dans un jeu de type Mario par exemple, créer l'entier du jeu dans une seule scène deviendrait illisible. Godot permet alors de créer une scène "joueur", une scène "ennemis et une scène "pièce" qui seront ensuite instanciée dans chaque niveau. En changeant la scène "joueur", tous les joueurs de tous les niveaux seront ainsi modifiés.

Symboles

Langage de programmation

Godot offre la possibilité de travailler avec différents langage de programmation. Le plus courant est de travailler avec GdScript ou VisualScript (langage de type blocs), des langages utilisés et créés spécialement pour Godot et directement intégré dans l'éditeur. Toutefois, depuis la dernière version de Godot 3.2, il est également possible de programmer en C# ou C++ en utilisant environnement différent (Visual Studio par exemple).

GdScript

Dans la documentation officielle, Godot décrit GDScript comme "un langage de haut niveau à typage dynamique utilisé pour créer du contenu. Il utilise une syntaxe similaire au langage Python (les blocs sont identifiés par l'indentation et une grande partie des mots clés sont similaires)" [4].

Afin de découvrir le langage de GDScript, cette vidéo en anglais de GDQuest de 45 minutes propose d'aborder les bases du langage. Vous y trouverez des explications à propos des éléments suivants:

  • Variables
  • Constantes
  • Type de variables / constantes
  • Conventions d’écriture (majusucle, minuscule, etc.)
  • Opération and opérateur (+, -, *, /, %, <, >, etc.)
  • Valéeurs booléenne
  • Conditions
  • Listes (Array)
  • Loop
  • Objets, propriétés, méthodes et classes

La plateforme Skillshare propose également un cours (gratuit si vous vous inscrivez pour le plan d'essai) abordant globalement les mêmes thématiques tout en proposant des exercices afin de mettre en pratique les apprentissages. Enfin, la documentation de Godot propose un apport spécifique sur GDScript qui abordent ce langage en proposant de s'attarder directement sur des exemples de syntaxe.

Exemple de code en GDScript

Exemple tiré du cours skillshare, vidéo 18 à 21

extends Control

var first_name = "Maëlle "
var second_name = "Anabelle "
var last_name = "Schmidt"
var age = 31

# Vidéo 18 - 19 - 20 - 21

func _ready():
	if age == 31 and first_name == "Maëlle " and second_name == "Anabelle ":
		$TextEdit.text = "Tu es " + first_name + second_name + last_name + "."# if age && first_name && second_name are true, write...
	elif age < 0 or age >= 120:
		$TextEdit.text = "Tu te trompes sur ton age. Ou tu n'es pas humain... " # if the age is lower than 0 or bigger or equal to 120, write... 
	elif age >= 18: 
		$TextEdit.text = "Tu es majeur-e." # if the age is greater or equal to 18, write ... 
	elif age >= 16 && age < 18:
		$TextEdit.text = "Tu es bientôt majeur-e." # if the age is between 16 and 18, write ...
	else:
		$TextEdit.text = "Tu es mineur-e." # if the age is something else, write...

Raccourcis

Comme tout programme, Godot possède des raccourcis afin de faciliter mes manipulation.

Mac

Voici une liste des raccourcis fréquemment utilisés:

Général
Action Raccourci
Ouvrir une scène cmd + O
Enregistrer la scène cmd + S
Fermer la scène shift + cmd + W
Ajouter un noeud cmd + A
Annuler cmd + Z
Refaire shift + cmd + Z
Jouer le jeu cmd + B
Jouer la scène cmd + R
Quitter cmd + Q
Quitter vers la zone de projet shift + cmd + Q
Navigation dans la zone d'affichage
Action Raccourci
Accès zone affichage 2D alt + 1
Accès zone affichage 3D alt + 2
Accès zone affichage Script alt + 3
Barre d'outil - Sélection (flèche) q
Barre d'outil - Mode déplacement w
Barre d'outil - Mode rotation e
Barre d'outil - Mode mise à l'échelle r
Documentation sur la méthode

(zone script uniquement)

cmd + "Clic sur la méthode"

- voir https://www.youtube.com/watch?v=VeCrE-ge8xM&list=PLda3VoSoc_TSBBOBYwcmlamF1UrjVtccZ&index=1 pour les raccourcis

Exportations

Liens

Officiels

Tutoriels

Sur internet, vous trouverez une multitude de tutoriels pour apprendre à utiliser Godot. Tout d'abord, la documentation officielle existe aussi bien en français qu'en anglais. Vous y trouverez des tutoriels écrits de qualité permettant de prendre en main le moteur de jeu. De plus, la page Tutoriel Vidéo liste différentes ressources de tutoriels vidéo disponibles sur la toile. Parmi ces tutoriels vidéo se trouve ceux de GD Quest qui propose notamment un "learning path beginner". Ce chemin d'apprentissage permet de partir de 0 et propose aussi bien des tutoriels généraux sur la création de jeux et sur le langage de programmation (GD Script) que des tutoriels permettant de créer ses premiers jeux 2D et 3D.

Chemin d'apprentissage proposé

Dans le cadre de crédits libres du Master MALTT de l'Université de Genève, un chemin d'apprentissage a été testé. Celui-correspond à environ 3 crédits de travail, selon les connaissances préalables de chacun. Il a été suivi début 2021 par Rachel Egg. Les différents projets sont codés et commentés de manière personnelle, dans un but d'apprentissage et de réinvestissement futur.

Inspiré du learning path beginner de GD Quest, les différents tutoriels suivis ont été les suivants. Pour ouvrir les projets Godot, il est nécessaire de dezipper le fichier puis d'ouvrir le fichier avec l'extension project.godot. Evidemment, il est indispensable d'avoir le moteur de jeu installé sur sa machine (c.f. téléchargement et installation).

Titre Temps Type Auteurs Projet Godot Programme (MAC) Difficulté du tutoriel
Learning path - beginner 00:10:00 Page de lecture GD Quest - - -
Making your first game basic 00:36:00 Youtube vidéo Extra Credits - - -
Become a Game Developer: how to learn to code 00:26:00 Page de lecture GD Quest - - -
Game Engine : what are they and how to choose the right one 00:05:00 Youtube vidéo GD Quest - - -
Intro to GDScript for Programming Beginners 00:45:00 Vidéo GD Quest - - Facile
Learn The GDScript Programming Language (Skillshare) 04:15:00 Vidéo Skillshare

Michael McGuire

Lien - Facile
First 2D game 04:30:00 Youtube vidéo GD Quest Lien Lien Mac

Lien PC

Bougez avec les flèches du clavier. Sautez avec la flèche du haut.

Moyen
Mobile game: circle Jump 02:50:00 Page de lecture

Youtube vidéo

KidsCanCode Lien Lien Mac

Lien PC

Cliquez sur la souris pour sauter de cercle en cercle. Certains bugs subsistent.

Difficile
3D Roll the ball 05:00:00 Youtube vidéo BornCG Lien Lien Mac

Lien PC (export PC pas optimal au niveau des couleurs)

Bougez avec les flèches du clavier. Récoltez toutes les pièces pour gagner. Attention, le chargement est long. Soyez patient même en cas de message d'erreur.

Moyen
Create your first complete 3D game 01:30:00 Youtube vidéo GD Quest Lien Lien Mac

Lien PC

Bougez avec les flèches du clavier. Sautez avec la barre d'espace. Tuez le plus d'ennemis possible.

Facile
Make a 3d Maze game in Godot 00:50:00 Youtube vidéo GD Quest Lien Lien Mac

Lien PC (export PC pas optimal au niveau des couleurs)

Bougez avec les flèches du clavier. Trouvez la sphère blanche pour gagner.

Facile
Let’s build Memory 03:20:00 Youtube vidéo BornCG Lien Lien Mac

Lien PC

Cliquez sur les cartes pour trouver les paires de valeur (2, 3, 4, etc). La couleurs (coeur, pique etc.) ne compte pas.

Moyen

Références

Sources générales

https://fr.wikipedia.org/wiki/Godot_(moteur_de_jeu)

https://en.wikipedia.org/wiki/Godot_(game_engine)

https://docs.godotengine.org/fr/stable/

Citations