PW / MMOG server language?

Started by
19 comments, last by hplus0603 19 years, 7 months ago
I'm currently working on the client for a PW. I've got to the stage where I need to make a serious start at the server side of things. It seems fairly obvious that a Linux platform is the right choice for PW servers, but I can't decide whether to implement it in C++ or Java. I have professional experience in both, and am having a hard time making the call. Can anyone suggest some pros & cons? i.e. "I can develop the Java server on my win32 laptop and porting to Linux when the time comes is as easy as copying the Java files over and recompiling." vs "C++ is faster, period"... and so on. :) Thanks!
---PS3dev
Advertisement
If you are comfortable in both languages, and have no annoying constraints (e.g. "all users have only java v1.1"), AND you don't need it to run on consoles, then java is better all round. Sun has been promising a JVM on consoles for 2+ years (and hinting heavily that the first one would be PS2 or PS3), but so far they've delivered nothign, so assume the worst in that direction.

The speed difference is negligible, both have fully working OpenGL with shaders, both are decent (though far from perfect) OOP languages.

Java is consistently faster to develop with, and the bugs are much quicker/cheaper to find and fix (apparently you tend to get fewer of them too, although that probably depends on programming style and ability). This is not opinion per se, but the result of endless studies into programmer productivity; it's why IBM et al ended up adopting java for all their internal development where possible - because they proved that on average it was cheaper to develop with.

Bascially, java benefits from being 10 years younger than C++, so some of the thigns C++ was experimenting with, Java has been able to copy the good bits and get rid of the bad bits. They only got this process 90% right, which is why C++ experts still get frustrated with a lot of esoteric aspects of Java (but, when you happen to *need* one of those esoteric bits to work, as it did in C++, it doesn't seem so esoteric any more!). However, the chances of you hitting that problem are very low unless you are doing something sufficiently specialized that...you'll probably know you're going to hit it before you even start.

c.f. http://grexengine.com/sections/externalgames for more info on developing java games - the games section has some ****-hot games in there (although the latest generation of pure java games, e.g. those using realtime shadows, haven't been added yet since they're still being tested). There's also a technologies section which conveniently lists the major OpenGL bindings in java, with links to downloads, demos, etc.
Ooops just noticed that you are asking about the server only. I saw the "working on the client" in the first sentence, and...

Java is definitely better on the server if you have no other constraints and are equally good with Java and C++. Look at all the commercial MMOG middleware servers: every single one uses java.

Even the hobbyist / open source engines: almost every single one uses java.

This is not likely to be co-incidence, nor a major conspiracy!
Wow, ok, I should've done my research better. Thanks for your prompt reply :)

It's time to dust off my Java hat again...
---PS3dev
Quote:
Look at all the commercial MMOG middleware servers: every single one uses java.

Even the hobbyist / open source engines: almost every single one uses java.



oh really?.. :/ Got any links that supports that claim?

Shields up! Rrrrred alert!
I'd go for whatever the client is using. You simply don't want to rewrite large portions of the game in a different language.
Quote:Original post by peter_b
Quote:
Look at all the commercial MMOG middleware servers: every single one uses java.

Even the hobbyist / open source engines: almost every single one uses java.


oh really?.. :/ Got any links that supports that claim?


Here's some that I remember:
Terrazona from Zona Inc. use java for the server infrastructure.

Butterfly.net also.

Ice has a java implementation.

And also, Globus Toolkit, a widely used grid infrastructure, use java.

------
Nevrax powering the game Ryzom is done in C++.

I personnaly choose to do my implementation in c++.

Gizz

Edit: Added nevrax.
Globus is irrelevant to my original point, since it's merely a distributed computing platform - i.e. that fact that it's done in java is unrelated to games development - despite the fact that people are considering using it (or, in BF's case, have based some of their work off it) for MMO work.

There's also GrexEngine and BigWorld (MicroForte) - both of which are commercial java MMOG server systems.
Hmm, I've studied BigWorld with some interest, as their 'cellular' load balancing is something of a parallel to what I did my CS dissertation on, allocation heuristics. Wonder how much the licence would be ;)

Interestingly, MicroForte seem to be branching out into mobile device MMOG development, and are paying a crapload of $$$ for the people to do it.

After sleeping on it, I'm still fairly happy with Java. I did think about the 'rewriting code in a different language' argument, which definitely has merit, but overall Java just supports backend infrastructure better - db connectivity, stability, threading, networking and so forth are what the language was designed to do...
---PS3dev
The Java libraries are fairly nice for cross-platform development...but if you only ever need it to run on Linux, then it doesn't really give you much over C++. You should probably choose whatever you're more comfortable in as a language.
SlimDX | Ventspace Blog | Twitter | Diverse teams make better games. I am currently hiring capable C++ engine developers in Baltimore, MD.

This topic is closed to new replies.

Advertisement