Re: Do you think that xanadu will catch?
Quote:
Originally Posted by
Savage
Yeah lol, if that's the real Osiris, then you should probably stay quiet unless you know what you're talking about.
Obviously not the real one, but the way he talk is smart.
Quote:
Originally Posted by
Sounds
You're dumb. Ian has far more than you will ever have. Notice, he is far smarter than a lot of the people in this community. He stands out in the community like the major server developers and people such as Murad (Horizon), Josh (Josho29109281302813 *insert more numbers here* (LOL)). Because they do a good job with what they do unlike the majority of the people coding custom NPC's. Now, if I saw someone make GMS like NPC's I would see him/her as a very big person in Maplestory development because they are making the development go forward how its supposed to with GMS like features. I'm pretty sure that the whole reason why Titan and Odin were released in the first place is to get more done quickly. And I'm sure the original developers never saw the community go to hell such as this one did. If not all, most of the Maplestory developers here that can actually code are arrogant and elitists, which is why people do not learn, but then again... I do know where their mindsets are, where people decide to release repacks with a developers coding without the proper credits given. Noobs making themselves think they can code by copy pasting stuff into the source code correctly made that happen therefore the community is where its at. No one takes an effort to code, they just want to release a server to make a quick buck, get their iPod/iTouch and book it. Which in case, yes: the community needs to be underground and let a certain amount of people that have the potential to learn how to code. I have never seen you do nothing but make stupid comments on people that you have done "research" for. So what is your research based on? A simple forum search? Cool... how about meet the person before you are entitled to talk smack. Now for you, your posting habits make you seem like a stupid idiot. "I've done research on this Ian, he has nothing." Lol? Seriously? He is far more superb and much more intelligent than you would ever be. I bet you wouldn't understand half the shit he says on a daily basis. And if you asked him to explain what something is in a programming language, his explanations would throw you off the roof no matter how simple he may make it.
actually websites and help php/jQuery noobs like me
Re: Do you think that xanadu will catch?
c++ is capable of better performance but java is easier to code,
now james, i got about 300 dollahs for shopping, where do you want to go?
Re: Do you think that xanadu will catch?
Quote:
Originally Posted by
Ryster12
C++ was never popular from the start of titanMS. As many people said, titanMS made it to V55, and when it got to v62, there was not a sign of a c++ source. In my opinion, never lol.
Not a c++ source? v55 source had NOTHING to do with C++. it was more like C, and it was shitty and unstable code. Only the source for v62 was REAL C++. (which is basis of xanadu)
BTW, try to compare the performances of a C++ (not v55) and a Java server. (I remember that odinms lagged even when you runned it on your own computer. In titanms2 everything was smooth, without any lag.)
Re: Do you think that xanadu will catch?
Quote:
Originally Posted by
koolk
Not a c++ source? v55 source had NOTHING to do with C++. it was more like C, and it was shitty and unstable code. Only the source for v62 was REAL C++. (which is basis of xanadu)
BTW, try to compare the performances of a C++ (not v55) and a Java server. (I remember that odinms lagged even when you runned it on your own computer. In titanms2 everything was smooth, without any lag.)
Are you the real koolk?
Re: Do you think that xanadu will catch?
Quote:
Originally Posted by
FailBan
no it won't, because barely anyone(80% of people) on RaGEZONE have knowledge in any fucking type of programming
Let me correct you ;) the MapleStory Section doesn't :w00t:
@ koolk ;) welcome back TitanMS Developer :)
@917893678251 : you have been here Jul 2008 and you dont even know who he is..
---------- Post added at 12:50 AM ---------- Previous post was at 12:39 AM ----------
Quote:
Originally Posted by
B12Core
What the Maple Story community still fails to understand is why C++ is superior to Java in terms of memory allocation in comparison to Java with its garbage collection wrapper. It's far easier to debug memory leaks when you can send queries in between memory allocation tasks.
OdinMS is not based on Java because it's easy. Java and C++ are no different, the included libraries and functions will be different; the actual logic and algorithm execution will not.
In fact, Java is one of worser languages (IMO) to base a server source off of, it's only real use is for the production of web applets, client-sided web functions and JavaVM applications, like on cell phones. I've NEVER, in my life (outside of computing competitions), seen Java used in a terminal style fashion. C++ is what the majority of people use for networking and server software (including Wizet themselves...) and there should be no reason to why this method should change.
Also, stop hating on the RaGEZONE community. Sure, as a whole, not everyone will be proficient at programming. However, don't go about making a pecking order within yourselves over some Javascript... Everyone starts somewhere, and if you're a beginner, learning how to program an NPC as your first day of programming is far from the best approach. Learning how to program "Javascript in 21 days" won't get you far either. Experience and working with other programmers in other environments will get you the furthest (IMO) and help you to adapt to any programming environment.
mmmmmm.... ok let see you said Java is one of worse languages for MMORG Development :P ?
seriously that not true knowing a languge would give anyone the power to do what they did best the fact odinms made the world 1st maplestory with only like 2 people beating the whole team of nexon developers :drool: I do believe at the point when the server was in progress he the main coder Serpendiem received alot of bad comments about it being in Java ;) ( Research In RZ ) you'll find it. but never the end it came out hitting over thousand of people from worldwide playing it everyday it was paradise ;) which people was unable to do. Titan is good but it was stopped way to early cant really blame the poor fellow just saying C++ isnt great so isnt Java both are programming lang and both are by millions over the world ;)
Re: Do you think that xanadu will catch?
Re: Do you think that xanadu will catch?
@917893678251: Wow, thanks :) But really, I wouldn't know this much without the help of Bui, pawitp, koolk (for creating the base :)!) and all others that where helping me :). Really, I was a noob 2/3 years ago with MapleStory and coding itself. Interests in something helps a lot.
@koolk: I still thank you for your source :)! I still have lying my V.55 DiamondMS source somewhere (but I do not have the XML's anymore :() from the V008b TitanMS source.
@Topic: XANADU isn't that bad, neither is buya, but I think it was developed way too late. The MapleStory development is kinda... `stopped` (as in making it better), because OdinMS repacks pop out of the ground everyday with actually every time the same bugs. If one doesn't have it, the next one will have it, because people do not develop with each other, but just take some base and use it.
Re: Do you think that xanadu will catch?
Java is as hard as C++ because he's based on the same syntax... I doubt Xanadu will catch because :
1) Everybody knows Odin but not TitanMS
2) 20% of the community have some skills in C++/Java programming
3) 35% of these 20% have some skills in C++
4) 30% of the Java programmers think that Java is as powerful as C++
5) Xanadu doesn't run on Linux
But I prefer Xanadu because I knew it 2 years ago, and it's very easy to understand with some C++ skills... The initialization is faster, the configuration (For me) is more simple, and I just fight for this C++ server !
The server is perfect, stable and fast, but now the problem is that no NPC scripter seems to be interested in Xanadu...
Re: Do you think that xanadu will catch?
Quote:
Originally Posted by
diamondo25
People think that C++ is hard, and that's why no noobs (note that at least 80% are noobs in the MS PS community) wants to start on it. Not only that, but people just want to have a leaking + crashing source to get more attention...
I thought language conversion is just a matter of syntax changing...like java "System.out" to C# Console.out...I think. I forgot the Syntax for C#.
Re: Do you think that xanadu will catch?
Altough I started on Java servers(odin), I do prefer this C++ Xanadu source. It's grown up quite a lot since the old TitanMS days.
Posted via Mobile Device
Re: Do you think that xanadu will catch?
Dont bump this old thread please.
Re: Do you think that xanadu will catch?
Actually, to be honest;I personnally love using c++! See, back when it was v.55 TitanMS based servers were EVERYWERE. Honestly though, most of them sucked! But when i was a noob and started trying to make one, it took forever for me to catch along to it. Through determanation ( and stubbornness) I successfully got my server to be pretty damn stable, and almost completely customized.
I had quit coding and shit for like a year- two, and only recently have i been getting back into it( Java is the main thing now :( easy, but i hate it.). But i never found anything about a new c++ server for v83(the version im using). Untill the other day i found the xanadu source( or repack) that was released. Yall( from page one on this topic) are acting like we need noobs to create the servers we play. Fck no! if a couple of good experienced ppl got together, im sure we can get a nice server up in no time! Im universal myself. I can somewhat do everything that making a server needs. Alll i need is a nice staff with exp.
Ps- If your interested, hit me up.
[edit] Lol i didnt realize this discussion was a year ago... Whoops.
Re: Do you think that xanadu will catch?
Quote:
Originally Posted by
B12Core
What the Maple Story community still fails to understand is why C++ is superior to Java in terms of memory allocation in comparison to Java with its garbage collection wrapper. It's far easier to debug memory leaks when you can send queries in between memory allocation tasks.
OdinMS is not based on Java because it's easy. Java and C++ are no different, the included libraries and functions will be different; the actual logic and algorithm execution will not.
In fact, Java is one of worser languages (IMO) to base a server source off of, it's only real use is for the production of web applets, client-sided web functions and JavaVM applications, like on cell phones. I've NEVER, in my life (outside of computing competitions), seen Java used in a terminal style fashion. C++ is what the majority of people use for networking and server software (including Wizet themselves...) and there should be no reason to why this method should change.
Also, stop hating on the RaGEZONE community. Sure, as a whole, not everyone will be proficient at programming. However, don't go about making a pecking order within yourselves over some Javascript... Everyone starts somewhere, and if you're a beginner, learning how to program an NPC as your first day of programming is far from the best approach. Learning how to program "Javascript in 21 days" won't get you far either. Experience and working with other programmers in other environments will get you the furthest (IMO) and help you to adapt to any programming environment.
C++ is far superior to Java in terms of explicit memory management, but this makes things a great deal harder. I don't know why you're suggesting a garbage collector is a bad thing, all modern languages have built in garbage collectors (first introduced in lisp in 1959). While you can write a program without a garbage collector to help manage memory usage, abstracting this away lets the developer think about more high level things and deliver value to the end user more quickly and efficiently without having to necessarily concentrate as much on lower level portions of the program. The garbage collector doesn't just prevent memory leaks, it facilitates memory safety.
I highly doubt OdinMS is based on Java because it's easy, there are many legitimate reasons to use the JVM. Java code is incredibly portable (cross-platform), there are a large number of libraries. It is a mature language used widely around the world, and it has a great range of good IDEs to program in.
"I've NEVER, in my life (outside of computing competitions), seen Java used in a terminal style fashion. "
I'm honestly very surprised by this too, it implies you don't have much experience of real life development.
I would say the majority of servers run on the JVM, including:
- Twitter
- Minecraft
- Runescape
Wizet may use C++ but on the whole, C++ is regarded as too low level for server programming. What practical use is that level of control and complexity in the writing of a server? None at all. The only reason you might want to use C++ is to squeeze every last bit of performance out of your server.
As for the ragezone community I can't really see why you all keep talking about this. Java is great for writing a server, but it's likely the repacks you guys are working off are badly designed in the first place, which could be a cause for slowness, but at the end of the day a bad workman always blames his tools.
To be honest if you're thinking of using a new language to write a server, you should be choosing between Erlang and Scala, which both have great models for concurrency.
Scala:
You can keep:
- all your Java libraries
- all the advantages of running on a JVM (ubiquity, administrative tools, profiling, garbage collection etc)
And write code that:
- is more concise and clear than Java (especially using more functional style, such as in the collections library)
- has closures and functions as part of the language
Erlang:
There are several advantages to Erlang as a language that make it optimal for writing server based applications:
Quote:
Originally Posted by tedonflash.org
- Concurrent Processes - Erlang can spawn many processes, like 250,000 processes and these run concurrently in the VM. Each process can receive messages and send messages to other processes. The VM automatically handles executing processes across multiple processors so having more processes generally runs N times faster on N core machines. In a world where cpu cores are multiplying, Erlang has a huge advantage in leveraging additional CPUs without any programming effort.
- Message Based - Erlang processes communicate by sending messages and the language syntax is optimized to make handling messages easy. The arrity and type of data passed to a function determine which version of the function is called so message handling is done at the interface of the process not in some if/then/else/case statement. The message either matches a function or it is ignored. The way messages and processes are handled is much like the real world, we do not have shared state, rather we send messages to one another by honking, blinking, speaking or waving.
- No shared state and Variables that do not vary - The strangest truth in Erlang is that variables do not vary. This allows apps to avoid shared state and read/write contention and locks. The rule is that where there are locks, there are keys to loose so Erlang has neither. It seems annoying but in fact it only takes a little while to get used to. In avoiding shared state, processes are much more scalable and issues of thread contention, race conditions, and collisions essentially fall onto the floor.
- Bit Masking and Pattern Matching - The feature I like most is pattern matching and the bit masking syntax. It is trivial to parse extremely complex binary data and set variables from input data. Here is a little snippet: <<?Header:4, Chan:4, Note:8, _:8>> = InBytes.
Basically InBytes is an array of bytes and the variables get set to the left. In this case, 4 bytes are read into Header, Chan and 8 bytes into Note. What seems odd is that equals assigns values throught the pattern on the left to become equivalent to the pattern on the right. It looked alien to me at first but once you get it parsing binary data is never the same. - Hot Swapping Code - Imagine swapping out server logic within a mission critical server at runtime? Erlang provides a framework called OTP for writing server behavior and swaping the behavior live even on remote Erlang VMs. You have to see it to fully appreciate what is happening and the syntax and patterns for writing the logic are really simple compared to procedural or object oriented languages.
- RPC and Distributed Computing - Running processes in local and remote Erlange VM's could not be easier. Once the machines are physically allocated by IP you can spawn processes on remote VMs and call remote processes as if they were local. It makes writing a cluster of servers really simple and once the different VMs are trusted on a network exchanging messages is nearly identical to local messaging between processes.
The scala actor model is very similar conceptually to Erlang's concurrent processes model, and makes an ideal choice too.
But at the end of the day none of this advice matters, because none of you really want to get your heads down and start building a good server, you'd rather argue all day about which programming language is the most useful, and rant about how crap everyone else is at programming. And those who are actually doing well with their servers don't spend their time here, there's nothing interesting to see.
Re: Do you think that xanadu will catch?
@"The garbage collector doesn't just prevent memory leaks, it facilitates memory safety."
The C# redirector - atleast what I got here, has huge memory leaks. It's wrong to propagate the mainstream "garbage collector = memory leaks impossible".
Also see this:
.net - Memory Leak in C# - Stack Overflow
", there are a large number of libraries. It is a mature language used widely around the world, and it has a great range of good IDEs to program in."
Applies for C++, too.
Ofcourse languages as java and C# take away much work that one would have with C++, but that doesn't make it useless for server programming. The low-level argument would have worked for C, but C++ is rather "Mid-Level", for example it offers Smart Pointers which enhance memory security. And according to you, C++ is even more low-level for GUI webbrowsers than for command-line servers, though the main browsers are coded in C++ and there are reasons for that.
Anyways, there is no particular rule which programming language can be used for <insert purpose here>. If someone doesnt want to bother with C++'s freedom, then he simply chooses a real high-level language where less work and thoughts are needed on, especially about the memory management.
It's always useless to discuss such things, just one more thing: Guess in what language popular webservers are written in (Apache, Nginx).
It's not C++, but starts with C.
Re: Do you think that xanadu will catch?
Quote:
Originally Posted by
Buya
@"The garbage collector doesn't just prevent memory leaks, it facilitates memory safety."
The C# redirector - atleast what I got here, has huge memory leaks. It's wrong to propagate the mainstream "garbage collector = memory leaks impossible".
Also see this:
.net - Memory Leak in C# - Stack Overflow
Thanks for replying. Garbage collector does prevent C++ style memory leaks. Most of examples of memory leaks are where the garbage collector isn't involved (Disposable objects). Also from the D programming language website: Garbage Collection - D Programming Language
Quote:
Garbage collected programs are faster. This is counterintuitive, but the reasons are:
- Reference counting is a common solution to solve explicit memory allocation problems. The code to implement the increment and decrement operations whenever assignments are made is one source of slowdown. Hiding it behind smart pointer classes doesn't help the speed. (Reference counting methods are not a general solution anyway, as circular references never get deleted.)
- Destructors are used to deallocate resources acquired by an object. For most classes, this resource is allocated memory. With garbage collection, most destructors then become empty and can be discarded entirely.
- All those destructors freeing memory can become significant when objects are allocated on the stack. For each one, some mechanism must be established so that if an exception happens, the destructors all get called in each frame to release any memory they hold. If the destructors become irrelevant, then there's no need to set up special stack frames to handle exceptions, and the code runs faster.
- All the code necessary to manage memory can add up to quite a bit. The larger a program is, the less in the cache it is, the more paging it does, and the slower it runs.
- Garbage collection kicks in only when memory gets tight. When memory is not tight, the program runs at full speed and does not spend any time freeing memory.
- Modern garbage collectors are far more advanced now than the older, slower ones. Generational, copying collectors eliminate much of the inefficiency of early mark and sweep algorithms.
- Modern garbage collectors do heap compaction. Heap compaction tends to reduce the number of pages actively referenced by a program, which means that memory accesses are more likely to be cache hits and less swapping.
- Garbage collected programs do not suffer from gradual deterioration due to an accumulation of memory leaks.
Quote:
", there are a large number of libraries. It is a mature language used widely around the world, and it has a great range of good IDEs to program in."
Applies for C++, too.
I didn't say it doesn't apply to C++, but it's still a good reason to use Java.
Quote:
Ofcourse languages as java and C# take away much work that one would have with C++, but that doesn't make it useless for server programming. The low-level argument would have worked for C, but C++ is rather "Mid-Level", for example it offers Smart Pointers which enhance memory security. And according to you, C++ is even more low-level for GUI webbrowsers than for command-line servers, though the main browsers are coded in C++ and there are reasons for that.
Despite what you might think it makes perfect sense to code browsers in C++:
- Has support for accelerated graphics
- Gives control over processes and memory
- Works on all supported platforms
Whereas a 'command-line server' doesn't need these things. Actually using a high level language to build a server is a lot more likely than using a high level language to build a browser.
Quote:
Anyways, there is no particular rule which programming language can be used for <insert purpose here>. If someone doesnt want to bother with C++'s freedom, then he simply chooses a real high-level language where less work and thoughts are needed on, especially about the memory management.
It's always useless to discuss such things, just one more thing: Guess in what language popular webservers are written in (Apache, Nginx).
It's not C++, but starts with C.
No of course not. If you're familiar with C++ go for it, there's a good chance your server will be superior if you're a c++ expert. But on the other hand for people wanting to choose a language, C++ probably isn't the best for writing a server. Why do you think it's always useless to discuss such things, you seem to be doing it :P
Again it's hardly surprising webservers are written in C++, but you must understand that's a different situation.