« Godot » : différence entre les versions
(51 versions intermédiaires par le même utilisateur non affichées) | |||
Ligne 17 : | Ligne 17 : | ||
|- | |- | ||
|'''Site web''' | |'''Site web''' | ||
| | |https://godotengine.org/ | ||
|- | |- | ||
|''' | |'''Auteurs''' | ||
|Juan Linietsky et Ariel Manzur | |Juan Linietsky et Ariel Manzur | ||
|- | |- | ||
Ligne 35 : | Ligne 35 : | ||
[https://godotengine.org/download/linux Linux] | [https://godotengine.org/download/linux Linux] | ||
|- | |- | ||
|''' | |'''Langages supportés''' | ||
|GdScript, C++, C#, Python, Nim et D | |GdScript, C++, C#, Python, Nim et D | ||
|- | |- | ||
|''' | |'''Environnements''' | ||
|Windows, Mac, Linux, FreeBSD, OpenBSD, Haiku | |Windows, Mac, Linux, FreeBSD, OpenBSD, Haiku | ||
|- | |- | ||
Ligne 51 : | Ligne 51 : | ||
|- | |- | ||
|'''Documentation française''' | |'''Documentation française''' | ||
| | |https://docs.godotengine.org/fr/stable/ | ||
|- | |||
|'''Documentation anglaise''' | |||
|[https://docs.godotengine.org/en/stable/ https://docs.godotengine.org/fr/stable/] | |||
|} | |} | ||
Ligne 62 : | Ligne 65 : | ||
=== Communauté === | === Communauté === | ||
La [https://godotengine.org/community 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 | La [https://godotengine.org/community 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 physiques. Concernant les groupes d’utilisateurs, Godot en recense 12 soit : [https://godotengine.org/qa Q&A officiel], [https://godotforums.org/ Forum officiel], [https://discord.gg/4JBkykG Discord], [https://chat.godotengine.org/ Godot Contributors Chat], [https://www.facebook.com/groups/godotengine/ Facebook], [https://www.reddit.com/r/godot Reddit], [https://github.com/godotengine/godot GitHub] (report de bug), [https://twitter.com/godotengine Twitter], [https://steamcommunity.com/app/404790 Steam Community], [https://www.youtube.com/c/GodotEngineOfficial Youtube], [https://webchat.freenode.net/?channels=#godotengine IRC] et [https://matrix.to/#/#godotengine:matrix.org Matrix]. | ||
Godot organise également des [https://godotengine.org/events évènements] | Godot organise également des [https://godotengine.org/events évènements] tels 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 [https://docs.godotengine.org/en/stable/community/tutorials.html page officielle de Godot à propos des tutoriels et des ressources] (angl.) vous donnera toutes les informations à ce sujet. | 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 [https://docs.godotengine.org/en/stable/community/tutorials.html page officielle de Godot à propos des tutoriels et des ressources] (angl.) vous donnera toutes les informations à ce sujet. | ||
Ligne 71 : | Ligne 74 : | ||
=== Alternatives === | === 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 | 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 GameDesiging propose un article appelé : [https://www.gamedesigning.org/engines/unity-vs-godot/ Unity vs. Godot: Performance, Community Support, Ease of Use, & Pricing] | ||
== Guide d'utilisation == | == Guide d'utilisation == | ||
Ligne 80 : | Ligne 83 : | ||
'''Mac''' | '''Mac''' | ||
Attention, sur Mac, à la première ouverture, un message d'avertissement apparait et vous ne pourrez ouvrir Godot. Vous devez aller dans les " | 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''' | '''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 | 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 votre ordinateur est-il en 32 ou 64 bits ? En effet, selon un post du Techsoup {{Quotation|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.}}<ref><nowiki>https://www.techsoup.org/support/articles-and-how-tos/do-i-need-the-32bit-or-64bit</nowiki></ref> | ||
<u>Comment savoir ?</u> | <u>Comment savoir ?</u> | ||
# Système d’exploitation | # Système d’exploitation : vous pouvez en savoir plus sur votre système d’exploitation grâce à la [https://support.microsoft.com/en-us/windows/32-bit-and-64-bit-windows-frequently-asked-questions-c6ca9541-8dce-4d48-0415-94a3faa2e13d FAQ suivante de Microsoft]. | ||
# Processeur | # 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 === | === 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 | 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 projets 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: | Voici les actions que vous pouvez faire depuis cette première fenêtre : | ||
# Accéder aux projets | # Accéder aux projets et aux modèles | ||
# Changer la langue | # Changer la langue | ||
# Scanner un dossier à la recherche de projets Godot | # Scanner un dossier à la recherche de projets Godot | ||
# Créer un nouveau projet | # Créer un nouveau projet | ||
# Importer un projet (fichier projet.godot) | # Importer un projet (fichier projet.godot) | ||
[[Fichier:Godot ouverture.png|centré|vignette|700x700px]] | [[Fichier:Godot ouverture.png|centré|vignette|700x700px|Première ouverture]] | ||
=== Créer un projet === | |||
Pour débuter un nouveau projet, cliquez sur "Nouveau projet". Une fenêtre s'ouvre. Vous pouvez y choisir le nom de votre projet (jaune) ainsi que son emplacement sur le disque (bleu). A cette étape, vous pouvez également choisir le moteur de rendu (OpenGL ES 3.0 ou OpenGL ES 2.0). Ce choix de rendu est modifiable même après la création du projet (c.f. [[Godot#Interface|2.4 Interface]] ci-dessous). | |||
[[Fichier:NewProject1Godot.png|centré|vignette|500x500px|Créer un projet: première fenêtre]] | |||
Une fois l'emplacement choisi, Godot vous oblige a créer un dossier portant le nom de votre projet. Ainsi, pour finaliser la création d'un projet, cliquez tout d'abord sur "Créer un dossier" dans l'espace jaune. Un dossier du même nom que votre projet a été créé et la croix rouge se transforme en un vu vert. Vous pouvez maintenant cliquer sur "Créer et ouvrir". | |||
[[Fichier:NewProject2Godot.png|centré|vignette|500x500px|Création de projet: fenêtre 2]] | |||
=== Interface === | === Interface === | ||
Une fois un projet ouvert, l'interface de l'éditeur de Godot s'ouvre. Cette interface est divisée en trois grande parties : | Une fois un projet ouvert, l'interface de l'éditeur de Godot s'ouvre. Cette interface est divisée en trois grande parties : | ||
# 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 | # 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ésents sur votre ordinateur. | ||
# La colonne de droite (rouge) est en lien avec le '''Dock des scènes'''. Les onglets « inspecteur » et « | # La colonne de droite (rouge) est en lien avec le '''Dock des scènes'''. Les onglets « inspecteur » et « nœud », permettent de paramétrer chaque élément sélectionné dans la colonne de gauche. En d’autres termes, en cliquant sur un nœud de votre scène dans la colonne de gauche, 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. | ||
# 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) | # 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, une barre d’outils (bleu clair) vous permet d’effectuer des modifications. | ||
A cela s'ajoute un '''panneau | A cela s'ajoute un '''panneau inférieur''' (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''' | Pour finir, '''deux menus''' permettent l'accès aux réglages Godot (à gauche : Scène, Projet, Débogage, Éditeur, Aide) et aux boutons de test du projet (droite : play, pause, stop, etc.). C'est également à cet endroit, tout à droite, que vous pouvez changer le moteur de rendu entre OpenGL ES 3.0 et OpenGL ES 2.0. | ||
[[Fichier:InterfaceGodot.png|centré|vignette| | [[Fichier:InterfaceGodot.png|centré|vignette|900x900px|Interface d'un projet Godot à son ouverture]] | ||
==== Modification de l'interface ==== | ==== 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 | 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é (jaune), vous pouvez agrandir la zone pour travailler en plein écran. L'interface Godot permet également de travailler en mode "Splitview". Dans la barre d'outils du menu 2D ou 3D, cliquez sur le bouton "Affichage" (vert) afin de visualiser les différentes possibilités pour séparer la zone d'affichage de manière horizontale ou verticale. Enfin, les colonnes sont redimensionnables en positionnant la souris au bord de n'importe quelle colonne. | ||
[[Fichier:InterfaceGodot Sortie.png|centré|vignette|900x900px|Interface Godot avec le panneau inférieur de sortie ouvert. ]] | |||
==== Particularité de la zone d'affichage 3D ==== | |||
La zone d'affichage 3D fonctionne avec les axes x, y et z. A noter que dans Godot, l'axe Y (en vert) correspond à la cote, soit la hauteur (haut-bas). | |||
=== Les nœuds et les scènes === | |||
[[Fichier:Godot noeuds.png|vignette|238x238px|Les différents types de nœuds]] | |||
==== Généralités ==== | |||
Godot fonctionne avec '''un système de nœuds'''. Il existe 4 principales catégories de nœuds : | |||
# Nœuds 2D (en violet) | |||
# Nœuds 3D (en rouge) | |||
# Nœuds Interface Utilisateur (UI) (en vert) | |||
# Autres nœuds (animation, timer, environnement, viewport, etc.) | |||
Dans Godot, un nœud peut-être aussi bien un objet, une image ou un texte qu'un son, une animation ou un timer. Tous les nœuds ont toutefois ces éléments en commun <ref>https://docs.godotengine.org/fr/stable/getting_started/step_by_step/scenes_and_nodes.html#</ref> : | |||
* 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 | |||
[[Fichier:Godot arbre.png|vignette|268x268px|Exemple d'un arbre de nœuds dans Godot]] | |||
==== Organisation des nœuds ==== | |||
Dans Godot, un projet est donc '''un ensemble de nœuds formant des scènes'''. Un nœud peut avoir différents 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 UI. Le nœud parent principal de la scène (aussi appelé nœud racine) est "End Screen". Il a comme enfant quatre nœuds: "background", "Title", "Label" et "Menu". Ce dernier nœud 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 nœud racine 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œud 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, tous les nœuds font partie de la catégorie UI mais leurs classes sont différentes : | |||
* EndScreen est un nœud "Control" | |||
* background est un nœud "TextureRect" | |||
* Title et Label sont des nœuds "Label" | |||
* Menu est un nœud "VBoxContainer" | |||
* PlayButton et Quitbutton sont des nœuds "Button" | |||
En ajoutant un nœud à une scène (symbole "+"), il est obligatoire de choisir son type (sa classe). Cela définira les paramètres 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). | |||
[[Fichier:AjoutNoeud.png|centré|vignette|900x900px|Ajout d'un nœud]] | |||
==== Nœuds fréquemment utilisés ==== | |||
Le tableau ci-dessous résume des nœuds fréquemment utilisés: | |||
{| class="wikitable" | |||
|+ | |||
Nœuds fréquemment utilisés | |||
!Catégorie | |||
!Type / Classe | |||
!Utilisation | |||
|- | |||
|UI | |||
|ColorRect | |||
|Rectangle de couleur pour faire un fond d'écran par exemple. | |||
|- | |||
|UI | |||
|Label | |||
|Espace où inscrire du texte. | |||
|- | |||
|UI | |||
|Button | |||
|Boutton. Il existe différents types 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 de 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 "invisibles" permettant de définir des bords pour des collisions avec d'autres formes. | |||
|- | |||
|Nœuds 2D | |||
|Tilemap | |||
|Carte de tuiles. Elles permettent de créer des mondes basés sur des tuiles d'un TileSet (textures, formes, etc.). Ce type de nœud est utilisé pour créer rapidement et facilement des mondes dans lesquels vous avez souvent les mêmes structures qui reviennent, à l'image de bloc de terre, d'herbe et de cailloux dans Mario par exemple. | |||
|- | |||
|Nœuds 2D | |||
|VisibilityNotifier2D | |||
|Permet de détecter lorsque un 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 pas en permanence. Cela est notamment utilisé afin de garantir de bonnes performances de 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és 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érents types 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 mondes basés sur des sets. | |||
|- | |||
|Autre | |||
|AnimationPlayer | |||
|Permet de créer des animations en modifiants les paramètres dans l'inspecteur. | |||
|- | |||
|Autre | |||
|AudioStreamPlayer | |||
|Audio pour l'entier du jeu. Il existe d'autres types d'audio pouvant être lié spécifiquement à des nœuds. Attention aux formats utilisés qui peuvent influencer les paramètres de l’inspecteur. | |||
|- | |||
|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 complexes, 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. Pour ce type de projet, Godot offre la possibilité de créer plusieurs scènes et de les instancier les unes dans les autres. Concrètement, il s'agit de créer une scène "joueur", une scène "ennemi" et une scène "pièce" qui sont ensuite instanciées dans chaque scène de niveau. En changeant la scène "joueur", tous les joueurs de tous les niveaux seront ainsi modifiés. | |||
==== Symboles ==== | |||
Dans le Dock des scènes, différents symboles sont utilisés afin de représenter les éléments exposés ci-dessus. En orange, le "plus" permet d'ajouter un nœud. En bleu clair, le lien permet d'instancier une scène. En rose, le parchemin permet de d'attacher (plus vert) ou de détacher (croix rouge comme ci-dessous) un script, c'est-à-dire, un ensemble d'instructions données au nœud par un langage de programmation. En vert, le parchemin signifie qu'un script est attaché à ce nœud. En cliquant sur ce parchemin, le script correspondant s'ouvre. En jaune, ce symbole d’œil permet de rendre visible ou invisible le nœud. En rouge, ce symbole "clip clap" signifie qu'il s'agit d'une scène instanciée. En cliquant dessus, la scène s'ouvre. En bleu foncé, ce symbole signifie qu'un signal est attaché à ce nœud. Un signal permet d'envoyer un message à un autre nœud. Dans ce cas, le bouton "playButton" envoie un signal pour lancer le jeu (soit fermer cette scène et ouvrir une autre). Les actions de ce signal sont définis dans le script. | |||
[[Fichier:SymbolesGodot.png|centré|vignette|Docks des scènes et symboles]] | |||
=== Langage de programmation === | |||
Godot offre la possibilité de travailler avec différents langages de programmation. Le plus courant est de travailler avec GdScript ou VisualScript, des langages utilisés et créés spécialement pour Godot et directement intégrés dans l'éditeur. Toutefois, depuis la dernière version de Godot 3.0, il est également possible de programmer en C# ou C++ en utilisant un environnement de travail différent (Visual Studio par exemple). | |||
=== | ==== Ajouter un script ==== | ||
Pour ajouter ou détacher un script, sélectionnez un nœud et cliquez sur le symbole de parchemin avec le plus vert (c.f. image ci-dessus, rose). Une fenêtre s'ouvre dans laquelle vous pouvez choisir les paramètres de votre script, soit le langage de programmation, la classe (hérité de), le modèle (par défaut, sans commentaire, vide), l'intégration du script et le chemin du fichier. En cliquant sur "Créer", un fichier est créé dans le chemin sélectionné et l'éditeur script correspondant s'ouvre. | |||
[[Fichier:ScriptGodot.png|centré|vignette|400x400px|Ajout d'un script]] | |||
==== GdScript ==== | ==== Le langage 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 [[wp_fr:Python_(langage)|Python]] (les blocs sont identifiés par l'indentation et une grande partie des mots clés sont similaires)" <ref>https://docs.godotengine.org/fr/stable/getting_started/scripting/gdscript/gdscript_basics.html#doc-gdscript</ref>. | 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 [[wp_fr:Python_(langage)|Python]] (les blocs sont identifiés par l'indentation et une grande partie des mots clés sont similaires)" <ref>https://docs.godotengine.org/fr/stable/getting_started/scripting/gdscript/gdscript_basics.html#doc-gdscript</ref>. | ||
Afin de découvrir le langage de GDScript, [https://www.youtube.com/watch?v=UcdwP1Q2UlU cette vidéo] en anglais de [https://www.gdquest.com/ GDQuest] | Afin de découvrir le langage de GDScript, [https://www.youtube.com/watch?v=UcdwP1Q2UlU cette vidéo] en anglais de [https://www.gdquest.com/ GDQuest] propose d'aborder les bases du langage en 45 minutes. Vous y trouverez des explications à propos des éléments suivants: | ||
* Variables | * Variables | ||
* Constantes | * Constantes | ||
* | * Types de variables / constantes | ||
* Conventions d’écriture ( | * Conventions d’écriture (majuscule, minuscule, etc.) | ||
* | * Opérations et opérateurs (+, -, *, /, %, <, >, etc.) | ||
* | * Valeurs booléenne | ||
* Conditions | * Conditions | ||
* Listes (Array) | * Listes (Array) | ||
* Loop | * Loop | ||
* Objets, propriétés, méthodes et classes | * Objets, propriétés, méthodes et classes | ||
La plateforme [https://www.skillshare.com/ Skillshare] propose également [https://www.skillshare.com/classes/Learn-The-GDScript-Programming-Language/1750685724?via=browse-rating-godot-layout-grid un cours] (gratuit si vous vous inscrivez pour le plan d'essai) abordant globalement les mêmes sujets tout en proposant des exercices afin de mettre en pratique les apprentissages. Enfin, la [https://docs.godotengine.org/fr/stable/about/index.html documentation de Godot] propose un [https://www.skillshare.com/classes/Learn-The-GDScript-Programming-Language/1750685724?via=browse-rating-godot-layout-grid apport spécifique sur GDScript] qui abordent ce langage en proposant de s'attarder directement sur des exemples de syntaxe. | |||
<u>Exemple de code en GDScript</u> | |||
Cet exemple est tiré du [https://www.skillshare.com/classes/Learn-The-GDScript-Programming-Language/1750685724?via=browse-rating-godot-layout-grid cours skillshare], vidéo 18 à 21. Le code permet d'afficher un texte dans un nœud selon des conditions. | |||
<syntaxhighlight lang="python3"> | |||
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... | |||
</syntaxhighlight> | |||
==== Le langage VisualScript ==== | |||
VisualScript est un langage de programmation visuel basé sur des blocs. Il permet aux débutants de se lancer dans la programmation avec peu de connaissances à ce sujet. Afin d'ajouter un script en VisualScript, il est nécessaire de sélectionner la bonne extension au moment de la création du script, soit Visual Script (ou .vs). L'éditeur s'ouvre et vous pouvez alors commencer à coder. Pour obtenir davantage d'information sur ce langage de programmation, la documentation de Godot propose [https://docs.godotengine.org/fr/stable/getting_started/scripting/visual_script/index.html un chapitre entier à ce sujet]. | |||
[[Fichier:AjoutVisualScriptGodot.png|centré|vignette|Ajout d'un script VisualScript|400x400px]] | |||
=== Raccourcis === | === Raccourcis === | ||
Comme tout programme, Godot possède des raccourcis afin de faciliter | Comme tout programme, Godot possède des raccourcis afin de faciliter les manipulations. Voici une liste des raccourcis fréquemment utilisés. Pour en savoir davantage, la documentation Godot décrit tous les raccourcis dans [https://docs.godotengine.org/fr/stable/getting_started/editor/default_key_mapping.html un chapitre à ce sujet]. | ||
Voici une liste des raccourcis fréquemment utilisés: | |||
{| class="wikitable" | {| class="wikitable" | ||
|+Général | |+Général | ||
!Action | !Action | ||
! | !Raccourcis MAC | ||
!Raccourcis PC | |||
|- | |- | ||
|Ouvrir une scène | |Ouvrir une scène | ||
|cmd + O | |cmd + O | ||
|ctrl + O | |||
|- | |- | ||
|Enregistrer la scène | |Enregistrer la scène | ||
|cmd + S | |cmd + S | ||
|ctrl + S | |||
|- | |- | ||
|Fermer la scène | |Fermer la scène | ||
|shift + cmd + W | |shift + cmd + W | ||
|shift + ctrl + W | |||
|- | |- | ||
|Ajouter un noeud | |Ajouter un noeud | ||
|cmd + A | |cmd + A | ||
|ctrl + A | |||
|- | |- | ||
|Annuler | |Annuler | ||
|cmd + Z | |cmd + Z | ||
|ctrl + Z | |||
|- | |- | ||
|Refaire | |Refaire | ||
|shift + cmd + Z | |shift + cmd + Z | ||
|shift + ctrl + Z | |||
|- | |- | ||
|Jouer le jeu | |Jouer le jeu | ||
|cmd + B | |cmd + B | ||
|F5 | |||
|- | |- | ||
|Jouer la scène | |Jouer la scène | ||
|cmd + R | |cmd + R | ||
|F6 | |||
|- | |- | ||
|Quitter | |Quitter | ||
|cmd + Q | |cmd + Q | ||
|ctrl + Q | |||
|- | |- | ||
|Quitter vers la zone de projet | |Quitter vers la zone de projet | ||
|shift + cmd + Q | |shift + cmd + Q | ||
|shift + ctrl + Q | |||
|} | |} | ||
Ligne 180 : | Ligne 373 : | ||
|+Navigation dans la zone d'affichage | |+Navigation dans la zone d'affichage | ||
!Action | !Action | ||
! | !Raccourcis MAC | ||
!Raccourcis PC | |||
|- | |- | ||
|Accès zone affichage 2D | |Accès zone affichage 2D | ||
|alt + 1 | |alt + 1 | ||
|ctrl + F1 | |||
|- | |- | ||
|Accès zone affichage 3D | |Accès zone affichage 3D | ||
|alt + 2 | |alt + 2 | ||
|ctrl + F2 | |||
|- | |- | ||
|Accès zone affichage Script | |Accès zone affichage Script | ||
|alt + 3 | |alt + 3 | ||
|ctrl + F3 | |||
|- | |- | ||
|Barre d'outil - Sélection (flèche) | |Barre d'outil - Sélection (flèche) | ||
|q | |||
|q | |q | ||
|- | |- | ||
|Barre d'outil - Mode déplacement | |Barre d'outil - Mode déplacement | ||
|w | |||
|w | |w | ||
|- | |- | ||
|Barre d'outil - Mode rotation | |Barre d'outil - Mode rotation | ||
|e | |||
|e | |e | ||
|- | |- | ||
|Barre d'outil - Mode mise à l'échelle | |Barre d'outil - Mode mise à l'échelle | ||
|r | |r | ||
|s | |||
|- | |- | ||
|Documentation sur la méthode | |Documentation sur la méthode | ||
(zone script uniquement) | (zone script uniquement) | ||
|cmd + "Clic sur la méthode" | |cmd + "Clic sur la méthode" | ||
|ctrl + "Clic sur la méthode" | |||
|} | |} | ||
=== Exportations === | |||
Godot permet d'exporter les projets pour: MacOSX, iOS, Windows, Android, Linux, HTML5 et UWP. De manière générale, tous les exports commencent de la manière suivante. Dans la barre de menu principale, cliquez sur "Projet" puis "Exporter...". Une fenêtre s'ouvre. Dans cette fenêtre, cliquez sur "Ajouter..." et sélectionnez le type d'export désiré. Vous pouvez ensuite paramétrer chaque type d'export. Vous pouvez par exemple, dans les paramètres qui s'afficheront à droite de la fenêtre, choisir un logo pour votre programme. Enfin, vous pouvez donner un nom à l'export créer. De cette manière, le type d'export et ses paramètres sont enregistrés pour une prochaine exportation. Une fois les paramètres définis, cliquez sur "Exporter le projet". | |||
Notez que le bouton "Exporter le PCK/ZIP" permet un export du projet Godot et non du programme exécutable. [[Fichier:ExporterGodot.png|centré|vignette|900x900px|Fenêtre d'export vide. ]] | |||
Pour une exportation Mac, Linux ou Winwos, les paramètres par défaut sont suffisants. Pour Windows, en activant Embded Pck dans les paramètres de droite, cela permet de n'avoir qu'un seul fichier avec le pack des assets inclus. Toutefois, une alerte de sécurité peut apparaître à l'ouverture de votre programme. | |||
Pour un export Android, il est nécessaire de télécharger des logiciels supplémentaires et de les installer. Pour un export vers iOS, vous devez avoir un compte développeur Apple et fournir des informations spécifiques concernant l'écran d'accueil. | |||
= | Pour des informations plus précises sur les exportations, [https://docs.godotengine.org/fr/stable/getting_started/step_by_step/exporting.html?highlight=Exportation# la documentation officielle] vous accompagne pas à pas. | ||
== Tutoriels == | |||
Sur internet, vous trouverez une multitude de tutoriels pour apprendre à utiliser Godot. Tout d'abord, la [https://docs.godotengine.org/fr/stable/ 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 [https://docs.godotengine.org/fr/stable/community/tutorials.html#video-tutorials Tutoriel Vidéo] liste différentes ressources de tutoriels vidéo disponibles sur la toile. Parmi ces tutoriels vidéo se trouve ceux de [https://www.gdquest.com/ GD Quest] qui propose notamment un "[https://www.gdquest.com/tutorial/godot/learning-paths/beginner/ 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. | Sur internet, vous trouverez une multitude de tutoriels pour apprendre à utiliser Godot. Tout d'abord, la [https://docs.godotengine.org/fr/stable/ 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 [https://docs.godotengine.org/fr/stable/community/tutorials.html#video-tutorials Tutoriel Vidéo] liste différentes ressources de tutoriels vidéo disponibles sur la toile. Parmi ces tutoriels vidéo se trouve ceux de [https://www.gdquest.com/ GD Quest] qui propose notamment un "[https://www.gdquest.com/tutorial/godot/learning-paths/beginner/ 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. | ||
<u>Chemin d'apprentissage testé</u> | |||
Dans le cadre de crédits libres du [https://tecfalabs.unige.ch/maltt/ Master MALTT] de l'[https://www.unige.ch/ 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 | |||
Dans le cadre de crédits libres du [https://tecfalabs.unige.ch/maltt/ Master MALTT] de l'[https://www.unige.ch/ 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. Les différents projets mis en lien ci-dessous sont codés et commentés de manière personnelle, dans un but d'apprentissage et de réinvestissement futur. | |||
Inspiré du [https://www.gdquest.com/tutorial/godot/learning-paths/beginner/ learning path beginner] de [https://www.gdquest.com/ 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. [[Godot#T.C3.A9l.C3.A9chargement et installation|téléchargement et installation]]). | Inspiré du [https://www.gdquest.com/tutorial/godot/learning-paths/beginner/ learning path beginner] de [https://www.gdquest.com/ 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. [[Godot#T.C3.A9l.C3.A9chargement et installation|téléchargement et installation]]). | ||
Ligne 349 : | Ligne 554 : | ||
|Moyen | |Moyen | ||
|} | |} | ||
== Liens == | |||
=== Officiels === | |||
Site internet de Godot: https://godotengine.org/ | |||
Documentation de Godot (anglais): https://docs.godotengine.org/en/stable/ | |||
Documentation de Godot (français): https://docs.godotengine.org/fr/stable/ | |||
== Références == | == Références == |
Dernière version du 16 juin 2021 à 09:05
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
Fiche technique
Nom du programme | Godot |
Dernière version | 3.2.3 (17 septembre 2020) |
Site web | https://godotengine.org/ |
Auteurs | 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 |
Langages supportés | GdScript, C++, C#, Python, Nim et D |
Environnements | 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/ |
Documentation anglaise | 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 physiques. 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 tels 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 GameDesiging 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 votre 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 ?
- Système d’exploitation : vous pouvez en savoir plus sur votre système d’exploitation grâce à la FAQ suivante de Microsoft.
- 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 projets 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 :
- Accéder aux projets et aux modèles
- Changer la langue
- Scanner un dossier à la recherche de projets Godot
- Créer un nouveau projet
- Importer un projet (fichier projet.godot)
Créer un projet
Pour débuter un nouveau projet, cliquez sur "Nouveau projet". Une fenêtre s'ouvre. Vous pouvez y choisir le nom de votre projet (jaune) ainsi que son emplacement sur le disque (bleu). A cette étape, vous pouvez également choisir le moteur de rendu (OpenGL ES 3.0 ou OpenGL ES 2.0). Ce choix de rendu est modifiable même après la création du projet (c.f. 2.4 Interface ci-dessous).
Une fois l'emplacement choisi, Godot vous oblige a créer un dossier portant le nom de votre projet. Ainsi, pour finaliser la création d'un projet, cliquez tout d'abord sur "Créer un dossier" dans l'espace jaune. Un dossier du même nom que votre projet a été créé et la croix rouge se transforme en un vu vert. Vous pouvez maintenant cliquer sur "Créer et ouvrir".
Interface
Une fois un projet ouvert, l'interface de l'éditeur de Godot s'ouvre. Cette interface est divisée en trois grande parties :
- 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ésents sur votre ordinateur.
- La colonne de droite (rouge) est en lien avec le Dock des scènes. Les onglets « inspecteur » et « nœud », permettent de paramétrer chaque élément sélectionné dans la colonne de gauche. En d’autres termes, en cliquant sur un nœud de votre scène dans la colonne de gauche, 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.
- 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, une barre d’outils (bleu clair) vous permet d’effectuer des modifications.
A cela s'ajoute un panneau inférieur (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 permettent l'accès aux réglages Godot (à gauche : Scène, Projet, Débogage, Éditeur, Aide) et aux boutons de test du projet (droite : play, pause, stop, etc.). C'est également à cet endroit, tout à droite, que vous pouvez changer le moteur de rendu entre OpenGL ES 3.0 et OpenGL ES 2.0.
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é (jaune), vous pouvez agrandir la zone pour travailler en plein écran. L'interface Godot permet également de travailler en mode "Splitview". Dans la barre d'outils du menu 2D ou 3D, cliquez sur le bouton "Affichage" (vert) afin de visualiser les différentes possibilités pour séparer la zone d'affichage de manière horizontale ou verticale. Enfin, les colonnes sont redimensionnables en positionnant la souris au bord de n'importe quelle colonne.
Particularité de la zone d'affichage 3D
La zone d'affichage 3D fonctionne avec les axes x, y et z. A noter que dans Godot, l'axe Y (en vert) correspond à la cote, soit la hauteur (haut-bas).
Les nœuds et les scènes
Généralités
Godot fonctionne avec un système de nœuds. Il existe 4 principales catégories de nœuds :
- Nœuds 2D (en violet)
- Nœuds 3D (en rouge)
- Nœuds Interface Utilisateur (UI) (en vert)
- Autres nœuds (animation, timer, environnement, viewport, etc.)
Dans Godot, un nœud peut-être aussi bien un objet, une image ou un texte qu'un son, une animation ou un timer. Tous les nœuds ont toutefois ces éléments en commun [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
Organisation des nœuds
Dans Godot, un projet est donc un ensemble de nœuds formant des scènes. Un nœud peut avoir différents 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 UI. Le nœud parent principal de la scène (aussi appelé nœud racine) est "End Screen". Il a comme enfant quatre nœuds: "background", "Title", "Label" et "Menu". Ce dernier nœud 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 nœud racine 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œud 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, tous les nœuds font partie de la catégorie UI mais leurs classes sont différentes :
- EndScreen est un nœud "Control"
- background est un nœud "TextureRect"
- Title et Label sont des nœuds "Label"
- Menu est un nœud "VBoxContainer"
- PlayButton et Quitbutton sont des nœuds "Button"
En ajoutant un nœud à une scène (symbole "+"), il est obligatoire de choisir son type (sa classe). Cela définira les paramètres 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).
Nœuds fréquemment utilisés
Le tableau ci-dessous résume des nœuds fréquemment utilisés:
Catégorie | Type / Classe | Utilisation |
---|---|---|
UI | ColorRect | Rectangle de couleur pour faire un fond d'écran par exemple. |
UI | Label | Espace où inscrire du texte. |
UI | Button | Boutton. Il existe différents types 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 de 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 "invisibles" permettant de définir des bords pour des collisions avec d'autres formes. |
Nœuds 2D | Tilemap | Carte de tuiles. Elles permettent de créer des mondes basés sur des tuiles d'un TileSet (textures, formes, etc.). Ce type de nœud est utilisé pour créer rapidement et facilement des mondes dans lesquels vous avez souvent les mêmes structures qui reviennent, à l'image de bloc de terre, d'herbe et de cailloux dans Mario par exemple. |
Nœuds 2D | VisibilityNotifier2D | Permet de détecter lorsque un 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 pas en permanence. Cela est notamment utilisé afin de garantir de bonnes performances de 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és 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érents types 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 mondes basés sur des sets. |
Autre | AnimationPlayer | Permet de créer des animations en modifiants les paramètres dans l'inspecteur. |
Autre | AudioStreamPlayer | Audio pour l'entier du jeu. Il existe d'autres types d'audio pouvant être lié spécifiquement à des nœuds. Attention aux formats utilisés qui peuvent influencer les paramètres de l’inspecteur. |
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 complexes, 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. Pour ce type de projet, Godot offre la possibilité de créer plusieurs scènes et de les instancier les unes dans les autres. Concrètement, il s'agit de créer une scène "joueur", une scène "ennemi" et une scène "pièce" qui sont ensuite instanciées dans chaque scène de niveau. En changeant la scène "joueur", tous les joueurs de tous les niveaux seront ainsi modifiés.
Symboles
Dans le Dock des scènes, différents symboles sont utilisés afin de représenter les éléments exposés ci-dessus. En orange, le "plus" permet d'ajouter un nœud. En bleu clair, le lien permet d'instancier une scène. En rose, le parchemin permet de d'attacher (plus vert) ou de détacher (croix rouge comme ci-dessous) un script, c'est-à-dire, un ensemble d'instructions données au nœud par un langage de programmation. En vert, le parchemin signifie qu'un script est attaché à ce nœud. En cliquant sur ce parchemin, le script correspondant s'ouvre. En jaune, ce symbole d’œil permet de rendre visible ou invisible le nœud. En rouge, ce symbole "clip clap" signifie qu'il s'agit d'une scène instanciée. En cliquant dessus, la scène s'ouvre. En bleu foncé, ce symbole signifie qu'un signal est attaché à ce nœud. Un signal permet d'envoyer un message à un autre nœud. Dans ce cas, le bouton "playButton" envoie un signal pour lancer le jeu (soit fermer cette scène et ouvrir une autre). Les actions de ce signal sont définis dans le script.
Langage de programmation
Godot offre la possibilité de travailler avec différents langages de programmation. Le plus courant est de travailler avec GdScript ou VisualScript, des langages utilisés et créés spécialement pour Godot et directement intégrés dans l'éditeur. Toutefois, depuis la dernière version de Godot 3.0, il est également possible de programmer en C# ou C++ en utilisant un environnement de travail différent (Visual Studio par exemple).
Ajouter un script
Pour ajouter ou détacher un script, sélectionnez un nœud et cliquez sur le symbole de parchemin avec le plus vert (c.f. image ci-dessus, rose). Une fenêtre s'ouvre dans laquelle vous pouvez choisir les paramètres de votre script, soit le langage de programmation, la classe (hérité de), le modèle (par défaut, sans commentaire, vide), l'intégration du script et le chemin du fichier. En cliquant sur "Créer", un fichier est créé dans le chemin sélectionné et l'éditeur script correspondant s'ouvre.
Le langage 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 propose d'aborder les bases du langage en 45 minutes. Vous y trouverez des explications à propos des éléments suivants:
- Variables
- Constantes
- Types de variables / constantes
- Conventions d’écriture (majuscule, minuscule, etc.)
- Opérations et opérateurs (+, -, *, /, %, <, >, etc.)
- Valeurs 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 sujets 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
Cet exemple est tiré du cours skillshare, vidéo 18 à 21. Le code permet d'afficher un texte dans un nœud selon des conditions.
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...
Le langage VisualScript
VisualScript est un langage de programmation visuel basé sur des blocs. Il permet aux débutants de se lancer dans la programmation avec peu de connaissances à ce sujet. Afin d'ajouter un script en VisualScript, il est nécessaire de sélectionner la bonne extension au moment de la création du script, soit Visual Script (ou .vs). L'éditeur s'ouvre et vous pouvez alors commencer à coder. Pour obtenir davantage d'information sur ce langage de programmation, la documentation de Godot propose un chapitre entier à ce sujet.
Raccourcis
Comme tout programme, Godot possède des raccourcis afin de faciliter les manipulations. Voici une liste des raccourcis fréquemment utilisés. Pour en savoir davantage, la documentation Godot décrit tous les raccourcis dans un chapitre à ce sujet.
Action | Raccourcis MAC | Raccourcis PC |
---|---|---|
Ouvrir une scène | cmd + O | ctrl + O |
Enregistrer la scène | cmd + S | ctrl + S |
Fermer la scène | shift + cmd + W | shift + ctrl + W |
Ajouter un noeud | cmd + A | ctrl + A |
Annuler | cmd + Z | ctrl + Z |
Refaire | shift + cmd + Z | shift + ctrl + Z |
Jouer le jeu | cmd + B | F5 |
Jouer la scène | cmd + R | F6 |
Quitter | cmd + Q | ctrl + Q |
Quitter vers la zone de projet | shift + cmd + Q | shift + ctrl + Q |
Action | Raccourcis MAC | Raccourcis PC |
---|---|---|
Accès zone affichage 2D | alt + 1 | ctrl + F1 |
Accès zone affichage 3D | alt + 2 | ctrl + F2 |
Accès zone affichage Script | alt + 3 | ctrl + F3 |
Barre d'outil - Sélection (flèche) | q | q |
Barre d'outil - Mode déplacement | w | w |
Barre d'outil - Mode rotation | e | e |
Barre d'outil - Mode mise à l'échelle | r | s |
Documentation sur la méthode
(zone script uniquement) |
cmd + "Clic sur la méthode" | ctrl + "Clic sur la méthode" |
Exportations
Godot permet d'exporter les projets pour: MacOSX, iOS, Windows, Android, Linux, HTML5 et UWP. De manière générale, tous les exports commencent de la manière suivante. Dans la barre de menu principale, cliquez sur "Projet" puis "Exporter...". Une fenêtre s'ouvre. Dans cette fenêtre, cliquez sur "Ajouter..." et sélectionnez le type d'export désiré. Vous pouvez ensuite paramétrer chaque type d'export. Vous pouvez par exemple, dans les paramètres qui s'afficheront à droite de la fenêtre, choisir un logo pour votre programme. Enfin, vous pouvez donner un nom à l'export créer. De cette manière, le type d'export et ses paramètres sont enregistrés pour une prochaine exportation. Une fois les paramètres définis, cliquez sur "Exporter le projet".
Notez que le bouton "Exporter le PCK/ZIP" permet un export du projet Godot et non du programme exécutable.
Pour une exportation Mac, Linux ou Winwos, les paramètres par défaut sont suffisants. Pour Windows, en activant Embded Pck dans les paramètres de droite, cela permet de n'avoir qu'un seul fichier avec le pack des assets inclus. Toutefois, une alerte de sécurité peut apparaître à l'ouverture de votre programme.
Pour un export Android, il est nécessaire de télécharger des logiciels supplémentaires et de les installer. Pour un export vers iOS, vous devez avoir un compte développeur Apple et fournir des informations spécifiques concernant l'écran d'accueil.
Pour des informations plus précises sur les exportations, la documentation officielle vous accompagne pas à pas.
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 testé
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. Les différents projets mis en lien ci-dessous 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
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
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
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
Cliquez sur les cartes pour trouver les paires de valeur (2, 3, 4, etc). La couleurs (coeur, pique etc.) ne compte pas. |
Moyen |
Liens
Officiels
Site internet de Godot: https://godotengine.org/
Documentation de Godot (anglais): https://docs.godotengine.org/en/stable/
Documentation de Godot (français): https://docs.godotengine.org/fr/stable/
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
- ↑ https://docs.godotengine.org/fr/stable/about/introduction.html
- ↑ https://www.techsoup.org/support/articles-and-how-tos/do-i-need-the-32bit-or-64bit
- ↑ https://docs.godotengine.org/fr/stable/getting_started/step_by_step/scenes_and_nodes.html#
- ↑ https://docs.godotengine.org/fr/stable/getting_started/scripting/gdscript/gdscript_basics.html#doc-gdscript