The professional/hobby distinction pretty much nails it: Unity Technologies is a company with a salable product, marketing, full-time development, and tens of mullions in venture capital, and jME really is a hobby project worked on by volunteers. Even with all the VC money behind them, I seriously doubt they're profitable yet, though I suspect (along with everyone else) that mobile games are going to be their cash cow if and when they do get into the black.

I don't know that "jMonkeyEngine" makes a very marketable name, though "Ardor3D" certainly does ... but the Ardor folks are even less interested in The Big Time.

The professional/hobby distinction pretty much nails it: Unity Technologies is a company with a salable product, marketing, full-time development, and tens of mullions in venture capital, and jME really is a hobby project worked on by volunteers.

Why are the more serious efforts choosing C++ and .NET rather than Java? Part of it is runtime issues, the way Mono lets you embed .NET in a platform neutral C++ app, while Java doesn't do that as well.

C++/.NET have tons of hobby projects on the level of jME and Ardor3D as well as the big guns like Unity and Unreal.

Part of it is that there's no java port to the iPhone whereas Mono works. So yes, there's reasons for big money to chase .NET in that case over Java, but the biggest factor here by far is still the capital investment. You don't have a company of over >200 people without paying them.

Part of it is that there's no java port to the iPhone whereas Mono works. So yes, there's reasons for big money to chase .NET in that case over Java, but the biggest factor here by far is still the capital investment. You don't have a company of over >200 people without paying them.

Obviously, lots of money is needed to pay 200+ salaried employees like Unity Technologies has. But what is preventing that kind of money from reaching a Java based game engine company? Or why are the people who are able to obtain that type of money not choosing Java?

I didn't mean developers of alternative Java VM implementations, I meant people developing software on top of VMs, eg. me. I could be considered quite an idiot for jumping on the Java bandwagon to make games precisely because the places where most of the money to be made are simply no-go areas for Java (consoles and phones). There are "ways" of course but they are crappy.

Of course, but funnily enough, unless you've been keeping things from us, I wasn't including you as a large-scale, venture-capital backed business! Also, I'm not talking about games developers, but game engine / ecosystem developers. That's what gene9's comment was talking about, and then I just don't think it's as simple as the "the JVM cannot be retargeted everywhere".

We Java types have always put up with lower performance in order to gain in other areas such as ease of development and ease of deployment. There was a time not long ago when Java was quite a bit slower. Mono will slowly close the gap. Well, there isn't even a gap, because Java just isn't available everywhere. It's basically only available on Windows, Mac OS, and Linux desktop machines, and that's why it's not gone anywhere useful since.

There was a time not long ago when Java was quite a bit slower. Mono will slowly close the gap.

Maybe! Be interesting to compare the levels of investment going into either platform. It looks like Mono is getting performance improvements by use of LLVM as a backend, which may also be the same thing that allows alternative JVM's to close the gap.

Well, there isn't even a gap, because Java just isn't available everywhere. It's basically only available on Windows, Mac OS, and Linux desktop machines, and that's why it's not gone anywhere useful since.

Apples and oranges. It's not like the "official" .net runtime is available everywhere either. Where's Android in your list too? Android Mono is hardly WORA. The primary benefit seems to be pushed as code reuse, which is already possible with a significant chunk of Java code.

Anyway, that's digressed a bit from the point I was disagreeing with you about above. I think we're mostly on the same page around state of the client-side (Oracle / OpenJDK) VM.

Except that Unity chose Mono, which is an alternative and under-performing .net VM.

Like it or not, the Mono VM runs infinitely faster on platforms to which no Java VM is available.

As much as I like Java and the Java ecosystem, if any of the widely portable Mono based systems (Unity, or, preferably, MonoGame) fully supported development on Linux, I'd almost certainly already have switched.

I'd be just as happy if inexpensive, non-kludgy methods existed to get decent Java access to all the applicable devices, of course. Dalvic on Android meets that threshold right now, but just *barely*, and the lack of direct Java 7 support is beginning to rankle.

Like it or not, the Mono VM runs infinitely faster on platforms to which no Java VM is available.

The whole advantage of Mono isn't speed, it actually runs slower than Microsoft's official CLR VM and the Java VM, it's portability. The Mono runtime can be embedded in any C/C++ project for any platform and run C# code. Java/Scala do not have a fleshed out option like that and are limited to platforms with full JREs (Win/Mac/Linux). Someone *could* write an embeddable Java/Scala compiler/runtime like the Mono guys did for C#, but that's non-trivial and no one has done that. Heck, the Mono guys could make their runtime platform neutral and support Java/Scala source code, but the people behind that project are too militantly pro-Microsoft to do something like that.

As much as I like Java and the Java ecosystem, if any of the widely portable Mono based systems (Unity, or, preferably, MonoGame) fully supported development on Linux, I'd almost certainly already have switched.

If you are ok with being limited to Win/Mac/Linux and writing your own middleware on top of OpenGL, Java/Scala are perfect. If you want more fleshed out middleware options and a larger community or a better path to iOS and consoles, C++/C# is a better bet. Personally, I'm cheering for Java/Scala to improve their prospects.

If I wasn't pursuing some non programming passions (medical field related), I would try to build an embeddable Scala compiler/runtime to compete with Mono. There is a major unfulfilled demand for that right now.

No JDK for iOS yet. And there will never be a JIT for iOS, just so we're all aware of the fact, as sproingie says; it's a restriction of the OS.

Cas

There is a communication gap. Of course, iOS can't run an official JRE and probably never will. We were talking about app app-embeddable like Mono that don't need official Apple approval. There is nothing stopping people from making an app-embeddable Java runtime that runs on iOS. The JavaFX group is already working on something like this and hopefully it won't be limited to JavaFX.

No JDK for iOS yet. And there will never be a JIT for iOS, just so we're all aware of the fact, as sproingie says; it's a restriction of the OS.

Cas

There is a communication gap. Of course, iOS can't run an official JRE and probably never will. We were talking about app app-embeddable like Mono that don't need official Apple approval. There is nothing stopping people from making an app-embeddable Java runtime that runs on iOS. The JavaFX group is already working on something like this and hopefully it won't be limited to JavaFX.

There is; it's bloody hard. Unfortunately I'm under NDA so I can't tell you why.

well every single app submitted to apple for the apple store is manually reviewed.so I would imagine its next to impossible - and even if it gets through it might be removed afterwards if they feel that the dont want that

I think Sindisil's point back there was it doesn't matter how theoretically faster a JVM is versus Mono on a platform which doesn't support Java. Mono can be put anywhere, which indeed, it has been.

I understand his point and yours. I think you're slightly misunderstanding mine, which is that we should be comparing like with like. Limiting your view of where Java runs to where HotSpot (or Oracle) is, while allowing for alternatives on the C# side, is what I was criticising.

Which is not to say I think that any option (commercial or community) is up to where MonoTouch is ... yet (hopefully! ).

java-gaming.org is not responsible for the content posted by its members, including references to external websites,
and other references that may or may not have a relation with our primarily
gaming and game production oriented community.
inquiries and complaints can be sent via email to the info‑account of the
company managing the website of java‑gaming.org