C# can run on Windows, Linux, Mac OS, iOS, Android, Universal Windows Platform (UWP), and even in Docker.
It has supported linux and Mac OS for at least 10 years through the mono project, and iOS and Android through Xamarin for many years as well.
.NET Core is a new option for building cross platform apps for linux and Mac OS.
Personally I run a C# ASP.NET MVC website on my linux server, and also ran an FPS game server written in C# on my linux server as well.
Those were done using Mono, but I would consider .NET Core if I were starting a new project from scratch.
Check out this article for an in depth explanation of the various cross platform options:
https://blogs.msdn.microsoft.com/cesard … to-use-it/
If that is too confusing, just know that I've built .NET 4.0 C# game servers that run on linux, and clients for them that run on windows.
And getting my server code to run on linux or windows mostly just required me to use the Path class so I wouldn't hit issues because linux and windows use different file path conventions, for example slash instead of back slash.
So it is definitely cross platform if you start with that goal in mind.
Edit:
I want to clarify that you can still hit cross platform difficulties with C#, mostly when you reference native dlls.
Game servers are much easier to make cross platform than game clients, because they rely on fewer and smaller libraries.
For instance, a game client needs a graphics library and an audio library, but the game server does not.
So paying attention to which native libraries you reference and whether or not they are cross platform is important.
~ Ian Reed
Visit
BlindGamers.com to rate blind accessible games and see how others have rated them.
Try my free JGT addon, the easy way to play Japanese games in English.
Or try the free games I've created.