5 ms·
Does anyone know why they switched from C# to Go?
by sydd 6y ago
Does anyone know why they switched from C# to Go?
- de_watcher 6y agoDoes anyone know why would you try to develop an opensource game in C# in the first place?
- Octoth0rpe 6y agoPresumably due to the wealth of C# code/libraries available to game devs. It's an incredibly popular language in that area, certainly more popular than Go. There are plenty of good reasons not to use C#, but we shouldn't pretend that there aren't plenty of good reasons _to_ use it for specific problem spaces.
- de_watcher 6y agoIt works in frameworks like Unity Engine, but otherwise it ends up like Space Engineers Windows-only which is a shame.
- deleted 6y ago[deleted]
- mywittyname 6y agoA lot of indy devs are using Unity. Hell, a lot of non-indy devs use it. So that's not a big deal. There are some other frameworks that use C# and are cross-platform. Monogame is the cross-platform replacement for MS's XNA, which targets most of the major game systems out there.
- de_watcher 6y agoAs the OpenDiablo2 developer has confirmed: cross-platform C# is a pain. Yes, I understand that Windows is big and there are a lot of C# developers/fans here who immediately scream "What? C# can do anything!!!", but in practice MS doesn't support opensource where it matters and when it matters.
- numlock86 6y agoWhy not? What are you implying? BTW, there are a lot of opensource games written in C#. More than there are written in Go actually.
- pjmlp 6y agoDon't know, maybe because C# follows up on Assembly, Pascal, C and C++ as the next language being widely adopted by the games industry?
- essial 6y agoProject lead here. I switched from C# to go for multiple reasons. One was that we were having strange platform-specific issues between different operating systems with the runtime. Another reason was due to some design issues causing the code to be very difficult to work in. I was originally going to re-write it in C, but when I saw go, I immediately fell in love with it. In my mind it sits somewhere between C and C++. Yes it has a GC, but it's not obtrusive. Plus the language is simple and nice to work with. Regardless of what language I use, someone's going to say it's a "bad" choice and others will say it's a "good" choice. Personally I believe the language is just a tool, and go is working out extremely well for us so far.
- steeleduncan 6y agoI love go, but I've never thought of it for game projects due to the GC. Have you had to do anything to avoid problems with the GC? (e.g. manual runtime.GC() calls, or work to avoid generating garbage)
- horan116 6y agoNo premature optimizations from the GC perspective that I am aware of. So far it has not gotten in the way from what I can see. The Go team has made some excellent improvements. The team has been doing work profiling along the way already even in this early phase.
- sydd 6y agoWhat frameworks were you using in the C# version? And which ones in Go?