Client / Server Languages

Started by
22 comments, last by hplus0603 18 years, 9 months ago
Just for the record the OP (to my knowledge) did not actualy say an MMORPG, just a distributed client->server model...

Also, FOR THE RECORD, I have used hot-swapping aswell (2 years java.. 8 years C++ btw...) and you CAN use it for some classes on an active server. You must use carefull design decisions though, namely some sort of way to "pause" the clients in-game if its actively used, or use a factory class that can optionaly not create a class if an update is going on.
Advertisement
Quote:Original post by PaulCesar
Just for the record the OP (to my knowledge) did not actualy say an MMORPG, just a distributed client->server model...

He didn't explicitely say MMOs, but he implied it in his post.


Also, FOR THE RECORD, I have used hot-swapping aswell (2 years java.. 8 years C++ btw...) and you CAN use it for some classes on an active server. You must use carefull design decisions though, namely some sort of way to "pause" the clients in-game if its actively used, or use a factory class that can optionaly not create a class if an update is going on.

Of course it CAN be used, but I am not sure it's a good idea. From my practical experience with two MMO servers, many things can go wrong even when you don't hot swap. And the problem is, in an MMO a mistake can propagate fast. For example, if you make a mistake that will increase the attack of some player too much, he or she can go and PK everyone.
If you make a mistake where the quantity of an item is changed by mistake, this can have huge implications in the whole economy. And so on.
Things like that happened to us even though we didn't use hot swapping. I don't even want to think about what would happen if we did :D
Besides, hot swapping can be done very well in C, it's just harder to implement.
Quote:Original post by Anonymous Poster
Quote:Original post by Nice Coder
1. Java cannot acess hardware exept through its api.


It's called NIO, it's more than 4 years old, and you shouldn't declare other people wrong when you don't know what you're talking about :P. It makes you look foolish.

Quote:
2. Java is jit compiled, and 'native asm' is ~= BS.


JVM's stopped using what is known as JIT circa 8 years ago (although that term is sufficiently vague to be slightly meaningless these days). Nowadays they use feedback-directed optimization.

Quote:
3. Since when could you hot swap java code?


Since java 1.1, at least - i.e. almost 10 years now.

Look, I answered the poster's questions from a position of knowledge. If you want to add in your own knowledge, fine, but please don't sit there declaring your ignorance.

Quote:
4. C++ isn't bug-prone, the coder is. (tho you do make a somewhat decent point there, C# is better at this)


IMHO, Java and C# both seem to have about the same effect here - and it's very noticeable compared to C++ projects.


[lol] :-)

You mean This nio? (from sun)

Hmmm, so it has buffers, some functions for unicode conversion, and some functions which allow you to use the win32/other kernal api.
Nothing particularly special, nor does it disprove my point.

Java doesn't have anything near direct acess to native memory (no pointers. Case in point) nor can it acess the graphics card without an api. (which, you really shouldn't do unless you happen to be a vidio driver...)

2.
Quote:
JVM's stopped using what is known as JIT circa 8 years ago (although that term is sufficiently vague to be slightly meaningless these days). Nowadays they use feedback-directed optimization.


Hmm, so the magical faries from javaland go and turn jvm opticodes into maxhine code using the magical process of feedback directed optimisation.

Hmm, now doesn't that seem a little silly? it does to me.

Link of Feedback driven optimisation from harvard.

In theory, it could be a bit faster.
In reality, it won't be.
(and your abuse of terminology is idiotic. "Native asm"...)

Quote:
Quote:
3. Since when could you hot swap java code?


Since java 1.1, at least - i.e. almost 10 years now.

Look, I answered the poster's questions from a position of knowledge. If you want to add in your own knowledge, fine, but please don't sit there declaring your ignorance.


Seems berkley disagrees with you not that it can't be done, just that it takes a lot of redesigning, and compared to the effort of just restarting your game at midnight when noones playing....

Quote:
IMHO, Java and C# both seem to have about the same effect here - and it's very noticeable compared to C++ projects.

:-) finaly something we can agree on. Although i like lisp better then both C# and Java.

From,
Nice coder
Click here to patch the mozilla IDN exploit, or click Here then type in Network.enableidn and set its value to false. Restart the browser for the patches to work.
This really isn't the forum for language debates. Sorry for letting this thread go on for so long.

If you want to discuss specific performance or design of specific networking or multiplayer libraries/APIs, feel free to start new threads.
enum Bool { True, False, FileNotFound };

This topic is closed to new replies.

Advertisement