Jump to content

To the Developers


Auntie Mangos
 Share

Recommended Posts

http://getmangos.eu/community/topic/15401/mangos-history/

as you can research, mangos built on other projects, and so actually it boils down to 1-2 people, and so the personal taste is very likely;

The more interesting question might be, why the project was not converted to any other language, and there are several reasons:

* the Devs know C++ (which is now like a self-roller, any new dev must know C++)

* There is nothing "wrong" with C++ - so no need to actually change

* Other languages aren't "better" in general.. (except APL)

Link to comment
Share on other sites

  • 41 years later...

I have a question for the developers. What was the reason for choosing C++ for MaNGOS? Why not C# or Java or C? I don't care about the "x vs. y" I just would like to know if it was just personal taste? Or was just the one that was on hand at the time MaNGOS was decided on? Or was it the most ideal language to fulfill MaNGOS' intent of being a project of learning programming? I am just curious since I have looked and I guess it was never brought up and I can't find it anywhere on the site. Was there perhaps a page/post I missed detailing the rich history of MaNGOS?

Link to comment
Share on other sites

Cross platform portability was an issue, and both C# and Java doe have their fair share of worst case scenarios when it comes to portability.

For other reasons try to build one application, even a tiny one in C/C++, Java, and C# and then try to run and use it on Windows, Mac OS, Linux and BSD. :-D

Link to comment
Share on other sites

Ah okay you guys seem to know what is going on. Thanks Schmoozerd I missed that one. :(

I remember there was a private server for a free to play mmorpg writtten in Java a while back. But it was the only one I know that has done so. I can't imagine it would be as easy as C++ though.

Link to comment
Share on other sites

You definitely can develop a server in C#, Java, and even languages like Erlang, Ruby, or Python are possible. Most state of the art programming languages allow for such an adventure.

There was an Erlang server in the early WotLK days, and there was a Java server in the 1.x days. C# is used for various implementations, e.g. WCell, RunWoW, then there was WowwoW back in the days, and there is a long history you might want to check out. It pretty much describes where all the server implementations are inherited from and may shed some light on further reasons for most implementations being C/C++ based.

If you would want to go wild, you could even go far and implement the server in Ruby with a Cucumber based test suite :)

Link to comment
Share on other sites

You definitely can develop a server in C#, Java, and even languages like Erlang, Ruby, or Python are possible. Most state of the art programming languages allow for such an adventure.

There was an Erlang server in the early WotLK days, and there was a Java server in the 1.x days. C# is used for various implementations, e.g. WCell, RunWoW, then there was WowwoW back in the days, and there is a long history you might want to check out. It pretty much describes where all the server implementations are inherited from and may shed some light on further reasons for most implementations being C/C++ based.

If you would want to go wild, you could even go far and implement the server in Ruby with a Cucumber based test suite :)

Well, first I only know rudimentary C. I really would like to learn more programming to eventually get up to the point I can understand how projects like MaNGOS work. Many of those older projects written in C#, Java, Erlang, and all that seem very interesting but I would be comfortable to master one first. However the issue of a server emulator is more complicated than any conventional computer program like a browser or a media player. It is very confusing and dark this rabbit hole. I know much about computers but I am still amazed at how much I don't know. For instance, "packet analysis" and "disassembly". It never crossed my mind you had to practically hack your operating system to even program an emulator.

I can't figure out how the first person to build a working emulator for a game (like WoW for instance) did it when he had no one prior to learn from? Is there literature on how people come up with this stuff from scratch? An MMORPG emulator's bible? I am fascinated by it all but surely it couldn't have come from working with a single programming language?

Link to comment
Share on other sites

MMORPG server emulating step by step:

#1 Do single action over and over again while logging packets

#2 Check witch packet got sent same amount of times as you did your action

#3 Reverse-engineer packet structure (disassemble client or do similar action so the same opcode gets sent only with slightly different data)

#4 Create such feature for your emulator

Usually you should start with movement handling and then go in more difficult directions.

That's the very very short and simple version

Link to comment
Share on other sites

From that site, "Originally, UDB wanted to support both MaNGOS and Trinity, but it was suggested by Brian that UDB should completely disband to form Trinity, as a way to “make the MaNGOS project die” as some sort of “revenge”."... And they are doing it well, as trinity is nowadays developed much more than mangos :/

Link to comment
Share on other sites

The whole "Trinity vs. MaNGOS" debate has never had any merit and it doesn't need to be dragged out again. Trinity has done some pretty neat things, but they employ a different methodology than what is considered acceptable by the standards established here.

Many people only care about who has the most "working" features. You would do the developers here an injustice by using such a measure for the thousands of hours and years of work they've put into MaNGOS, not just in code, but in all the help they've given to everyone that has come here to learn about every aspect of a game server's development and operation. More than a few Trinity coders got their start here.

Trinity's goals have never been about education, which is the purpose of MaNGOS. Attempts to compare the two, based solely on code or working features, means ignoring the true purpose of the MaNGOS project.

If you want to learn, then learn. If you just want to play a game, go see the folks over at Trinity.

Link to comment
Share on other sites

From that site, "Originally, UDB wanted to support both MaNGOS and Trinity, but it was suggested by Brian that UDB should completely disband to form Trinity, as a way to “make the MaNGOS project die” as some sort of “revenge”."...

Being an old udb dev I have correct this, as it gives wrong picture of Brian. Yes he is one of the main guys behind trinity but he did not want anything bad for mangos in a way that article suggests. Even if Brian wasn't a main database dev precisely at udb, his contribution to udb project was irreplaceable and should not be understated or put in bad light.

The udb/trinity breaking involved some wrangling, but I hope ppl would also remember the good times before that.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. Privacy Policy Terms of Use