I've been programming Java for some years now, both for fun and professionally. And I agree with Shattered skies about it being a very nice language to code in. With respect to the whole C++/C# thing, C# is nothing more then C++ with Java syntax. (Or at least from the 4 months I had to put up with it, I came to that conclusion).
The fact that Java enforces OO will indeed help when switching to C++. Since C++ supports OO but does not enforce it. In C++ you can still write your entire program in one flat file.
The idea though that Java wouldn't be usefull for MMO games is somewhat outdated though. I agree that for the server side of things C++ is the way to go because this is where speed is most important. But client side it mostly depends on the type of game you are programming. Most RPG games don't need those uber speeds anyways. And with current computers the differences aren't that big to begin with.
I've been testing around with the new Java 6.0 beta release and I find that they've upped the speed once more so, while not there yet, they are getting closer. Most of the game lag however is (usually) in the graphics area of the game or the networking. With current internet connections getting faster and faster, network lag is less and less of an issue. The graphics lag is determined fora big part by your graphics card and the way the game builds up the environment.
Commercial games tend to be much heavier in this respect then hobbyist games, so they need much more computing power / speed on the graphics area. However, this still doesn't exlude Java, since you can just offload the graphics bit to a C++ library from java.
The biggest advantage of using Java over C++ is portability. If you plan on deplpying the client side of your game on PC, Mac and Linux, I would say go with Java and just offload the really tim crittical parts (such as graphics) to a C++ library. This cuts down porting effort big time, since only that small portion of the game needs to be altered.
just my vision on things...
Mark
|