Languages used in Godot
The “main” languages in Godot are GDScript and Visual Script. The main reason to choose them is the level of integration with Godot Engine, as it makes the experience smoother; both have an editor integration, while C# and C++ are edited in a separate IDE. If we are a big fan of statically typed languages, go with C# and C++ instead of GDScript.
GDScript
GDScript is the primary language used in Godot. It has many positive points compared to other languages of gaming according to its high integration with Godot:
- It is simple, elegant, and designed to be familiar for users of different languages such as Python, Lua, squirrel, etc.
- It loads and compiles blazingly faster.
- The editor integration is gladness to work with, with code completion for nodes, signals, and some other items of the scene which has been edited.
- It has vector types built-in and making it efficient for the heavy use of linear algebra.
- It supports multiple threads efficiently as statically typed languages- one of the limitations that made us avoid VMs such as Lua, Squirrel, etc.
- It uses no garbage collector, so it trades a small bit of automation (most objects are counted, by determinism.
- Its dynamic nature is making it easy to optimize a section of code in C++ if more performance is required, all without the recompilation of the engine.
If we are undecided and have experience with programming, especially the dynamically typed languages, then go for GDScript!
VisualScript
Beginning with 3.0, Godot offers the Visual Scripting. It is an implementation of a “blocks and connections” language but adapted to how Godot works.
Visual scripting is an excellent tool for non-programmers or experienced developers who want to make part of the code more accessible to others, for the game designers and artists.
It can be used by programmers to build state machines or custom visual nodes workflows.
Example, a dialogue system.
ASP.Net/C#
Microsoft’s C3 is favorite amongst game developers, and we added official support for it. C# is a mature language with many codes written in it, and support was added to a generous donation form Microsoft.
It has a good tradeoff between performance and ease of use, in spite of one be aware of the garbage collector.
C# is the best choice for companies. A large number of programmers familiar with it, and less time can be spent learning Godot, and more time can be spent programming in it.
Godot uses the Mono, net runtime, any third-party .Net library, or framework used for scripting in Godot, as well as any common language infrastructure-compliant programming languages, such as F#, Boo or ClojureCLR. In practice, however, C# is the only official supported .Net option.
GDNative/C++
One of the brightest additions for the 3.0 release: GDNative allows scripting in C++ without recompiling Godot.
Any C++ version is used, and mixing compiler brands and releases for the generated shared libraries works perfectly, to use of an internal C API Bridge.
This language is the best choice for performance and does not use in the whole game like other parts can be written in GDScript and Visual Script. However, Godot is actual C++ API.
More languages can be made available by the GDNative interface, but keep in mind we don’t have official support for them.