Go Back   EQEmulator Home > EQEmulator Forums > Development > Development::Development

Development::Development Forum for development topics and for those interested in EQEMu development. (Not a support forum)

Reply
 
Thread Tools Display Modes
  #1  
Old 08-25-2006, 04:04 PM
mattmeck
Guest
 
Posts: n/a
Default

Quoting several sources here from a simple google for java vs C++

Quote:
The biggest potential stumbling block is speed: interpreted Java runs something like 20 times slower than C. Nothing prevents the Java language from being compiled and there are just-in-time compilers appearing at this writing which offer significant speed-ups. It is not inconceivable that full native compilers will appear for the more popular platforms, but without those there are classes of problems that will be insoluble with Java because of the speed issue.
Quote:
Java uses a singly-rooted hierarchy, so all objects are ultimately inherited from the root class Object. In C++ you can start a new inheritance tree anywhere, so you end up with a forest of trees. In Java you get a single ultimate hierarchy which is very restrictive.
[quote]No inline methods. The Java compiler may decide on its own to inline a method, but you don
Reply With Quote
  #2  
Old 08-25-2006, 07:42 PM
Arex
Hill Giant
 
Join Date: Jul 2004
Posts: 196
Default

I only want point that L2j (Lineage 2 emulator) is done with Java. I have tried it L2j emu, and it goes fast and it looks stable...then not say that Java isnt a good language for develop a emu.. On other hand, the eqemu already is very advanced, then it would be a loss time port it to other language without any visible benefit.
Reply With Quote
  #3  
Old 08-26-2006, 12:01 AM
vales
Discordant
 
Join Date: May 2006
Posts: 458
Default

I've developed a bit for L2J, and I although the project is pretty solid, it's still java which hurts it in the long run. Sure, it's fine for a handful of people playing on the server, but once you have more people log on, it goes downhill very fast. It simply cannot handle that many instructions and users at the same time. And till this very day, it still suffers from the same issue. Now some may argue that java is the internet coding language to use, but you really can't base a game structure on it. It's just not efficient enough no matter how good at java you are.

When I got my hands on the C++ version of the Lineage 2 server, it was infinitely better. It can handle thousands of people online, and since you're using a SQL database structure, it's quick and fast. No lag, and more options to edit the database without having to sift through tons of java scripts just to edit one item. Even though L2J has migrated to the MySQL structure, it still has issues. There's just some coding language that gets lost through the transition, and most of the time, it breaks it even more.

Why do you think that the L2J dev team uses the C++ server's coding to help them along? I'm sure they won't admit it (since it draws a fine line on whether or not it's legal), but it's there as proof on their forums. They're even using the geodata structure from the C++ server files to try and squash the Z axis bugs that L2J suffers from. Did you ever run through some of the areas on the L2J server? Mobs are underground and even fall from multiple levels in dungeons, ignoring all Z axis information. On the C++ server, the mobs act accordingly since the geodata structure is there, plus you have the pathnode files. Not to mention you can edit the geodata in the game now so no more dodgy geodata. L2J is just catching on, I'm sure. Maybe even using the tools for the C++ server as I type this. Of course I'm pretty sure they're not going to come out and admit it. But I don't see any possible way for them to just ignore it. The tools are there - they just won't show their interest in it. And don't even mention it there. They'll lock the topic in a heartbeat, which I have no problem with. They're only protecting their best interests, after all.

There's even some projects that attempted to convert the Lineage 2 java code to C and it ran much faster, given it was missing some vital codes - they're all on sourceforge by the way. Check if you don't believe me. :p It's been a while since I last checked, but I beleive it was called L2JC or L2C.

I don't mean to bash on L2J. It's the whole reason what got me interested in all of this. Lineage 2? Java?! Sweet! It was almost too good to pass up. It was fun when I was into it full speed, though I have to admit. But I just got tired of the crashes and moved on to better things.

And before anyone gets an itchy finger to PM me, I want to just say that I'm not about to give out the server files for Lineage 2 since it's a pretty sensitive subject. So don't even bother asking. It's not technically illegal since it was distributed by NCSOFT's internet provider in China, but it draws a fine line here in the states. If you want it, then do your own research. :p But I didn't type out the four paragraphs above this one to blow smoke out of my bum. It's the plain truth, and I speak with experience from both ends. I don't claim to be a coding guru, nor do I really care. But after I broke the structures down and played both versions, it's really a no-brainer.

