Sorry it’s taken me this long to get back to the project, I had a good idea for a post but it didn’t work out and it sort of stalled everything.
Java
Writing software for multiple platforms can be very difficult, partly down to the knowledge required, but mostly due to the extra time that’s needed. So anything that makes the process easier, or in this case eliminates the problem, is a good thing. Java is a software development platform that uses an extra layer of programming between the program and the computer. This means that once the middle layer has a native version for an operating system (Windows, Mac OSX, Linux, etc.) all software programmed in Java will work in that system. It’s not a perfect system, you’ll never see a Crysis type game running in Java for example, but provided you have realistic expectations a lot can be done with it. Java is mainly found running programs on the Internet, if you’ve ever been to a games site it will likely be using either Flash or Java. However there is one example of a more advanced game that I am very familiar with, and that’s Wurm Online.
Wurm Online is a Massively Multiplayer Online game that allows you to build and change the landscape. Regular readers will know that I’m a member of the PC Gamer village on the Golden Valley starter server. Not only would this currently be a requirement for me giving up Windows completely, it also serves as a good example of how you can play games in a Linux system.
Windows
Quite a few people have had issues with the Wurm Online client, I however have never experienced any issues with it. It can be quite a resource hog though, it’s one of the few games that really kicks my CPU fan into action. It’s quite probable that if your installation is over a year old, you’ve installed Java at some point. If you haven’t then a quick trip to the Java website will sort you out.
Arch
Whilst you can install Java in a similar way to Windows, it’s better if you download it through your distribution’s package system. It means it’ll be kept up to date with your other software, and helps resolve any dependency issues. In Arch you need to install the jre package:
sudo pacman -Sy jre
There is also an open-source version called OpenJDK, I opted for the official version because some people have had issues with Wurm Online using OpenJDK. Once this extremely painless procedure is done, you’re ready for Java programs. Next stop the Wurm Online website.
When you click on ‘Click to Play’ it downloads a tiny 5KB file which has instructions for the Java Web Start program (this fact is important when it comes to creating and icon, see below).
Java then detects where or not Wurm is already installed and downloads the necessary files if it’s not.
Next you are asked for a location. I chose to use a . folder in my home directory. The only times I’ve had to visit the Wurm Online folder are when I’ve been collecting the screenshots I’ve taken in-game, so using a dot folder helps keep your home directory relatively clear.
Most of Wurm is stored in package files, so once the initial installation is complete the main launch window opens and starts downloading all the packs. You can opt to only download the base pack, this can get you started more quickly, but means you miss out a lot of the in-game models.
When all the downloads were completed I input my login details and Wurm started. Up till this point I hadn’t encountered any problems, that was about to change however. The world loaded and everything looked just like it does normally, I went to have a look around and found that I couldn’t move. It didn’t respond to any keyboard commands, not just movement but it also wouldn’t exit, the mouse controls were similarly not responding.
Several reloads and a quick visit to the forums later I found the solution. Wurm has a choice of game renderers, JOGL & AWT (Java OpenGL) and LWJGL (Lightweight Java Game Library), quite what the difference is I don’t know. The default setting and the one use in Windows is JOGL & AWT, this was causing problems in Arch though because a quick switch to LWJGL resolved the issue.
Now that the controls were working it was time to have a look around. For the most part everything worked perfectly fine, however there was a bit of graphical corruption, mainly in the form of these black stripes. They weren’t static, as I moved their position remained the same relative to mine. The Wurm world is based on tiles, the other graphical abnormality was that lines from other tiles were flickering into others.
A quick look at the ocean showed an image of the landscape flooding across it.
It turns out this was caused by the Texture setting, I normally keep it on high, when I switched down to medium the problems went away. Whilst annoying I could definitely live with it on medium, I could only really tell the difference close up, at medium distance the textures become blurred anyway.
Have a look at these pictures and compare for yourself, on the first pair pay close attention the base of the colossus (big statue) and on the second look at the cobblestones.
|
|
|
|
|
|
Ubuntu
Java was already installed on my Ubuntu installation, it’s the same situation as Arch, there’s the official version and an open-source version.
If for some reason it’s not installed on yours (can’t remember whether I installed it or whether it’s in by default), then just install the java-common package for the official version, it will bring in everything you need.
It’s probably down to my setup, but the launcher integrated very nicely into the Gnome theme. Since I knew the settings from Arch everything went very smoothly.
Conclusion
Overall I would say this was a success. I didn’t notice any difference between the game renderers, the only reason I’ve used JOGL & AWT in Windows is because it was the default setting. It is annoying that you can’t use the High texture settings, and possibly some others that I haven’t tried, but in the end Wurm’s beauty comes from it’s setting and sense scale rather than polygon processing power. I’ve never looked at something close up and though ‘Oh that’s pretty’, in fact I’m sure some people would be quite off-put by the visuals. The sights that have impressed me are from the tops of hills and down rolling valleys, which I’m sure would give the same impression in either system.
Wumr does have an FPS counter and from what I could tell it was about the same as it would be in Windows, performance fluctuates randomly though, varying wildly depending on where you are and what you are looking at so it’s difficult to get a proper reading. When it came to the actual game I had a play around with most of the interactions and they all worked perfectly.
Also, it may be inconsequential but I didn’t notice my CPU fan speeding up in Arch, yet in Ubuntu it sounded exactly the same as in Windows.
Icon
I decided to use the picture found in the top left hand corner of the Wurm Online Wiki. It’s nice and simple.
Since it’s an MMO normally launched from a website, creating a working icon is a little different, you need to launch the Java Web Start program and direct it to the Wurm Online website. You could probably just save the wurmclient.jnlp file, but I think it might include update information and other things that might change overtime, so it’s best to get a fresh version. Create a blank icon and use the following:
In Windows use this in place of the normal location:
"C:\Program Files (x86)\Java\jre6\bin\javaws.exe" http://www.wurmonline.com/client/wurmclient.jnlp
In Linux use:
javaws http://www.wurmonline.com/client/wurmclient.jnlp





Java is a good idea, but as you mentioned java apps need a lot of juice to run compared to a similar app that has been natively coded. Take Minecraft for example, you need a surprisingly powerful computer to run that despite the fact that it looks like it should run on a netbook. I like the idea of an easy way to code cross platform applications but running a virtual machine is not the best way to do it. A compatibility layer like WINE is a much better solution (and that isn’t without its problems at the moment.