La philosophie de design de Godot
Maintenant que vous avez pris vos marques, parlons de la conception de Godot.
Chaque moteur de jeu est différent et répond à des besoins différents. Non seulement ils offrent une série de fonctionnalités, mais la conception de chaque moteur est unique. Cela conduit à des flux de travail différents et à des façons différentes de former les structures de vos jeux. Tout cela découle de leurs philosophies de design respectives.
Cette page est là pour vous aider à comprendre le fonctionnement de Godot, en commençant par certains de ses piliers fondamentaux. Il ne s'agit pas d'une liste des fonctionnalités disponibles, ni d'une comparaison de moteurs. Pour savoir si un moteur peut convenir à votre projet, vous devez l'essayer vous-même et comprendre sa conception et ses limites.
Veuillez regarder Godot explained in 7 minutes (vidéo en Anglais) pour un aperçu des fonctionnalités du moteur.
Design et composition orientées objet
Godot embrasse le design orienté objet à sa racine avec son système de scènes flexible et sa hiérarchie de nœuds. Il essaie de rester éloigné des modèles de programmation stricts pour offrir un moyen intuitif de structurer votre jeu.
D'une part, Godot vous permet de composer ou d'agréger des scènes. C'est comme des préfabriqués imbriqués : vous pouvez créer une scène BlinkingLight et une scène BrokenLantern qui utilise le BlinkingLight. Ensuite, créez une ville remplie de BrokenLanterns. Changez la couleur du BlinkingLight, sauvegardez, et toutes les BrokenLanterns dans la ville se mettront à jour instantanément.
En plus de cela, vous pouvez hériter de n'importe quelle scène.
Une scène Godot peut être une arme, un personnage, un objet, une porte, un niveau, une partie d'un niveau… tout ce que vous voulez. Elle fonctionne comme une classe en pur code classique sauf que vous êtes libre de la concevoir en utilisant l'éditeur, en utilisant seulement le code, ou en mélangeant et en faisant correspondre les deux.
C'est différent des prefabs que l'on trouve dans plusieurs moteurs 3D car on peut ensuite en hériter et étendre ces scènes. Vous pouvez créer un Magician qui étend votre Character. Modifiez le Character dans l'éditeur et le Magician se mettra également à jour. Cela vous aide à construire vos projets afin que leur structure corresponde au design du jeu.

Notez également que Godot offre de nombreux types différents d'objets appelés nœuds, chacun avec un but spécifique. Les nœuds font partie d'un arbre et héritent toujours de leurs parents jusqu'à la classe Node. Bien que le moteur comporte certains nœuds comme les formes de collision qu'un corps physique parent utilisera, la plupart des nœuds fonctionnent indépendamment les uns des autres.
En d'autres termes, les nœuds de Godot ne fonctionnent pas comme les composants de certains autres moteurs de jeu.

Sprite2D est un Node2D, un CanvasItem et un Node. Il a toutes les propriétés et les caractéristiques de ses trois classes parents, comme les transforms ou la possibilité d'afficher des formes personnalisées et de faire un rendu avec un shader personnalisé.
Formule tout compris
Godot essaie de fournir ses propres outils pour répondre aux besoins les plus courants. Il dispose d'un espace de travail dédié aux scripts, d'un éditeur d'animation, d'un éditeur de tilemap, d'un éditeur de shader, d'un débogueur, d'un profileur, de la possibilité de rechargement à chaud local et sur des périphériques distants, etc.

