Godot 4.0 (regular vs. .NET version) Pros & Cons of each version?

I’m just getting into this “Learning Godot 4.0” course. Since I’ve done some research I know that Godot offers support for multiple scripting languages, and the two officially supported scripting languages are GDscript and C#.

It would be nice, if you could, to include an overview of the main options here, in video #2 of this course, to help beginners like myself understand and feel comfortable with the differences. By downloading the “regular” version (not the .NET version), are we limiting future projects somehow? Would we have to uninstall the “regular” version and download the .NET if we want to start learning that also, after finishing the course? And…what are the downsides (if any) of downloading the .NET version now? Does it somehow disable coding in GDScript?

Thanks.

After a quick Google search, I found This post, which basically outlines the differences.

Quoting:

Summary

I would start off with GDScript since you will find that it has the greatest presence in documentation, tutorials, and other online resources. And while it has the worst performance of the 3, it is very easy to learn and use.

For performance, the order goes C++ > C# > GDScript. For support/usability, it goes GDScript > C# > C++. However, there is nothing locking you into only one. Each scripting language can use the core Godot interfaces to load, instantiate, and access properties/methods/signals of any given Object type, regardless of which languages are involved.

The “best choice” is whichever language is a best fit for the type of programming you are doing, the type of application requirements you have, and your personal preference in coding style.

For example, if you just want to get in quickly and build stuff, GDScript is probably the best one.

If you want to have a balance of usability and performance, C# is the best option. However, it is more verbose than GDScript and requires your end-user to have Mono installed on their machine. In return though, you also get strong static typing support,

If you don’t want to put requirements on your end-users, but still want great performance, then NativeScript C++ is a good solution. However, in NativeScript’s current state, usability is quite low: compared to just making a script and running it, it’s a much bigger hassle to download C++ bindings headers, generate C++ bindings, create a bindings library, create source code, compile the source code and bindings library into a dynamic library, wrap the library in a GDNativeLibrary resource, and then create NativeScript resources that point to classes inside the library. Very little of the process is automated, and there are plenty of gotcha’s I’ve seen reported where the intricacies of NativeScript C++ development are not well documented.

Another alternative is writing C++ modules, but while it is much easier to get things running than with NativeScript, it requires you to build the engine from source and requires you to rebuild the engine every time you make changes rather than just rebuilding the small library in your project. Modules are a good solution when you have more complicated game systems that you want to function as built-in APIs/systems in the engine as a whole.

My recommendation is to start off with GDScript, at least while you are getting familiar with Godot, and then migrate to C# / C++ to see how their workflow feels. Then you can better decide which one(s) best suit your needs.

And you can mix and match all of them in one project if you want from what I understand, though personally, I would avoid doing that.

hi @dvinmn and welcome to the community :wave:

since the editors dont ‘install’ as such, they are run from within a folder.
we can have both versions on the PC just in separate folders no problems at all.

ive tried the C# mono builds for previous versions as i wanted to see how it compared to other engines ive used.

not tried the .NET v4 version as yet. but thats purely down to what they were saying in the godot dev logs, in that the C# implementation isnt quite up to where they want it to be and theres still alot to add functionaliy wise.

but me personally, i started learning with GDScript for a couple of reasons.
as a beginner to godot, i felt that GDScript was its out of the box language of choice and its pretty much what most of the tutorials i have seen or read used.

once i was comfortable with the node types and what they were, i could go and look up what the corresponding c# implementation would be.

thankfully the official docs have vastly improved and most of the content now has GDScript and C# code sample snippets.

from what i understand so far, it doesnt look like there are any limitations on what can be achieved over one version to the other. most would say at the beginner to intermediate levels, it would be more down to personal preference on the language they like to use.

Thanks for the reply!

Good insight, thanks! I’m definitely sold on starting with GDScript as well. For one thing, many (most?) tutorials and courses use GDScript. Additionally, the official Godot 4.0 help documentation (Scripting languages — Godot Engine (stable) documentation in English) does a pretty great job of outlining the differences, strenghts and weaknesses, etc.

I think eventually it might be beneficial to new learners to update this course to at least touch on some of this when choosing the “standard” version of the software to load, and skipping the .NET version. Otherwise it ends up being sort of a “magic box” approach. Just my opinion.

Thanks again for taking the time to respond.

1 Like

ive relayed the idea forward :slight_smile:

This topic was automatically closed 20 days after the last reply. New replies are no longer allowed.

Privacy & Terms