Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
Langages de script
Cette leçon vous donnera un aperçu des langages de script disponibles dans Godot. Vous apprendrez les avantages et les inconvénients de chaque option. Dans la partie suivante, vous écrirez votre premier script en utilisant GDScript.
Les scripts s'attachent à un nœud et étendent son comportement. Cela signifie que les scripts héritent de toutes les fonctions et propriétés du nœud auquel ils sont attachés.
Par exemple, prenons un jeu où un nœud Camera2D suit un navire. Le nœud Camera2D suit son parent par défaut. Imaginez maintenant que vous voudriez que la caméra tremble lorsque le joueur subit des dommages. Cette fonctionnalité n’étant pas intégrée à Godot, vous devrez y attacher un script et programmer le tremblement de la caméra.
Langages de script disponibles
Godot propose quatre langages de programmation de jeu : GDScript, C# et, via sa technologie GDExtension, C et C++. Il existe d'autres langages pris en charge par la communauté, mais ceux-ci sont les langages officiels.
Vous pouvez utiliser plusieurs langages dans un même projet. Par exemple, dans une équipe, vous pouvez coder la logique de jeu en GDScript, car il est rapide à écrire, et utiliser C# ou C++ pour implémenter des algorithmes complexes et maximiser leurs performances. Ou vous pouvez tout écrire en GDScript ou en C#. C'est à vous de décider.
Nous offrons cette flexibilité pour répondre aux besoins des différents projets et développeurs de jeux.
Quelle langue dois-je utiliser ?
Si vous êtes un débutant, nous vous recommandons de débuter avec GDScript. Nous avons créé ce langage spécifiquement pour Godot et les besoins des développeurs de jeux. Il possède une syntaxe légère et simple et offre l'intégration la plus étroite avec Godot.
Pour C#, vous aurez besoin d'un éditeur de code externe comme VSCode ou Visual Studio. Bien que C# soit désormais supporté, vous en trouverez relativement moins de ressources d'apprentissage par rapport à GDScript. C'est pourquoi nous recommandons C# principalement aux utilisateurs qui ont déjà une expérience avec ce langage.
Examinons les caractéristiques de chaque langue, ainsi que ses avantages et ses inconvénients.
GDScript
GDScript est un langage de programmation orienté objet et impératif construit pour Godot. Il est fait par et pour les développeurs de jeux pour vous faire gagner du temps dans le codage des jeux. Ses caractéristiques comprennent :
Une syntaxe simple qui conduit à des fichiers courts.
Compilation et temps de chargement ultra-rapides.
Intégration parfaite à l'éditeur, avec complétion de code pour les nœuds, les signaux et d'autres informations provenant de la scène à laquelle cela est attaché.
Types de vecteurs et de transformations intégrés, ce qui permet une utilisation efficace de l'algèbre linéaire, indispensable pour les jeux.
Supporte le multithread aussi efficacement que les langages statiquement typés.
No tracing garbage collection, as this feature eventually gets in the way when creating games. The engine counts references and manages the memory for you in most cases by default, but you can also control memory if you need to.
Saisie graduelle. Les variables ont des types dynamiques par défaut, mais vous pouvez également utiliser des indices de type pour des vérifications de type fortes.
GDScript ressemble à Python puisque vous structurez vos blocs de code à l'aide d'indentations, mais il ne fonctionne pas de la même manière en pratique. Il s'inspire de plusieurs langages, dont Squirrel, Lua et Python.
Note
Pourquoi n'utilisons-nous pas directement Python ou Lua ?
Il y a quelques années, Godot utilisait Python, puis Lua. L'intégration de ces deux langages a demandé beaucoup de travail et présentait de sérieuses limitations. Par exemple, le support du threading était un grand défi avec Python.
Développer un langage dédié ne nous demande pas plus de travail et nous pouvons l'adapter aux besoins des développeurs de jeux. Nous travaillons actuellement sur des optimisations de performances et des fonctionnalités qu'il aurait été difficile de proposer avec des langages tiers.
.NET / C#
Comme le C# de Microsoft est un des langages préférés des développeurs de jeux, nous le soutenons officiellement. C# est un langage mature et flexible avec des bibliothèques écrites pour lui. Nous avons pu ajouter son support grâce à un don généreux de Microsoft.
C# offre un bon compromis entre les performances et la facilité d'utilisation, bien que vous deviez faire attention à son ramasse-miettes.
Note
Vous devez utiliser l'édition .NET de l'éditeur Godot pour écrire des scripts en C#. Vous pouvez le télécharger sur la page Téléchargement du site Web de Godot.
Étant donné que Godot utilise .NET 8, vous pouvez en théorie utiliser n'importe quelle bibliothèque ou framework .NET tiers dans Godot, ainsi que n'importe quel langage de programmation compatible Common Language Infrastructure, tel que F#, Boo ou ClojureCLR. Cependant, C# est la seule option .NET officiellement prise en charge.
Note
Le code GDScript lui-même ne s'exécute pas aussi rapidement que le code C# ou C++ compilé. Cependant, la plupart du code de script appelle des fonctions écrites avec des algorithmes rapides dans le code C++ à l'intérieur du moteur. Dans de nombreux cas, l'écriture de la logique de jeu en GDScript, C# ou C++ n'aura pas d'impact significatif sur les performances.
Attention
Les projets écrits en C# utilisant Godot 4 ne peuvent à l'heure actuelle être exportés sur la plateforme web. Pour utiliser C# sur cette plateforme, préférez Godot 3. Le support des plateformes Android et iOS sont disponibles dans Godot 4.2 mais de manière expérimentale et certaines limitations s'appliquent alors.
Voir aussi
Pour en savoir plus sur le C#, rendez vous à la section C#/.NET.
C++ via GDExtension
GDExtension vous permet d'écrire du code de jeu en C++ sans avoir besoin de recompiler Godot.
Vous pouvez utiliser n'importe quelle version du langage ou mélanger les marques et les versions de compilateurs pour les bibliothèques partagées générées, grâce à notre utilisation d'un pont(bridge) API C interne.
GDExtension est le meilleur choix en termes de performances. Vous n'avez pas besoin de l'utiliser tout au long d'un jeu, car vous pouvez écrire d'autres parties en GDScript ou en C#.
Lorsque vous travaillez avec GDExtension, les types, fonctions et propriétés disponibles ressemblent étroitement à l'API C++ réelle de Godot.
Résumé
Les scripts sont des fichiers contenant du code que vous attachez à un nœud pour étendre ses fonctionnalités.
Godot prend en charge quatre langages de script officiels, vous offrant ainsi une flexibilité entre performance et facilité d'utilisation.
Vous pouvez mélanger les langages, par exemple, pour mettre en œuvre des algorithmes exigeants avec C ou C++ et écrire la majeure partie de la logique du jeu avec GDScript ou C#.