What is the long-term vision for C# in Godot? #4604
Replies: 5 comments 5 replies
-
@aaronfranke has alerted me to the fact that a huge issue is the fact that currently, the effort to port Godot to .NET 6 has no funding. They are even proudly advertising Godot on their main game engine portal site: https://dotnet.microsoft.com/en-us/apps/games/engines Maybe we can make something happen? |
Beta Was this translation helpful? Give feedback.
-
@Kopkako neikeq did two commits last 2 days in the dotnet6 branch! |
Beta Was this translation helpful? Give feedback.
-
Godot as an open source project in nature has a simple logic for these things: For something to happen, somebody has to want to work on it and others must agree that is wanted. C# support is clearly wanted and there are contributors working on it. It definitely could be better funded but we failed to get better funding from Microsoft the past years. We will try again this one later in the year. |
Beta Was this translation helpful? Give feedback.
-
I actually managed to start a bit of a thread on Twitter regarding MS funding possibilities: https://twitter.com/ghostbutter/status/1531096815797383169?s=20&t=7gzhovaGBXQ0Hz1kK3O32w @reduz Hope that was okay/not overstepping any boundaries - I felt like contacting Scott directly would be a good idea since he is very active in advocating for .NET and I had recently watched a bunch of his videos. Maybe something good can come from this? |
Beta Was this translation helpful? Give feedback.
-
I can't answer the main questions as they're not directed at me, but I'm going to clarify two things:
|
Beta Was this translation helpful? Give feedback.
-
Currently we have GDScript as the official, integrated language for scripting in Godot - It's quite intuitive and seems to work well for many users.
However, there are lot of things that people desire that GDScript does not and might never offer: Strong, static typing, external tooling/proper IDEs, real refactoring possibilities, and a mature library ecosystem used outside of Godot (especially important for non-gamedev projects).
C++ modules are an alternative to GDScript, but the workflow is completely different and basically completely bypasses the editor. It's good for very specific, usually performance-oriented problems but not for writing general gameplay code.
For developers wanting a good middle-ground, I thought, C# support was added a few years ago.
I am not overly zealous about C# per se, but I think the language works really well for game development and scripting - I think it's a great fit for Godot and from the last community polling, I think about 20% of developers seem to already use mainly C# with Godot, which I find a lot.
C# is currently the language that's closest to "first-party-supported" as it gets: It is listed alongside GDScript in the docs, there are quite in-depth sections about using it with Godot and it's the only language that gets out of the box support by virtue of the Mono Editor build.
I am aware that currently @neikeq (and @vnen) are working on transitioning over to .NET 6 from the Mono runtime, which I love.
However, and that's the point of this thread: I feel very unclear about where the majority of the Godot Core Team stands on what role C# should play in Godot's future.
@YuriSizov wrote in #2430 that
I don't know if this is the majority opinion here but it makes me really worried about building my own, potentially many-year future projects with Godot. It makes a huge difference to me if C# is "officially supported" in Godot or has the same status as any other language such as Rust or Nim, that can be used with native bindings.
If 4.0 would really ship without C#, as suggested as a possibility here, this would mean that 20% of current devs could then not use the latest Godot with their chosen language, at all, for possibly quite some time - it would be a disaster.
I do not want to depend on third-party bindings, I need stable and reliable integrations that allow me to focus on my game, and I'm worried that C# might even be "dropped", at least officially, by Godot at some point and relegated to the same position as basically "any other language".
My opinion is that it would be great if Godot actually doubled down on supporting C# from 4.0 onwards - it's a great opportunity for engine growth as well. There is a quickly growing migration from disappointed Unity developers (myself included) that have worked with C# for many years. Attracting those would be amazing for Godot imho, but it can only be done if the core team sees this as a focus area.
As it stands now, I kind of get the feeling that (at least some of) the Godot Core devs view implementing C# as some sort of unfortunate accident, better to be forgotten. I truly hope this is not at all the case, though.
Maybe @reduz can shed some light on what the long-term vision here is?
Beta Was this translation helpful? Give feedback.
All reactions