Linked by kap1 on Thu 25th Apr 2013 11:45 UTC
Java The Lightweight Java Game Library provides a simple API to OpenGL, OpenAL, OpenCL and Game Controllers enabling the production of state of the art games for Windows, Linux and Mac. Version 2.9.0 contains a complete rewrite of the mac backend, support for FreeBSD, new OpenGL/OpenCL extension and bug fixes. The library is used by many high profile games such as Minecraft, Spiral Knights, Revenge of the Titans, Project Zomboid, Starsector, JMonkeyEngine, etc.
Thread beginning with comment 559684
To view parent comment, click here.
To read all comments associated with this story, please click here.
Savior
Member since:
2006-09-02

Probably going to get bashed for this


Yes, you will...

If people are wanting to write cross platform games, Mono Game is probably a better option.


... because you just dropped this without any hint as to why Mono would be better. I, for my part, would not like to see Mono on my machine -- although I must admit, Java has lost most of its appeal now that it's fallen into Oracle's clutches.

Either way, I think the argument is moot anyway, as Unity runs on all three platforms.

Reply Parent Score: 4

Neolander Member since:
2010-03-08

Not defending the OP, his post was indeed lacking argumentation regarding why Mono Game would be a better option than Java equivalents. But if I were to write a multiplatform game in a managed language, I'd probably also look in the direction of Mono-based tech first.

First because Java runtimes are cursed with suckiness on almost all platforms where I've had the displeasure of dealing with them. The Windows JRE is the textbook example a user-hostile piece of garbage, Linux runtimes may or may not work in a seemingly random fashion, the mere idea of installing the JRE on iOS or Windows Phone is banned by the respective platform owners, and thanks to OS X 10.8's "Gatekeeper" feature I'm not even sure that one can still install the JRE on a Mac without tweaking system preferences. In short, the only major consumer platform where Java software works well today and should continue to work well tomorrow is Android, because it's Java-based itself.

Meanwhile, the Mono runtime works okay on every platform which I've tested it on, and you can very easily statically link it to executables so as to ease deployment to "annoying" platforms like iOS (even if you need to keep the terms of the LGPL in mind when doing so).

Also, the Unity toolchain, which you mentioned yourself, is Mono-based, and it's miles ahead of anything Java-based which I know of. The main difference being that it's not just a set of libraries targeted at game development, but rather something closer to a full multiplatform game development toolchain.

I'm not saying that there is something intrinsically wrong with the Java language or that it's impossible to write good games in it, mind you. I've played several very nice games written in Java. I'm only arguing that the Java ecosystem seems less suitable than the Mono one for that specific purpose.

Edited 2013-04-25 14:05 UTC

Reply Parent Score: 5

moondevil Member since:
2005-07-08

There are a few native compilers worth mentioning like

- Avian (http://oss.readytalk.com/avian/)

- RobotVM (http://www.robovm.org/)

- CodenameOne (http://www.codenameone.com/)

What I don't understand is why Sun, now Oracle, make it such a strong political issue not to offer AOT compilation on their SDK. Specially when it is part of the SpotVM and embedded Java SDKs.

Just let it be like most environments for FP languages and offer JIT + AOT options to developers.

Once I read in a forum post from someone stating internal information that this was a big political issue inside Sun, not sure if it is really true.

Reply Parent Score: 3

snowbender Member since:
2006-05-04

First because Java runtimes are cursed with suckiness on almost all platforms where I've had the displeasure of dealing with them. The Windows JRE is the textbook example a user-hostile piece of garbage, Linux runtimes may or may not work in a seemingly random fashion,..


It seems to be very trendy to bash Java these days. Do you care to explain why you think the Java runtime on Windows is a textbook example of a user-hostile piece of garbage? I also don't understand why you think Linux runtimes may or may not work in a seemingly random fashion.

I have used the Oracle JVM on both Windows and Linux and never experienced any problems with those. I have used the IBM JVM on linux and did experience some compatibility issues. Finally, I've also used the OpenJDK on linux. With the OpenJDK I noticed some warnings from software that insists it wants Oracle JDK (Intellij IDEA), but I didn't really notice any incompatibilities.

... the mere idea of installing the JRE on iOS or Windows Phone is banned by the respective platform owners, and thanks to OS X 10.8's "Gatekeeper" feature I'm not even sure that one can still install the JRE on a Mac without tweaking system preferences. In short, the only major consumer platform where Java software works well today and should continue to work well tomorrow is Android, because it's Java-based itself.


The drawback of relying on locked down systems, is living with the fact that someone else decides for you which piece of software you are allowed to run.

Android is not really "Java-based". A lot of Android aplications are written in a programming language with the same syntax as Java, but they run on the Dalvik VM, which is a different thing than a JVM. AFAIK, you cannot just run any piece of Java software on Android.

Meanwhile, the Mono runtime works okay on every platform which I've tested it on...


No comments about the availability of the appropriate libraries, since I am not familiar enough with those. However, I believe that the JVM is a lot more advanced, and a lot more powerfull and performant than the Mono runtime. I would expect that to be a drawback for games. Maybe it doesn't matter that much when most of the work is actually done in the external libraries that are themselves written in C or C++.

Edit: Ok, also interesting to know that "Mono Game" is an open source implementation of the Microsoft XNA4 Framework.

Edited 2013-04-26 01:19 UTC

Reply Parent Score: 2

lucas_maximus Member since:
2009-08-18

Mono works on iOS, Android, Linux, Windows, MacOSX.

The Windows Phone SDK works with MonoDevelop.

C# is a better language IMHO than Java (even thought they are both similar).

As I said bastion is a good example of a successful game built using the Framework.

Edited 2013-04-26 16:27 UTC

Reply Parent Score: 3