Is it worth using C# in Godot?

Godot Version

4.4.1

Question

I am learning C# and planned to use it in Godot later, but I have seen information on the Internet more than once that there will be many different problems when using C# and that it is better to use gdscript. Is this really true? I already know that C# limits the number of supported platforms to which games can be exported from Godot, but I am only interested in Windows for now. What other problems await me if I program in C#?

I’ve been using C# for almost 10 years now, and Godot with C# for over 3 years, and I enjoy it much more than GDScript. Most of the “issues” other people face stem from the fact that they never had to set up and use an IDE before, and if you’re not familiar with C#, then of course it’s going to be more difficult to make anything. In my opinion, GDScript is great at rapid prototyping, or if you’re looking to release your game on web (the only platform you can’t release on YET with C# unless you use Godot 3), but if you want to make a bigger game, then using C# in the long run will offer more benefits. The only “downside” I can think of is that the time between debugging sessions can be a little longer, as you also have to compile your project every time you want to test something.

5 Likes

I’ve been using C# for around 8 years too but I just started figuring out Godot and I think the support is awesome. The only thing that I didn’t figure out yet is how to debug the game? The breakpoint on both VS and VSC are not getting hit, should I use the Godot editor for debugging?

1 Like

I use JetBrains editors, Rider in specific. It has incredible support for Godot out of the box, but you need to make sure you set the correct IDE in your godot settings (enable advanced mode, and scroll down to mono settings)

2 Likes

Thank you I will try when I’m home

I have only ever used C# since starting to use Godot. Other than some annoyances (such as not being able to export structs, and enums to say arguments in an animation player) I haven’t really had any major issues.

Oh and automatic creation of methods when signals are connected would be nice as well (its on the list hopefully).

You have to edit the launch.json file if you want to properly debug with breakpoints, if you are using VS Code for example.

This video might help as well:

1 Like

I like c# but on the other hand i hate dotnet (mono) with dotnet 9.0 supporting nativeAOT and Godot too i think i can move to c# now because nativeAOT compiling directs to machine code instead of dotnet IL.

Is the current Godot version already using .NET 9 and NativeAOT??

Thank you so much, I will try those tips :ok_hand: The previous information I found was for the Mono version that’s why it didn’t work, and I didn’t give much thought to it after that

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