That said, it locks you into using stuff like mono and stuff for cross platform which makes me a sad.
Microsoft's .Net Core runtime (now just .Net) has supported Linux and MacOS since 2016, so this information has been out of date for 7+ years.
https://devblogs.microsoft.com/dotnet/announcing-net-core-1-...
The standard libraries are still an allocation party, of course, but that can be supplemented in an engine context.
Being able to fix a bug without resetting memory state is a huge ergonomic advantage in game development where generating the right memory state can be incredibly complex and depend on a ton of very specific and hard-to-reproduce factors. Not to mention incredibly slow.
Visual Studio works with UE and calls that "Edit and Continue" and it works in C++, too.
If you're a AAA dev you give up a lot of that iteration because performance overtakes you, but there's little reason some indie 2d platformer will want to deal with even 30 second iteration times (which would be blazing quick for a AAA setup). C# is a mature, familiar environment for devs with similar syntax to C++ that can get decent performance as long as you maintain some discipline (for starters, no LINQ)
Maybe ChatGPT6 can port the UE C++ codebase to C# and we can call it UE6
I’ve not played around with any game development for a long while - does C# end up popular here just because people are familiar with Unity? I definitely get that C++ is not the most productive language - though improving perhaps.
Simply loading the .NET Core CLR is not difficult [1] - but unless things have changed since I last tried binding C++ interfaces to C# is time consuming, especially if you want to be able to implement an interface in managed code.
[0] - https://mono-ue.github.io/
[1] - https://learn.microsoft.com/en-us/dotnet/core/tutorials/netc...
Probably even a C or C++ background would allow you to do that. Maybe even knowing js is enough.
It previously used UE4 and C# integration was all working with that but, as soon as they found out that they could get access to Source 2, they took the opportunity. Makes sense because the team is significantly more experienced with the Source engine since most of them have previously worked on or with Garry's Mod.
Never interfere with an enemy while he’s in the process of destroying himself.
But most of my issues have been with engine philosophy, where Unreal has bent over backwards to expose things to their visual scripting language. It feels like every single feature has a mandate to work in a blueprint tech demo, and as a result few of them are pleasant to code against and almost none of them work together coherently. These are not issues that depend on the language used.
Whether or not it's justified is another manner. I haven't personally dealt with the modern Unreal Engine but natively supporting C# would, at the very least, make people a lot more likely to switch over.
That being said as a non mobile guy who occasionally dabbles in engine stuff I'll be migrating to Unreal for good now. I haven't been a paying customer for a while now but I used to pay for Unity back in the super early days of AR.
Or I guess take another serious look at Godot :D
I'm also surprised though they haven't just gone and added C# support as a first class option, it seems like such an obvious win.