I felt guilty for posting negative press about my beloved Java, even if it was the truth from recent experience. So, negative impressions of applets aside, why is Java good for game development? A few thoughts from my POV:
-
Productivity - Java is by far the most productive language I’ve ever worked in (though there are obviously quite a few I haven’t tried). The language lends itself to writing good quality maintainable code but in the same breathe lets you prototype at top speed.
-
Rich and Stable SDK - the SDK to second to none in feature set and quality. It’s painful using other languages after having the Java SDK to hand. More over it’s getting bigger and better all the time (JBDC 4 amazed me for instance)
-
Mature Platform - Java has been around 10+ years now and is used everywhere. Outside of the games world it’s an incredibly popular language meaning that the platform is always being tested on the grand scale. Due the open process the whole thing revolves around this always means that bug reports and fixes are always coming in (though not always appearing quickly enough)
-
Quality Tools - whether you’re a Idea, NetBeans or Eclipse fan - we as Java developers have the best general development tooling there is. The Java development tool set has been around almost as long as the platform and since (in the majority of cases) the tools are written in Java, they also benefit form the above.
-
Library integration - we have a fantastic integration with the core open gaming technologies via LWJGL (and some other libraries as I understand :)). OpenAL, OpenGL and input variants are all available to us with minimal effort. (what we could do with here is the DirectX binding sorted out).
-
Cross Platform - For desktop and browser based games we have minimal porting work to get from Windows, to OSX, to Linux. Even more than that, if you learn to use Java you can go to J2ME and Android getting you onto the mobile platform. Now with BlueRay taking the lead we’ll be able to use Java to develop to the massive number of players that’ll be around soon. (what we could do with here is integration with some console somewhere).
-
Performance - Java is fast, really fast. Ok, you can better it with some time consuming work in the C world but where managed languages are concerned it’s damn quick. Looking at games development and comparing to Flash et al, it’s really obvious that Java is fast.
-
Community - Even though Java is seen as the underdog in the games development world the loyal community are still producing great projects like Xith, JME, ODE, JBox2D, PulpCore, JPCT, JOODE, JBullet, GTGE and LWJGL to name a but a few. These enablers are making it quicker and easier to prove how good a platform Java really is. The high quality of these technologies is partly due to their diligent authors, but partly due to how powerful and constructive Java is as a language.
So while I’m finding other technologies endearing for custom tasks at the moment I can’t help but thing the future of games development is going to include Java.
Kev