The goal is to offer a full package to create games and a continuous user experience. You can still work with external programs as long as there is an import plugin available in Godot for it.
C'est aussi en partie pour cela que Godot propose son propre langage de programmation GDScript, parallèlement à C#. GDScript a été conçus pour les besoins des développeurs et des designers de jeu, et est étroitement intégré au moteur et à l'éditeur.
GDScript vous permet d'écrire du code en utilisant une syntaxe basée sur l'indentation, tout en détectant les types et en offrant la qualité d'autocomplétion d'un langage statique. Il est également optimisé pour le code de jeu avec des types intégrés comme les Vectors et les Colors.
Notez qu'avec GDExtension, vous pouvez écrire du code haute performance en utilisant des langages compilés comme C, C++, Rust, D, Haxe, ou Swift sans recompiler le moteur.
Il est à noter que l'espace de travail pour la 3D ne comporte pas autant d'outils que celui pour la 2D. Vous aurez besoin de programmes externes ou d'extensions pour éditer des terrains, animer des personnages complexes, etc. Godot fourni une API complète pour étendre les fonctionnalités de l'éditeur via du code de jeu. Cf. L'éditeur Godot est un jeu Godot ci-dessous.
Libre
Godot offers a fully open source codebase under the MIT license. This means that the codebase is free for anyone to download, use, modify, or share, as long as its license file is kept intact.
All technologies that ship with Godot, including third-party libraries, must be legally compatible with this open source license. Therefore, most parts of Godot are developed from the ground up by community contributors.
N'importe qui peut brancher des outils propriétaires pour les besoins de ses projets - ils ne seront tout simplement pas livrés avec le moteur. Cela peut inclure Google AdMob, ou FMOD. Tous ces outils peuvent être fournis sous forme de plugins tiers.
D'autre part, une base de code ouverte signifie que vous pouvez apprendre et étendre le moteur à votre guise. Vous pouvez également déboguer facilement des jeux, car Godot imprimera les erreurs avec une pile de trace, même si elles proviennent du moteur lui-même.
Note
Cela n'affecte en rien le travail que vous faites avec Godot : il n'y a aucune condition attachée au moteur ou à tout ce que vous faites avec.
Géré par la communauté
Godot est fait par sa communauté, pour la communauté et pour tous les créateurs de jeux. Ce sont les besoins des utilisateurs et les discussions ouvertes qui déterminent les mises-à-jour pricipales. Les nouvelles fonctionnalités apportées par les développeurs du moteur se focalisent souvent sur ce qui profitera d'abord au plus grand nombre d'utilisateurs.
Cela dit, bien qu'une poignée de développeurs y travaillent à plein temps, le projet compte plus de 600 contributeurs au moment de la rédaction. Des programmeurs bénévoles travaillent sur des fonctions dont ils peuvent avoir besoin eux-mêmes, de sorte que vous verrez des améliorations partout dans le moteur à chaque version majeure.
L'éditeur Godot est un jeu Godot
L'éditeur Godot fonctionne sur le moteur de jeu. Il utilise le propre système d'interface utilisateur du moteur, il peut recharger à chaud du code et des scènes lorsque vous testez vos projets, ou exécuter du code de jeu dans l'éditeur. Cela signifie que vous pouvez utiliser le même code et les mêmes scènes pour vos jeux, ou construire des plugins et étendre l'éditeur.
Cela conduit à un système d'interface utilisateur fiable et flexible, puisqu'il fait tourner l'éditeur lui-même. Avec l'annotation @tool, vous pouvez exécuter n'importe quel code de jeu dans l'éditeur.
RPG in a Box is a voxel RPG editor made with Godot. It uses Godot's UI tools for its node-based programming system and for the rest of the interface.
Mettez le mot-clé @tool au début de n'importe quel fichier GDScript et il s'exécutera dans l'éditeur. Cela vous permet d'importer, d'exporter, de créer des plugins comme des éditeurs de niveau personnalisé ou bien de créer des scripts avec les mêmes nœuds et API que vous utilisez dans vos projets.
Note
L'éditeur est entièrement écrit en C++ et est compilé de manière statique dans le binaire. Cela signifie que vous ne pouvez pas l'importer comme un projet typique qui aurait un fichier project.godot.
Moteurs 2D et 3D séparés
Godot propose des moteurs de rendu 2D et 3D dédiés. Ainsi, l'unité de base pour les scènes 2D est le pixel. Même si les moteurs sont distincts, vous pouvez faire un rendu 2D en 3D, 3D en 2D, et superposer des sprites et des interfaces 2D avec votre monde 3D.