-
-
Notifications
You must be signed in to change notification settings - Fork 3.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Remove "Core" from .NET SDK, simplify Mono mention #5984
Conversation
I mean, Godot's C# module is indeed built with Core 3.1 specifically, support for 5 and 6 is coming in 4.x (see godotengine/godot-proposals#2333). |
I don't think it matters what the C# module is built with, rather it matters what devs can use to build games. Godot 3.x currently works with the .NET 6.0 SDK and it's good to be able to use new C# versions (C# 10) because of the newer version of Roslyn included in the .NET 6.0 SDK than the .NET Core 3.1 SDK. The runtime side is different and unrelated. The Godot 3.x runtime is Mono, not .NET Core 3.1. godotengine/godot-proposals#2333 tracks an update to use .NET 6 as the runtime. |
Sure, as long you're sure the bundled Mono runtime will support those newer language features. And as long as the solution format is supported. I guess we call it |
Yeah, this is true, it's only a subset. There are some very nice features in there, though! Something nice about the .NET SDK is that it chooses the default C# version it compiles using on the target framework in the csproj, so using the .NET Core 3.1 SDK actually compiles your code as C# 7.3, and the .NET 6.0 SDK chooses the same C# version. You have to go in and modify the csproj to change the C# version away from that. This means even if someone installs the .NET 6.0 SDK, they can't accidentally use any C# features that won't work in the Mono runtime. That (and other ways that the .NET SDKs are careful to be backward compatible) ends up making it safe to have people install it rather than an old 3.1 SDK. 🙂 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The documentation should still state that Mono is required when building the engine from source.
We should specify "(previously known as the .NET Core SDK)" or similar, to avoid confusing users. We don't want a situation where people install an SDK for .NET Framework 4.x and wonder why it isn't working.
Hmm, is it really necessary to call this out in this particular section? My impression is that this paragraph is for using Godot rather than building it from source. It seems to me the reader might not even know that that term means. The next section (Additional notes) still mentions "If you are building Godot from source, install the latest stable version of Mono". Regardless, I'll add it in, and I guess I'll just leave that as my suggestion/opinion.
👍 |
@31 That's a good point, it is stated only slightly further down the page. However, I don't want these different parts of the page to seem to contradict each other, if one place says it's not required as a blanket statement, and another place tells you to go do it to build the engine from source. |
I've removed this and added the original Mono paragraph back in with the push. I don't really mind this part all that much--the main things I was driving for in this PR are removing "Core" and "3.1" and cleaning up the bigger Mono paragraph a bit now that 3.2.3 is fairly old. |
Thanks! |
Cherry-picked to the |
The .NET Core SDK is simply the .NET SDK as of .NET 5. This is what you see on https://dotnet.microsoft.com/download.
This PR changes the text to remove "Core", and removes the reference to .NET Core 3.1 to avoid confusing people. (Some people see 3.1 and assume they must download that version, rather than the latest stable.)
Also removes the reference to Godot 3.2.3 to make the paragraph simpler to read.
This applies to 3.x.