Hello.
I have long considered Python as a language for game development. But there were such situations, that inconvenient syntactic constructions (for example decorations), etc.
I'm interested in cross-platform programming. I want to develop online games, a server on linux, a Windows client.
Tell me please. Does C # support cross-platform programming?
C ++ is very complicated for me because of pointers and other complex elements, and the syntax and simplicity of C # I like.
Thanks in advance!

Thumbs up

Hi Jonikster.
If you looked into c# you should know that it isn't cross-platform. It was made by microsoft so it only runs on windows. You need a language like java, python, one of those. Like I've said before you really need to find a language and stick with it. It will be easier for you to learn. If you keep bouncing between languages because you don't understand one thing or another you will never be able to learn programming.

Thumbs up

3 (edited by Ian Reed 2017-05-04 02:47:37)

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.

Thumbs up

Hi Ian Reed.
Thanks for setting me straight, I guess I'm way behind. Last time I dipped into c#, it was for windows exclusively. It's good to know that it has now become cross-platform. I might check it out soon.

Thumbs up