I'm looking into learning C# and I was curious as to what it would be good for, especially in game design whether it be mobile/browser/console/etc.
What can you use C# for?
It's a general-purpose language, so you can use it for anything.
That said --
* Mobile platforms (when you're building your own game engine) have better support for Java (on Android) Obj-C (on Apple) and C/C++ (combined with Java or Obj-C code).
* Browsers without plugins only support a single language: JavaScript.
* Browsers with plugins can support ActionScript, Java, C# and others.
* The Unity game engine (which has a browser plugin, a mobile version, a desktop version, etc) is designed around C#.
I'm a fan of C#. It's cross platform, compiles very fast (compared to c++) and you can get more done with less lines of code than C++. In those regards, it's a more "productive" language. I use it for all my prototyping, and sometimes the prototype is the final project since it performs well enough. I thought it was pretty easy to learn, and is more than capable for any number of projects from Game editors, Rendering engines, to simulation backends.
The OpenTK library provides bindings for openGL/AL/CL as well as all the math primitives (vector/matrix) that you could need. It also provides input and windowing API's as well.
Xamarian and Unity both use C# and are able to target mobile platforms. Unity can target browsers and consoles as well. If you're looking for a pure browser based game, then C# may not be the right tool.
cheers,
Bob
C# might be the most versatile choice out there. I'd be hard pressed to think of a language that can be used effectively in more applications and systems.
C# might be the most versatile choice out there. I'd be hard pressed to think of a language that can be used effectively in more applications and systems.
Very comforting, seeing as I went ahead and purchased a book based on learning C# while also learning Unity. :)
So easy that i dont need a book to learn, its too similar to vb and java.
I use it for gamedev (xna/monogame + xamarin basis == my game can run on pc, win8 tablets, windows phone, iphone/ipod, ipad, android)
i use it for tools (wpf)
i use it for wp8 and win8 apps.
i use it for server side code (mostly nancyfx based, on asp.net or owin).
i use it for local windows services (typically nancyfx, selfhost)
i use it for tiny tools (command line apps that do something quick for me)
i use it for realtime game server communication (through signalr)
i use it for raytracing (no simd and no gpu == comparably slow, but i just love doing it).
so i use it for anything except web-front-end, where i use html5, css3, javascript (es5).
i could use it on linux and osx (mono), and even on tiny controllers like arduino-thingies (.net micro framework).
i could use it to write (most of) my own os, if i ever have too much time :)
so it's very flexible.