Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What are the reasons for and against developing a game in Java/C#(XNA included)/Unity?

Tags:

java

c#

unity3d

xna

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:

  • How platform compatible is the language (can it run on Mac, I want it to definitely be able to run on PC)
  • Does it have libraries for game development (include these please)?
  • How is the basic performance of the runtime? (Do crashes often occur?)
  • Can it be run in a web browser?
  • Does the user have to install a runtime?
  • Any other things that make the language good...

I want to develop games for PC.

like image 930
liamzebedee Avatar asked Dec 04 '22 23:12

liamzebedee


1 Answers

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

like image 175
Andrew Russell Avatar answered Dec 13 '22 04:12

Andrew Russell