What are the reasons and against the development of the game in Java / C # (including XNA) / Unity?

I am going to create a game just for fun. What are the benefits of programming in these languages?
I believe that Unity and Java have their own embedded applets, and C # has a software package (XNA Game Studio), ready to develop games for Windows Phone, XBOX 360 and PC.

Only some criteria:

  • How compatible is the platform is the language (can it work on Mac, I want it to definitely work on PC)
  • Are there any libraries for developing games (please include them)?
  • What is the main performance of the runtime? (Often failures?)
  • Can I run it in a web browser?
  • Should user install runtime?
  • Any other things that make a language good ...

I want to develop games for PC.

+4
source share
5 answers

Let me support C # and especially XNA support.

With Mono (including paid libraries like MonoTouch and MonoDroid) you can get C # to work pretty much anywhere ( for example ). C # is definitely fast enough for game development. And the working time is very stable. It can work in a browser through Silverlight.

In my opinion, C # is superior to Java as a language, especially for game development, and especially considering the support of tools and libraries - especially XNA.

XNA is a game development library (similar to DirectX in the field), as well as many libraries built for XNA. In addition, the best sample code library is available today.

XNA runs initially on Windows, Xbox 360, Windows Phone 7, and (an older version) on Zune.

On PC, C # and XNA require runtime. The Microsoft ClickOnce installer makes this very easy. This gives your user a bootstrap setup, which then downloads and sets Microsoft's runtime as needed. The .NET 4.0 client profile is 41 MB, and XNA 4.0 is 7 MB. This answer contains more details .

In addition, there are projects that port XNA (2D API only) for other platforms. I am currently funding a project called ExEn to implement a high-quality implementation of 2D XNA in a browser (Silverlight), iOS, Android, and Mac.

If you cannot wait for ExEn, you can try some of the libraries on which it is based - SilverSprite (Silverlight) and XnaTouch (iOS). SilverSprite is pretty buggy, XnaTouch is a little better.

(At the moment, if you want to make a 3D game on these platforms, Unity is probably the best option.)

+9
source

To be clear, Unity is not a language (such as C # and Java), it is a development tool and runtime. You write your game logic in C #, UnityScript (a flavor of JavaScript) or Boo (a flavor of Python). The development tool is quite stable and powerful and gives small teams a fantastic pipeline for adding 3D models, textures, sounds, shaders, etc.

In my (rather long) professional career as a game developer, I used only one development tool that was superior to Unity, and it was my own tool developed over the years by a team of first-class engineers.

There is no Unity equivalent in the Java world that I know of. XNA will give you a start if you write direct C #, but you still have to create / integrate a lot of fundamental things (physics, particle systems, collision detection) before you even get to the point that you can complete day 1 with Unity.

Standalone Unity games can be created for Mac or Windows. A separate assembly does not require the user to install Mono and is very stable in my experience. There is also Unity Web Player, which allows you to run games in A-Class browsers on Mac and Windows. The web player is installed on only about 35 million browsers (it sounds a lot, but Facebook has more than 500 million users).

I know that I look like a shill, but Unity is really a great tool.

+5
source

I no longer think of a programming language. it depends on your target platform.

  • xbox + pc> xna, .net
  • android> java
  • html5> javascript
+1
source

For developing games, C # is much better than Java or JavaScript.
If you use Unity3D , you can use C # in JavaScript, and you should.

Unity3d

Pros:

  • Unity3D works on: Windows, Mac, XBOX, PS3, WII, iPhone, Android.
  • Unity has a built-in physics engine (if you want to use it in a 2D game, you need to determine the axis programmatically).

Minuses:

  • Costs for any platform other than a PC or Mac.

Xna

Pros:

  • XNA works in: Windows, XBOX, Phone7.
  • XNA is free for all platforms.

Minuses:

  • Limited to Microsoft products. More coding required.

If you are just starting out and want to make a 3D game , I would look at Unity3D.
If you want to make a 2D game , XNA or Unity3D will be good.
Unfortunately, it does not work on Linux .:(

+1
source

I used Unity quite widely, and I would strongly recommend it. It applies to all platforms (you need to buy licenses), but it is a very good engine. Worth a look! Plus, the fact that you can evolve in C # as it uses mono is a massive plus.

0
source

Source: https://habr.com/ru/post/1340591/


All Articles