I just wanted to give my two cents for the topic. That's all. If people want to code in Java or whatever they want, let them. It's not about which is faster or better, but what makes anything worthwhile is the challenge of it all. But since the subject of L2J came up, I had to say something.

Uh, carry on then. Don't mind me. I'm just an old man with nothing better to do at 5 in the morning, lol.
Reply With Quote
  #4  
Old 08-26-2006, 04:49 AM
qbvbsite
Fire Beetle
 
Join Date: Feb 2005
Posts: 10
Default

Quote:
Originally Posted by mattmeck
There were points that were made that made it better then C++ however the speed issue is the one that craps this idea.
mattmeck i thank you for your quotes. I did know about the other 2 quotes (about inline compiling and the inheritance) and for what I cant do with multi-inheritance i can do in interfaces (may not be as good as multi-inheritance but gets the job done). As i stated before I do know that C++ is faster then Java but i dont think that it craps the out the idea. If this subject were to come out a few years ago there would be no arguement because Java was slow. Over the past serveral years Java has gotten better and faster. Plus im not doing this for speed or to make it better then EQEmu (because its already an amazing product) I was just thinking it would be a nice project to attempt. But maybe my effort should be geared toward the current EQEmu but who knows.

Quote:
Originally Posted by vales
I just wanted to give my two cents for the topic. That's all. If people want to code in Java or whatever they want, let them. It's not about which is faster or better, but what makes anything worthwhile is the challenge of it all. But since the subject of L2J came up, I had to say something.
Thanks for you input . Like you said in your quote its not about if it faster or better, its the challenge of it all.

Quote:
Originally Posted by Arex
I only want point that L2j (Lineage 2 emulator) is done with Java. I have tried it L2j emu, and it goes fast and it looks stable...then not say that Java isnt a good language for develop a emu.. On other hand, the eqemu already is very advanced, then it would be a loss time port it to other language without any visible benefit.
Like i said to the last quote its all about the challenge and plus it would be fun. Im not coding this to replace EQEmu i just thought it would be cool to attempt.

With all the reponses I have gotten maybe it would be more benifical to work on the current EQEmu then making a Java port. I dont know what im gonna do but i'll let you guys know. I dont know C++ nearly as much as I know Java but I have to start some where I guess. If you start to see C++ code poping up on the fourm you will know what I desided

--James
Reply With Quote
  #5  
Old 08-26-2006, 07:08 AM
Elysius
Sarnak
 
Join Date: Dec 2005
Posts: 43
Default

Quote:

Thanks for you input . Like you said in your quote its not about if it faster or better, its the challenge of it all.
No offense, but maybe it might be a bit better to do a challenge that will actually improve upon the emu?
Reply With Quote
  #6  
Old 08-26-2006, 11:31 AM
qbvbsite
Fire Beetle
 
Join Date: Feb 2005
Posts: 10
Default

Quote:
Originally Posted by Elysius
No offense, but maybe it might be a bit better to do a challenge that will actually improve upon the emu?
The challenge is to code it and not to out do EQEmu because it is a great product that probably can't be beat except by the real thing.
Reply With Quote
  #7  
Old 08-26-2006, 05:09 PM
Elysius
Sarnak
 
Join Date: Dec 2005
Posts: 43
Default

Quote:
Originally Posted by qbvbsite
The challenge is to code it and not to out do EQEmu because it is a great product that probably can't be beat except by the real thing.
So you want to spend hours upon hours recoding EQEmu to make it... crappier? What I'm saying is why not spend those hours fixing the many small problems EQEmu has?
Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

   

All times are GMT -4. The time now is 06:56 AM.


 

Everquest is a registered trademark of Daybreak Game Company LLC.
EQEmulator is not associated or affiliated in any way with Daybreak Game Company LLC.
Except where otherwise noted, this site is licensed under a Creative Commons License.
       
Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Template by Bluepearl Design and vBulletin Templates - Ver3.3