VT2020-Godot-Fiche

Le Godot Game Engine est un logiciel open-source permettant la création de jeux vidéos, appelé moteur de jeu, fonctionnant sur plusieurs systèmes d'exploitation et permettant la création de jeux multi-plateformes, tels que l'ordinateur, le smartphone et le web.

Le logiciel inclut des moteurs en 2D et 3D et facilite la création de jeux en intégrant une structure en nœuds, ainsi que des gestionnaires d'animation et de scripts.



= Description = Le Godot Game Engine est un moteur créé initialement en 2007 qui a été ouvert au public en 2014, et qui est régulièrement mis à jour par des bénévoles et des développeurs rémunérés grâce au financement participatif. Il se présente comme un concurrent aux moteurs privés tels que Unity en ayant des fonctionnalités similaires, tels que des librairies d'assets pour faciliter le travail des développeurs ne disposant pas de talents artistiques.

Godot construit un jeu vidéo en le découpant en plusieurs scènes qui elles-mêmes contiennent des nœuds qui correspondent aux entités et éléments du jeu.

Scripts et langages
Godot possède son propre langage pour scripter les nœuds, GDScript, dont la syntaxe est similaire à Python. Il s'agit d'un langage dynamique, le rendant facile à apprendre et à lire, testable sans compilation, mais au prix d'une performance moindre par rapport aux langages statiques. GDScript permet donc la création rapide et simplifiée de jeux. Dans le cas où il est nécessaire d'être plus performant, le Godot Game Engine fonctionne aussi avec du C#, et l'on peut créer facilement. un jeu majoritairement en GDScript pour les taches simples et rajouter un peu de C# aux endroits critiques.

Pour permettre une visualisation du code simplifiée, Godot utilise Visual Script, un outil permettant l'affichage du code de manière visuelle. L'objectif est de permettre aux artistes et aux débutants en code de se lancer dans la création d'un jeu sans devoir devenir un professionnel en programmation.

Il existe aussi un framework nommé GDNative qui permet de facilement rajouter des librairies externes et de supporter différents contrôleurs.

L'image ci-dessous présente un exemple de script de balle dans un jeu de type "Pong", affiché à l'écran en format Visual Script.

Moteurs 2D et 3D
Contrairement à Unity qui utilise un moteur 3D pour réaliser tous ses jeux, Godot possède des moteurs 2D et 3D dédiés.

Le moteur 2D utilise comme unité de distance le pixel, afin de permettre un affichage similaire pour chaque plateforme, en agrandissant le pixel pour l'écran si besoin. Ce moteur inclut des outils pour gérer l'éclairage, le défilement de texture différé ainsi que des effets de particule, permettant une grande possibilité artistique.

Le moteur 3D n'est pas en reste puisqu'il propose lui aussi des technologies très utilisées dans les jeux vidéos actuels, tels que l'illumination globale en temps réel, un traitement des textures permettant réflexions, transparence ou bien les [reflets anisotrope].

Il est de plus possible d'intégrer du 2D dans un jeu en moteur 3D en créant des objets plats et fixes, restant toujours à la même position relative à la caméra. Cette technique est celle utilisée sous d'autres moteurs uniquement 3D et permet moins de possibilités 2D.

Animations
Godot intègre un gestionnaire d'animations 2D et 3D permettant l'animation de chaque élément du jeu vidéo. Chaque élément peut être décomposé en sous-parties indépendantes, tels les membres d'un personnage jouable. Les animations 2D sont de surcroit facilitées par la possibilité d'utiliser des squelettes préexistants. Il est aussi possible de créer des animations élémentaires composées de simples changement d'images.



Librairie d'assets
Godot possède une libraire d'assets à disposition de tous les utilisateurs de Godot. Elle peut être accédée du site internet ou du logiciel lui-même.

Contrairement aux boutiques d'assets de Unity ou Unreal Engine, tous les assets sont entièrement gratuits et libres. Chacun peut publier des assets simples tels que des textures ou animations, ainsi que des projets ou des démos pour servir de templates à autrui. = Historique = Godot est un projet qui a démarré en 2007 par Juan Linietsky et Ariel Manzur qui voulaient créer un moteur de jeu polyvalent et libre. Avec l'aide d'une équipe de programmeurs, le moteur est ouvert au public en 2014. Depuis lors, Godot est très régulièrement mis à jour à l'aide du feedback des utilisateurs. Godot va d'abord parfaire son moteur 2D puis implémenter un moteur 3D afin de répondre à la demande des utilisateurs mais aussi pour pouvoir se mesurer aux autres moteurs en vogue, uniquement en 3D.

Godot gagne fortement en popularité lors de son apparition sur [Steam] en 2016, une plateforme de jeu vidéo qui fit connaître le moteurs à de nombreux amateurs de jeux vidéo non initiés en programmation.

Toutefois, Godot n'a aujourd'hui encore aucun jeu très connu. Cela s'explique par le fait que les développeurs indépendants prennent en général beaucoup de temps pour réaliser un jeu et que le logiciel et sa librairie sont encore très jeunes. Des jeux comme [Stardew Valley] qui ont pris 6 ans pour voir le jour arriveront donc sans doute dans les prochaines années, étant donné que plusieurs développeurs travaillent activement à ce jour sur Godot, et que sa facilité d'utilisation en fait un excellent point d'entrées aux amateurs par rapport à ses concurrents.

= Utilisation = Il est très facile de commencer à utiliser Godot. Il suffit de télécharger le logiciel sur le support de son choix sur [cette page]. La documentation est incluse mais est aussi accessible [ici].

Il est recommandé pour commencer de réaliser ce [tutoriel de création de jeu étape par étape].

= Contribuer = Il est possible de contribuer au développement de Godot en participant mensuellement sur [Patreon]. Chaque contribution est reversée aux développeurs afin de leur permettre de mettre à jour et améliorer régulièrement Godot. A ce jour, près de 1600 personnes contribuent à Godot pour un total de 11000€ par mois. Il s'agît des seuls profits que font les développeurs de Godot, car les jeux créés et vendus appartiennent entièrement aux créateurs, le moteur étant libre.



= Référence =
 * 1) https://godotengine.org/
 * 2) https://github.com/godotengine/godot
 * 3) https://docs.godotengine.org/en/stable/getting_started/scripting/gdscript/gdscript_basics.html
 * 4) https://docs.godotengine.org/en/stable/tutorials/assetlib/what_is_assetlib.html
 * 5) https://store.steampowered.com/app/404790/Godot_Engine/
 * 6) https://discord.com/invite/zH7NUgz
 * 7) https://www.patreon.com/godotengine

= Veille Technologique 2020 =
 * Année : VT2020
 * Sujet : Godot
 * [[Media:VT2020-Godot-Presentation.pdf|Présentation]]
 * Démonstration
 * Auteurs : Adrien Artaud