Welcome!

Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!

Join Today!

[Question]Most stable base source?

for(alive>0){makeMoney()}
Loyal Member
Joined
Aug 1, 2006
Messages
357
Reaction score
68
Hello, I'm looking for the most stable source out at the moment (v83+).

I'm looking for
1) Stability
2) Efficiency (No memory leaks, etc)
3) No Major bugs (Even if not all features are in the source, it doesn't crash players, server, or give a packet error)

Also a plus would be it being as close to base gms as possible so when I want to customize my server I don't have to delete a bunch of custom stuff somebody made.

Thanks for the help :)

Edit: Must be java (That's why I'm posting in the java section) because it will be ran on a linux system (A debian flavor to be exact)



bump?
 
Newbie Spellweaver
Joined
Aug 6, 2014
Messages
56
Reaction score
42
Sorry for the super delayed reply.

At no point in my post did I mention C++ or even recommend C++ (the primary reason I recommend Vana is because it is accurate and stable compared to Java servers, the performance is a bonus). I am well aware that C++ is a difficult language to learn and that writing an application in C++ may take significantly more time than an equivalent program in Java. As you said, it would take a lot of time to meticulously test your C++ code to make sure it has no leaks or problems. Granted, there are defensive ways to program in C++ taking advantage of RAII to minimize the occurrence of leaks and problems. But I can totally understand people not wanting to use C++ for a maplestory server because of the complexity.

What I am recommending is using a better language than Java, not for performance reasons, but for safety reasons.
Java isn't much safer than C++, it merely has a GC running to cleanup all your leaks after you, and gives you pretty Java exceptions instead of crashing when you do something stupid. I'd rather have a language that stops either of those issues from occurring in the first place, something like Rust perhaps?
When I'm iterating over a container I want a guarantee that the container won't resize while I'm working with it, C++ doesn't guarantee that, and neither does Java. Rust meanwhile provides those guarantees (and as a bonus no runtime overhead for that safety).
When I get a pointer to an object, in both C++ and Java I have to check for null pointers otherwise I get segfaults or null pointer exceptions. In fact, there is no way in Java to guarantee that I won't get a null pointer. Meanwhile in Rust I am guaranteed that pointers are never null and if something does want to be able to provide nothing sometimes, I just wrap the pointer in an Option, and then it is clear from the type signature that it could be null, and I have to explicitly handle the null case.
I could go on and on about all the different cases where Rust beats both C++ and Java at safety.
My point is that there are languages which are significantly safer than Java, and can even perform significantly better.
Sure you can write stuff that performs well enough in Java, hardware is cheap after all compared to developer time, but if you have the choice, why not use a language that is safer and faster?

I'm completely ignorant about Rust, but it's like what, 2 years old? Java is 20 years old. As a language, Java has been tried and tested in thousands of big, modern systems, and has proved successful. It would be terrible if someone chose to use Rust for their project and their entire project topples over due to a language bug/flaw, after they've already invested time.

As an infant, Rust would also have growing pains (like a lack of library support). Maybe initially it would seem like a good idea to use Rust for my project, but then down the line I need to interface with Riak and realize there is no existing Rust library to help me do so. Now I am writing a library that is entirely peripheral to my code base to unblock myself (or writing a separate service in a different language to do it for me).

A lot of the things you said when you compared Java and Rust are solved through existing Java libraries. And that's the beauty of a mature language: there are libraries for everything! For example, Google has a library called that provides the concept of Optionals, concurrent utilities and data structures, and much more. There are also others like , which simplifies Java code through annotations. Of course, there is also the Spring framework which lets you structure your project easily and comes with a ton of utilities (like easy-to-use jdbc templates that can be combined with other libraries like c3p0 to easily create a concurrent, pooled jdbc connection).

The point is, Java is way more mature and easier/safer than you think when you take into account the decades of global improvement it has been through and the thousands of libraries that have been written for it. It seems like you don't see the point in using Java or C++ when you have Rust, but it's really the opposite for me. Rust hasn't proven itself yet -- and maybe it will become a viable choice with a lot of support in several years. But until then, I can see many reasons to use Java (or C++, etc) over Rust.

Also, in terms of commercial development, consider the amount of people who know Java or C++ over the amount of people who know Rust. That alone should be a reason not to use Rust -- as an employer, would I want to pay for all my developers to go through a Rust workshop and understand the nuances of the language? Are the benefits of writing an application in Rust over Java or C++ really worth it?

Of course, I don't know anything about the language, and there is nothing wrong with using Rust for a personal project; I think that's actually cool. But I question if it is suited to replace a stable, proven language in any medium or large scale project.

He hasn't written a server source.

Also, I take exception to "yours has taken 5." It existing for 6 years doesn't mean anything about how much it's actively been worked on.


This might be to-may-to vs to-mah-to, but I wouldn't really call this 6 years of development. Even if it was, most of the work these days is undoing poor design decisions and research into things that nobody else has bothered to look into. Those things are language-agnostic, you can make bad decisions and have poor accuracy in any language.

Not that I'd be a stalwart defender of C++, but ya. I really dislike the logical leap made here.

You're right; I don't follow any maplestory developments so I had no idea about the status or rate of progress of your source. It was an incorrect assumption on my part!
 
Upvote 0
Back
Top