The ignorance of the android industry about good porting solutions like Libgdx

I could but… the bottom line is: it’s a shiny turd.
Very simple to get in to, very hard to make something complex and nicely working and polished code-wise. Nearly impossible to do good QA / tests / debugging unless you really know everything about the inner workings.
Basically the amount of work to create something good/complex in Unity, is as much as with a professional engine, I guess even more. But this work would be extremely frustrating kind of work.
If you want to make something very simple, very fast and it can have bugs (basically a prototype), then you may use Unity. In other cases building up expertise with any other engine/framework will be a better use of time.

The knowledge you gain from Unity is useless and specific to Unity’s behavior, not all of it, but major frustrating parts. If you learn libgdx, virtually all these concepts can be found in other big engines as well and will help if you have to work with something else too.

Well hey - if I wouldn’t know that feeling, I would be a C++ game programmer by now I guess :smiley:

Mono is what Unity uses, even on Windows. LibGDX targets it on iOS. Seems to work all right.

True, though RoboVM is becoming the preferred way for libgdx to target iOS.

Doesn’t this VM layer decrease performance? Has anyone used it for a real, released game?

I dunno, I hear bad things.

That’s not correct. C# has a lot of small features java is missing (Properties, Real Generics, operator overloading, optional parameters, Extension Methods, LINQ, nice operators like “??”, the “var” keyword, real dynamic objects etc.). All in all those are mostly some small code syntax improvements, but it makes working with C# a pleasure and removes a big amount of boilerplate code :smiley: in my opinion (this is important, it’s only my opinion) C# is simply the more beautiful language than java (i notice it everytime i code something in java). But I still have to say, that I prefer eclipse over visual studio.

There is SharpDevelop which I used instead of Visual Studio because I can’t handle Visual Studio back when I did C# on Windows.

C# as a language IMO beats java hands down. The problem with C# is mainly on the server side, where linux is king. It’s lagging horribly in mature concurrency libraries and frameworks, smaller choice of libraries in general, etc…

My only gripe about C# is it’s kind of a kitchen sink language. They had the benefit of seeing what java did poorly and improved on it, but it’s kind of done in an ad hoc manner.

The one big thing about C# is the ability to pass objects by value and by reference and lack of type erasure plagued generics. The downside is that the APIs are fairly bad, threading support was/is bad, and where ever else it differs from Java it favors error prone syntax and semantics to precise source code. (Of course I haven’t done much C# programming since Visual Studio 2005 was beta, but I still read new C# source code.)

Java was also designed in an ad hoc manner. The downside to the way languages like C, C++, Java, and C# are developed is they all have dumb quirks leftover from their origins that will never disappear.