9 ms·
It's not clear to me whether .NET 6 (and therefore C# support) is going to make 4.0 freeze. It's really just been one guy working on the dotnet6 branch, which i
by TillE 4y ago
It's not clear to me whether .NET 6 (and therefore C# support) is going to make 4.0 freeze. It's really just been one guy working on the dotnet6 branch, which is unfortunate.
I'm really excited for many features of Godot 4, and GDScript is perfectly adequate for UI glue code and stuff, but to write a serious game you really want C#.
- fezfight 4y agoDoes Godot's implenetation of C#/.net include the .net temeletry? https://github.com/dotnet/sdk/issues/14556 https://github.com/dotnet/sdk/issues/14556
- Kwpolska 4y agoThe telemetry isn’t in C#/.NET proper, it’s in the `dotnet` CLI utility.
- somehnacct3757 4y agoFormer professional game dev getting into Godot recently for fun and maybe for hire. What are the limitations of gdscript you allude to? Let's say I want to render an infinite scrolling hex grid. Why would c# excel or gdscript struggle?
- marcosdumay 4y agoGDscript is a bit slow. It's not an issue if you use it to keep track of a reasonable amount of in-game data and control the objects to render. But it becomes an issue if you decide to write game intelligence in it, or keep track of a lot of things. It also doesn't have an all integrated top of the market IDE, only the Godot IDE. (Although I don't think you gain anything from using a 3rd party IDE in a Godot game. Even less something like Visual Studio.)
- nemothekid 4y ago>but to write a serious game you really want C# I haven't followed game development in a long time, but has the industry moved to C#? I thought C# was limited to Unity and everyone else was still using C++?
- katamaritaco 4y agoYou're correct, the industry has not moved to C#. Not even close. The biggest player that uses it is Unity, but even they have their own special fork of Mono to get it to play nice. Full Disclosure: I work for a Microsoft/Xbox Studio.
- jbluepolarbear 4y agoUnity uses their own AOT compiler IL2CPP that translates C# code to C++. Mono is an option in builds, but most projects are using IL2CPP nowadays and have been moving to .Net core. Although C++ is king, C# has quickly caught up to be a close 2nd. Unity is used to make 50% of all mobile, pc, and consoles games (according to Unity https://unity.com/our-company https://unity.com/our-company).
- deleted 4y ago[deleted]
- _aavaa_ 4y agoThe Wiki page says it already supports C#. As completely on the outside, what is missing?
- nodja 4y agoIt doesn't support .NET6 specifically which is what parent is asking. According to the github issue it seems that the plan is that .NET6 support will be merged after godot 4 is fully released and stabilized.
- sfteus 4y agoGodot ~3.2+ has support for a slightly older version of C# via Mono, I think it's the equivalent of .NET 4.8. IIRC (and this could be wrong / have changed since I last looked into it) the idea was to re-work this in Godot 4 to provide more like bindings, so that users could opt to use Mono, .NET 6, CoreCLR, NativeAOT, or whatever version they preferred.
- deleted 4y ago[deleted]
- opyate 4y ago> but to write a serious game you really want C#. I asked someone on Twitter about this the other day [0], and I'm genuinely curious: what is it about C# that makes game development serious? 0. https://twitter.com/LegatXyotic/status/1552219744723402756 https://twitter.com/LegatXyotic/status/1552219744723402756
- Cloudef 4y agoProbably not serious, just that it's the language used in unity
- Waterluvian 4y agoI won’t use the word “serious” but my limited personal experience is that C# feels like the right balance between flexibility and performance. Rust is a joy to write in but I personally find that it asks a lot from you when you just want to ship a game that doesn’t need to be safety rated. C++ is a great choice but it’s C++ and I’m just not good enough to enjoy a language with fewer guardrails. It also has similar verbosity issues to Rust and (likely because I’m a noob) eats up a lot of my time chasing dumb bugs rather than making a game. I do most of my game dev in TypeScript because it’s a wonderful language and web is a great platform to easily ship toy games (my specialty). But it just isn’t fast enough for anything major.
- tokumei 4y agoI've built a few custom engines over the past decode, also shipped a few games. I've lately been working with Bevy in Rust, and I really absolutely love it. It's the perfect framework (for me). Bevy gets out of the way enough where I don't feel like I have to fight with it, which is what always annoyed me with actual game engines. Plus, I love working with Rust.
- tmp_anon_22 4y ago> isn’t fast enough for anything major. I think it could be fast enough if portability to different platforms wasn't such a high priority for game studios these days. Nobody wants to write typescript and then pay $50M for someone to port it for Switch or whatever.
- drmidnight 4y agoGDScript 2.0 has had some major performance improvements. While C# will still be faster, I find GDScript in Godot 4 to be viable now for things it wasn't in Godot 3. I still rely on GDNative for really performance critical systems though.
- benjaminjackman 4y agoSounds like Godot 4 is replacing GDNative with GDExtension. Just wondering if you have tried it out and have any thoughts. Is it a smoother experience / about the same etc.
- drmidnight 4y agoI have only briefly looked at it. All in all it looks very similar to GDNative, albeit a little cleaner. It will be nice to finally be able to expand functionality without recompiling the engine. Right now I rely on nim bindings for GDNative so it might be awhile before I make the change over, unless I decide to port my code to C++ or update the bindings myself.
- Mikeb85 4y ago> but to write a serious game you really want C#. This is ridiculous. You absolutely can write a full game with GDScript or GDScript and C++. Keep in mind Godot has first class support for C++. In fact, I'd argue C++ is far better than a bolted on C#...
- TheAceOfHearts 4y agoI don't have experience with GDScript, so please forgive the ignorant question. Does GDScript have good debugging, linting, and profiling tools? I'm not a game developer, but I'd love to hear your perspective on some of the criticisms I've encountered on the topic of scripting languages for game development. One of the main criticisms I've heard of using scripting languages for game development is that they tend to be lacking when it comes to tooling. The second form of criticism I've heard is that type issues become a serious problem as the size of game code growns past a certain point.
- Mikeb85 4y agoI mean, GDScript doesn't exist outside of the Godot engine. Debugging for it is the same as debugging a Godot game. All GDScript functions are C++ methods. Also, there are type hints if you want. If you're going to be doing a very large, ambitious game, odds are you'll also be creating your own C++ methods and thus debugging using C++ tools and the game engine tools...
- cardanome 4y ago> Does GDScript have good debugging, linting, and profiling tools? Yes, everything is provided for. No need for separate tools, Godot comes with everything out of the box. (Of course "good" needs to be defined but I personally had no problems.) > The second form of criticism I've heard is that type issues become a serious problem as the size of game code growns past a certain point. GDScript has gradual typing support. You get at least TS-level of type safety if you want (but without the headache of TS.) Also C# is not traditionally a game development language. It has automatic garbage management for which game development happens to be on of the few areas where that is not exactly ideal. C# is mostly interesting for people already knowing C# or when there are specific performance needs where C# still outperforms GDScript (though personally I would rather write the performance sensitive parts in C++ or Rust). Most people are highly advised to at least try GDScript. (Also it is very easy to mix and match languages. You can have parts in C#, parts in GDScript, parts in C++, no need to commit early to a specific language.)