WARNING: This is NOT a complete working client. If you just want to play the game, for now just use the official client, which you can get from here
So, call me bonkers, but it seems I may have accidentally started to write a new client for Planet Forever :)
For those that can't be bothered to read a wall of text and want to jump straight in and find out, click the links below.
Well, I've always wanted to learn how to write a game. So, I bought myself a book (http://www.packtpub.com/jmonkeyengine-3-0-with-java-programming-beginners-guide/book) and set to work. At first, there was no intention to write an actual client for the game, it was just that Greth had uploaded some games assets for other reasons, and I figured it would be neat to try and mimic some of the game I am so obsessed with :) It kind of snowballed from there!
Well, mainly because thats what I do, and I know the language well. But, there are ton of other reasons.
Learning C++ would take a lot of time I could actually be spending on making something.
I use Linux so I wanted something that was easily cross platform. By choosing Java this means Windows, Linux, Mac OSX and even Android will be possible using the same code.
I chose JMonkeyEngne
as the base for my efforts. This conveniently has support for Ogre models, so loading assets is going to be way easier.
More people know Java, it would probably be easier for others to get involved in the project.
But you might say .. “Java, isn't that terribly slow?”. Well, perhaps it's not the language you'd think of first when it comes to 3d games, MMOs especially. However ..
Java is not that slow. It is a mature technology with good runtimes available.
JMonkeyEngine is "Shader Based"
. This effectively means MOST of the hard rendering work is done by the GPU, same as any other modern engine in any other language.
Much of Earth Eternal is interpreted anyway, i.e. written in a scripting language (Squirrel to be precise). So if all the currently scripted bits were rewritten in Java, really this would be no different to the current game. Add to that Java has a good JIT
compiler, and in the end the performance of this part of the game would likely be better.
Earth Eternal is an old game now, based on 8 year old tecnology for the most part. Newer cards have features that help boost performance.
Computers now have more cores. Wherever possible my client will take advantage of this. For example, JMonkeyEngine supports multithreaded physics, and many other background tasks can be moved off onto different cores improving performance of the actual game.