this post was submitted on 15 Jul 2023
29 points (87.2% liked)
Open Source
31205 readers
137 users here now
All about open source! Feel free to ask questions, and share news, and interesting stuff!
Useful Links
- Open Source Initiative
- Free Software Foundation
- Electronic Frontier Foundation
- Software Freedom Conservancy
- It's FOSS
- Android FOSS Apps Megathread
Rules
- Posts must be relevant to the open source ideology
- No NSFW content
- No hate speech, bigotry, etc
Related Communities
- !libre_culture@lemmy.ml
- !libre_software@lemmy.ml
- !libre_hardware@lemmy.ml
- !linux@lemmy.ml
- !technology@lemmy.ml
Community icon from opensource.org, but we are not affiliated with them.
founded 5 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
I normally use C++ for making new games or misc projects from scratch but I think I could save myself some work using C#. I've done a lot of Rimworld modding and I like the way C# works. I really like how versatile C++ is though. If I want to make my program work on an old Athlon, I can compile with 32 bit and sse1. I would be surprised if it were possible to do that with any C# compiler but I also haven't researched to find out.
I'm not particularly familiar with the C# ecosystem, only with the rather similar JVM ecosystem, and well, in that, there is a way to compile to machine code ahead of time (called "GraalVM"; the equivalent in C# might be ".NET Native").
But as I understand, that still needs a garbage collector and still does many unoptimal things, like constantly cloning strings or doing array boundary checks on every single array access.
So, yeah, I wouldn't either bet money on being able to run on an old Athlon with that.
Someone here has already recommended Rust and I'll extend that recommendation. You get that same performance/target flexibility. It's more abstracted than C++ and in particular much harder to shoot yourself in the foot with. And it's quite popular in the open-source community.
It does not use a garbage collector, so some patterns are more difficult than in C#. But since you're doing gamedev, you'll probably be using a game engine with Entity-Component-System architecture (personally, I'm using Bevy) and that bypasses a lot of those memory management gotchas.
One more downside to Rust, is that it's still rather young. I do feel like Bevy is in the generation of game engines that will probably survive long-term, but it's still doing breaking API changes frequently and you don't get a fancy GUI editor like with Godot...