Jump to content
  • Advertisement
Sign in to follow this  
canned

Client / Server Languages

This topic is 4766 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I'm curios as to what languages people are using for their client / server systems. I assume most clients (game-wise anyway) are written in C++. But with that in mind, do most people program a server for a C++ client in C++? Or is Java at all popular? Obviously sticking with C++ for both the client and the server provides the benefit of code reuse. But is it easier to get a distributed server built out of Java? Or are there other benefits to Java? Or do people just stick with C++? Thanks for the input!

Share this post


Link to post
Share on other sites
Advertisement
Our server and client are both written in C.
While there are MMORPGs written in Java (at least for the client) you can do much more, graphic wise, in C/C++.

Share this post


Link to post
Share on other sites
Most people who don't know how to write java to the same level they know C will tell you that C and C++ can do "lots of things" that java cannot. In general, that's mere ignorance (and people who haven't learnt to keep their mouths shut when they don't know what they're talking about).

In general (again, must stress that), since java has direct access to native memory (including to the graphics card over the AGP bus) you can do anything in java that you can do in C++. This is no surprise if you think about it: java is just like C++ in that it compiles down to native assembler, although there are advantages to each in the particular implementations.

On the server side, the fact that java is 100% cross-platform makes life much easier: you can develop on anything, windows, unix, etc and then deploy on anything (including deploying on systems you don't have in the office, e.g. Solaris).

Further, java has in-built optimizations which are not possible in a C++ compiler that make any application run faster after the first few minutes, speeding up continuously for up to several days...which really helps when writing server code (servers should be online for months without rebooting.

Similarly, the extensive hot-swapping of live code in java makes it easy to keep that server running (don't restart the process) and patch in updates.

On the flipside, the market for java client engines (graphics, physics, etc) is woefully immature compared to C++. Many people write the server in java and the client in C++ - it's easier - although you do lose out that C++ is much more bug-prone and takes longer to write code to do the same task.

Share this post


Link to post
Share on other sites
Quote:
Original post by redmilamber
On the server side, the fact that java is 100% cross-platform makes life much easier: you can develop on anything, windows, unix, etc and then deploy on anything (including deploying on systems you don't have in the office, e.g. Solaris).



Hmm. Just realised, you probably don't know why this is so important: there is no standardization in the I/O libraries used in networking code across OS's. Java has a single unified library that is guaranteed to work on all platforms, whereas C does not. Unfrotunately, since java's lib is relatively young (released about 4 years ago, gold for the last 3 years), it still has bugs - although you get similar problems when coding in C with OS I/O libs (windows, linux and OS X all have infrequently encountered yet annoying OS bugs in this area that continue to cause me grief :( ).

Share this post


Link to post
Share on other sites
Quote:
Original post by redmilamber
Most people who don't know how to write java to the same level they know C will tell you that C and C++ can do "lots of things" that java cannot. In general, that's mere ignorance (and people who haven't learnt to keep their mouths shut when they don't know what they're talking about).

In general (again, must stress that), since java has direct access to native memory (including to the graphics card over the AGP bus) you can do anything in java that you can do in C++. This is no surprise if you think about it: java is just like C++ in that it compiles down to native assembler, although there are advantages to each in the particular implementations.

On the server side, the fact that java is 100% cross-platform makes life much easier: you can develop on anything, windows, unix, etc and then deploy on anything (including deploying on systems you don't have in the office, e.g. Solaris).

Further, java has in-built optimizations which are not possible in a C++ compiler that make any application run faster after the first few minutes, speeding up continuously for up to several days...which really helps when writing server code (servers should be online for months without rebooting.

Similarly, the extensive hot-swapping of live code in java makes it easy to keep that server running (don't restart the process) and patch in updates.

On the flipside, the market for java client engines (graphics, physics, etc) is woefully immature compared to C++. Many people write the server in java and the client in C++ - it's easier - although you do lose out that C++ is much more bug-prone and takes longer to write code to do the same task.



1. Java cannot acess hardware exept through its api.
2. Java is jit compiled, and 'native asm' is ~= BS.
3. Since when could you hot swap java code?
4. C++ isn't bug-prone, the coder is. (tho you do make a somewhat decent point there, C# is better at this)

From,
Nice coder

Share this post


Link to post
Share on other sites
Quote:
Original post by redmilamber
Most people who don't know how to write java to the same level they know C will tell you that C and C++ can do "lots of things" that java cannot. In general, that's mere ignorance (and people who haven't learnt to keep their mouths shut when they don't know what they're talking about).

In general (again, must stress that), since java has direct access to native memory (including to the graphics card over the AGP bus) you can do anything in java that you can do in C++. This is no surprise if you think about it: java is just like C++ in that it compiles down to native assembler, although there are advantages to each in the particular implementations.

On the server side, the fact that java is 100% cross-platform makes life much easier: you can develop on anything, windows, unix, etc and then deploy on anything (including deploying on systems you don't have in the office, e.g. Solaris).

Further, java has in-built optimizations which are not possible in a C++ compiler that make any application run faster after the first few minutes, speeding up continuously for up to several days...which really helps when writing server code (servers should be online for months without rebooting.

Similarly, the extensive hot-swapping of live code in java makes it easy to keep that server running (don't restart the process) and patch in updates.

On the flipside, the market for java client engines (graphics, physics, etc) is woefully immature compared to C++. Many people write the server in java and the client in C++ - it's easier - although you do lose out that C++ is much more bug-prone and takes longer to write code to do the same task.




Hmm, Java sounds like the best language EVER!
It is as fast if not faster than C++ (which by some accounts it is faster than Assembly), it is cross platform unlike C++, and, of coruse, you just can't have bugs in Java.
I wonder why doesn't everyone use it for everything. I think people should uninvent all the other programming languages and just sue Java!

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
FASTER THAN ASSEMBLY?!

Who reinvented the computer while I was in engineering college?

Share this post


Link to post
Share on other sites
Quote:
Original post by Anonymous Poster
FASTER THAN ASSEMBLY?!

Who reinvented the computer while I was in engineering college?


It was sarcasm, of course.
But I ddi hear stuff such as:
"C is faster than assembly because the compiler does optimizations you don't know how to do"
"C++ is faster than C because [...]"
"Java can be faster than C++ because of the JIT optimizations"
So Java is faster than ASM :)

Share this post


Link to post
Share on other sites
I definitely didn't want this to turn into a war of the languages, though I should have seen it coming as anytime the two languages are mentioned in even the same city, sides are instantly formed and words are thrown like weapons.

So maybe a better way to approach this is in the form of a poll. Instead of asking what people think is best, how about, what have people done and to what success?

So the new question: In building a client / server game (MMO prefered, but any other form of client / server system works as well), if your client was written in C++, was your server also written in C++ or Java instead?

Thanks for the input!

Share this post


Link to post
Share on other sites
If you ask such a question, it's normal to get a holly language flame war :D
Many people will claim that Java is good for servers, but I am curious how many here actually wrote a MMO server in Java.
Mine is built in C, and works very nicely.

Share this post


Link to post
Share on other sites

This topic is 4766 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Guest
This topic is now closed to further replies.
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!