Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Does anyone know why they switched from C# to Go?


Project 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.


I 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)


No 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.


What frameworks were you using in the C# version? And which ones in Go?


Does anyone know why would you try to develop an opensource game in C# in the first place?


Presumably 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.


It works in frameworks like Unity Engine, but otherwise it ends up like Space Engineers Windows-only which is a shame.


A 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.


As 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.


Why not? What are you implying?

BTW, there are a lot of opensource games written in C#. More than there are written in Go actually.


Don't know, maybe because C# follows up on Assembly, Pascal, C and C++ as the next language being widely adopted by the games industry?




Consider applying for YC's Fall 2026 batch! Applications are open till July 27.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: