I am thinking of creating a game just for fun. What are the advantages in programming in these languages?
I believe Unity and Java both have their own embeddable applet thing and C# has a software package (XNA Game Studio) ready for developing games for Windows Phone, XBOX 360 and PC.
Just some criteria:
I want to develop games for PC.
Allow me to put my support behind C# and particularly XNA.
With the use of Mono (including paid libraries like MonoTouch and MonoDroid), you can get C# running pretty much anywhere (eg). C# is certainly fast enough for game development. And the runtimes are very much stable. It can run in-browser via Silverlight.
In my opinion, C# is superior to Java as a language, especially for game development, and especially considering tool and library support - especially XNA.
XNA is a game development library (similar to DirectX in scope) and there are also plenty of libraries built for XNA. In addition is has by far the best library of sample code available.
XNA runs natively on Windows, Xbox 360, Windows Phone 7 and (an older version) on Zune.
On PC, C# and XNA each require runtimes. Microsoft's ClickOnce installer makes this very easy. It gives your user a bootstrap installer, which then downloads and installs the runtimes from Microsoft as necessary. The .NET 4.0 Client Profile is 41MB and XNA 4.0 is 7MB. This answer has more details.
In addition there are projects that port XNA (2D API only) to other platforms. I am currently funding a project called ExEn with the goal of bringing a high-quality 2D XNA implementation to the browser (Silverlight), iOS, Android and Mac.
If you can't wait for ExEn, you could try some of the libraries it is based on - SilverSprite (Silverlight) and XnaTouch (iOS). SilverSprite is quite buggy, XnaTouch is a bit better.
(At the moment, if you want to do a 3D game on these platforms, Unity is perhaps a better option.)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With