4 ms·
Not just JetBrains: surely Unity has been another strong driver of cross-platform .Net use. If nothing else it’s certainly provided a reason to use C# for folks
by Doches 3y ago
Not just JetBrains: surely Unity has been another strong driver of cross-platform .Net use. If nothing else it’s certainly provided a reason to use C# for folks not coming from a Windows platform app developer background!
Certainly for me C# is “the Unity language.” I’m dimly aware that it has some vague Microsoft association, but I don’t think I’ve even seen a piece of MS tooling for it in…many years. Unity + JetBrains Rider has been a pleasant gamedev environment.
- TillE 3y agoUnity is definitely a huge reason that C# has continued to grow outside the enterprise-y space. It's unfortunate that they're still stuck on their old fork of Mono, because Microsoft's tooling (and their runtime) is really good. You can write a C# game in Godot now and seamlessly use the Visual Studio debugger without any janky plugin.
- ClimaxGravely 3y agoHave you had trouble debugging unity with VS in the past? I can't recall ever having any issues personally.
- qwytw 3y ago> stuck on their old fork of Mono Didn't they switch to .NET Core years ago? Of course for many platforms you have to use their CPP transpiler which complicates some things that might be possible in normal C#.
- gentleman11 3y agoOur project is .net 2. You can opt for .net 4 but there are issues that come up and we don’t want that headache until things become smooth
- NekkoDroid 3y agoTo clarify: what you are talking about is .NET Standard 2.X and .NET Framework 4.X Unity currently does not support .NET (Core) at all.
- chrisdirkis 3y agoThey're in the process of swapping out their Mono fork for a modern Core fork, which I believe they're planning on upstreaming changes to too. A few years ago, someone demonstrated a 1-week hackathon version of a game build running on Core, and recently (2023-12), someone on the forum noted that they have an internal Editor running on Core. Most modern large games use IL2CPP, the C++ transpiler; it's a requirement on iOS, nearly a requirement on Android, and almost certainly a requirement on consoles. Perf is often nicer and it's harder to mod/hack, which some devs like. Sibling poster notes different .Net compatibility settings. Modern Unity versions allow you to be in either .Net 4.6(ish) mode or .Net Standard 2.0/2.1 mode. The latter comports more with Core's APIs, though is pretty old at this point. And, since we're on similar topics, Unity currently supports C# 9.0, minus a few minor features[1]. This is a massive improvement compared to a few years ago, where we were stuck with C# 4 or 6, and means you can write pretty modern and performant C#. Especially notable is Span support, a way of representing (basically) non-owning array slices. [1] https://docs.unity3d.com/2023.3/Documentation/Manual/CSharpCompiler.html https://docs.unity3d.com/2023.3/Documentation/Manual/CSharpC...
- sanktanglia 3y agoFunny enough moving to il2cpp made it even easier to hack/mod/access since now all class info and offsets and other info are exposed, easily with full type info. I'm just about done with a lib that can fully read all of the il2cpp related data externally, it's been a fun project
- pjmlp 3y agoUnity is the only reason C# has been seriously taken by the game development community, after internal politics killed Managed DirectX and XNA. Nowadays DirectX team doesn't even bother to shy away from it, it is up to Unity or other third parties to provide bindings to .NET. Compare this with Swift bindings to Metal, or Java ones to OpenGL ES (Android might also get WebGPU bindings to Java, lets see what Android 15 brings).