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
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
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.
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.
Eve Online runs on *python*, for instance. So does Blender. For a glue language, I am highly doubtful that the .net is that much faster than v8 or any other runtime to make a difference.
What ends up happening is you write scripts for lower compile times and ease of use. Then if something is too slow you rewrite it in native. The speed of the scripting tier lets you write less in native. Its not irrelevant at all.
And many of the idioms people abide by may no longer be relevant, or may only be relevant in niche but not general cases.
Its not always fun or sexy to rewrite a reference type to a value type to get around your GC but you _can_ do that in C#. Its a have your cake and eat it sort of language.
https://docs.microsoft.com/en-us/dotnet/csharp/language-refe...
[1] https://docs.microsoft.com/en-us/dotnet/csharp/programming-g...