Work in progress

The content of this page was not yet updated for Godot 4.2 and may be outdated. If you know how to improve this page or you can confirm that it's up to date, feel free to open a pull request.

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.

../../_images/scripting_camera_shake.gif

Langages de script disponibles

Godot offers four gameplay programming languages: GDScript, C#, and, via its GDExtension technology, C and C++. There are more community-supported languages, but these are the official ones.

You can use multiple languages in a single project. For instance, in a team, you could code gameplay logic in GDScript as it's fast to write, and use C# or C++ to implement complex algorithms and maximize their performance. Or you can write everything in GDScript or C#. It's your call.

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.

../../_images/scripting_gdscript.png

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.

  • Pas de récupérateur de mémoire, car cette fonctionnalité finit par gêner lors de la création de jeux. Le moteur compte les références et gère la mémoire pour vous dans la plupart des cas par défaut, mais vous pouvez également contrôler la mémoire si vous en avez besoin.

  • 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#

As Microsoft's C# is a favorite amongst game developers, we officially support it. C# is a mature and flexible language with tons of libraries written for it. We were able to add support for it thanks to a generous donation from Microsoft.

../../_images/scripting_csharp.png

C# offre un bon compromis entre les performances et la facilité d'utilisation, bien que vous deviez faire attention à son ramasse-miettes.

Note

You must use the .NET edition of the Godot editor to script in C#. You can download it on the Godot website's download page.

Since Godot uses .NET 6, in theory, you can use any third-party .NET library or framework in Godot, as well as any Common Language Infrastructure-compliant programming language, such as F#, Boo, or ClojureCLR. However, C# is the only officially supported .NET option.

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

Projects written in C# using Godot 4 currently cannot be exported to the web platform. To use C# on that platform, consider Godot 3 instead. Android and iOS platform support is available as of Godot 4.2, but is experimental and some limitations apply.

C++ via GDExtension

GDExtension allows you to write game code in C++ without needing to recompile Godot.

../../_images/scripting_cpp.png

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 is the best choice for performance. You don't need to use it throughout an entire game, as you can write other parts in GDScript or C#.

When working with GDExtension, the available types, functions, and properties closely resemble Godot's actual C++ API.

Résumé

Les scripts sont des fichiers contenant du code que vous attachez à un nœud pour étendre ses fonctionnalités.

Godot supports four official scripting languages, offering you flexibility between performance and ease of use.

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#.