Tuesday, June 28, 2005

Java Gaming on the Desktop Could Be A Good Thing

I'm not a big gamer and the games I do play have to be pretty darn good. I have been playing World of Warcraft since it was in open beta and can't get enough of that. It runs on Windows and Mac. I was impressed that they released a Mac version. It's about time OSX starts getting some popular ports so those guys and gals can spend some money as well. :)

I have never owned a Mac and with the change to x86 I am leary to go out and buy a new one right now. But I do run Linux. Not because I hate Windows or anything but because for a developer Linux has everything I need and more. And it is free after all. Don't get me wrong, I have no problems paying for good software. Espeically good games like WoW. But the linux world is really hurting I think. There are a lot of reasons why games just won't work on Linux. The most obvious is most games written today are written for Windows and therefor use DirectX which Linux doesn't really have. And for some reason not a lot of people are developing commercial games in pure opengl. But I am not real sure why.

Ok, where does Java fit into all this rambling? I see Java as a good future gaming platform. Right now there are some pretty good API's like LWJGL and JOGL along with some Scenegraphs like Xith and jME which use JOGL and/or LWJGL. They are still pretty young in the grand scheme of things but I think in a few years we could see a shift in what language major games are being developed in. I know all you die hard C++ fanatics out there will disagree. In fact one of my best friends will argue till the day we die about how C++ is better than Java. But that's not really what this blog is about.

I think portability is going to be a major attraction to the gaming industry in the coming years. WIth OSX on the rise (maybe) in popularity and with Linux distros like Ubuntu getting better and better, more people are going to want to run their favorite apps on the OS of thier choice instead of running the OS because the app requires it. This is where Java fits perfectly. Yes, there are some good C/C++ multiplatform tools out there. QT, SDL, Ogre to name just a few. I've used all 3 and they are good. But you still have to be really careful when developing in these as to what OS you are really working on. Java on different platforms, so long as there is a VM, just works. Plain and simple. C++ works, most of the time. Compilers really differ. And that is the big difference. The compiler. You still have to compile source code for the various platforms. And that isn't always fun.

WIth the opengl wrappers for Java like JOGL and LWJGL there is still compiling for various supported platforms for the native libraries. But these are compiled and tested and done. You just use them and all you care about is Java.

I don't think Java is quite there in terms of what API's are provided for gaming. But it's getting better. Puzzle Pirates is a recent success story. A MMORPG written in Java and was picked up by a commerical distributor. And there are a few Java games on the shelves at Best Buy if you look really carefully.

True platform independency, ease of distribution via Java WebStart, a great community; all these things could make Java the new gaming language in the near future. I wouldn't mind that so much.

No comments: