How do WoW private servers work - and why I hate most of them
Jan 29, 2021 12:16 · 2124 words · 10 minute read
I’ve been fascinated by WoW emulation since I was 14 I remember that the first time I joined one of these “special realms” there were a lot of bugs, but you could play for free at least. You know? I didn’t have a red cent at that time, so I had no alternative.
00:26 - At 15 I began wondering how private servers actually worked and could exist especially from a technical perspective Did someone steal the code from Blizzard maybe? I had no idea – I was so young and inexperienced at that time Despite that, I started messing around and with the help of an old friend of mine - Fabio, I finally managed to install a WoW server on my own PC. Back then I couldn’t even imagine the amount of satisfaction I would get how many things I would have learned thanks to this magical world It may sound weird, but this world still fascinates me now, as an adult at the point that I dedicated an entire Master’s Degree thesis in Computer Science to this topic! But still… I hate most of the private servers and I really want to explain why In order to make you understand my point of view, I need to dwell on a small technical parenthesis about WoW working processes which I will try to put in simple words At the software level, there are two programs that could be considered as the main actors of this game: CLIENT APPLICATION which is the actual “World of Warcraft” program installed by every player on their computer in order to access the game SERVER APPLICATION which is the program that runs on the server machines The process is very simple, all clients or players connect to a Server in order to interact with each other.
The client knows the server address as it is stored in the famous “realmlist. wtf” that’s why you have to modify this file in order to switch to another server When playing on private servers, the principle is exactly the same. The difference lies in the software you use.
02:28 - CLIENT. Everyone has access to the original World of Warcraft client.
02:32 - You can easily get it by buying it or downloading it online This program is exactly the one that you would use to play on the official server Obviously different private servers have different client versions, but they always refer to the original client You just need to make a small change to the “realmlist. wtf” replacing the address of the retail server address with the one of a private server That’s it.
03:01 - SERVER. The server is completely different. Nobody outside Blizzard has access to the original software that runs the official World of Warcraft servers So these applications are completely different from the original one.
03:18 - Every software that runs private servers have been created through the “reverse engineering” technique which, in simple words, means The question now is: who implemented this software and when did it happen? Who creates the software applications that run WoW’s private servers, and how do they do it? You don’t need to be an expert to understand that writing a server application for an MMORPG with such a big scope like World of Warcraft is certainly not child’s play Blizzard is a big company with thousands of employees Writing a program that “imitates” the operation of their server application is certainly not trivial or feasible for a single individual (or a small group of programmers).
04:23 - And it’s not just a matter of complexity. Let’s think of very trivial but repetitive tasks, like: adding every single NPC into the world including every single item of their loot with its own percentage of chance A huge amount of work…
04:38 - Not to mention all the very complex tasks that require hours of study and testing such as spell mechanics boss mechanics etc…
04:48 - In short… . not even the best programmer in the world could be able to do all this work on her/his own.
04:56 - Yet there are private servers, and the software that makes them run And some private servers are now able to offer a game quality that is not far from the original one! here I refer mainly to the old expansions How is that possible? Just to make it simple: an open source program is a program whose code is public. In the context of private servers, the open source plays a fundamental role Some veteran gamers may remember that once the game quality on private servers was really bad Almost nothing worked For example, if you were a rogue in stealth you could be targeted by anyone who wrote /target Yourname Guess which class I chose for my first character… The real revolution was MaNGOS It’s an open source project created in 2005, whose purpose was to provide a server application for World of Warcraft The great news of MaNGOS, as well as its strength, was the fact that as an open source application its code was completely public, and any user from all over the world could study it and offer their own contribution both in terms of adding or fixing game mechanics, but also in terms of reporting bugs Only in this way, thanks to the contribution of many volunteers of different nationalities it was possible to develop a server application capable of emulating World of Warcraft with a higher game quality.
06:50 - In 2009 another important project was born TrinityCore To this date, the overwhelming majority of private servers run on MaNGOS/TrinityCore-based applications.
07:05 - Over the years, different projects were born, and they were based on the MaNGOS/TrinityCore code which mainly vary according to the supported WoW version For example AzerothCore for 3. 3. 5 OregonCore for 2. 4. 3 SkyFire for 5. 4. 8 CMaNGOS for Classic/TBC/WOTLK, and many others All of them based on MaNGOS and/or TrinityCore.
07:33 - So the private servers have reached such a quality only thanks to the many contributors who have implemented more and more game features over the years, from 2005 to this day Apologies for the flashes, rendering problems.
07:52 - Suppose that Alice and Bob have a private server each, and let’s assume they are on the same version of the game Both Alice and Bob want to release a new content to their players, which has been closed so far because the bosses A, B, C and D are quite buggy Alice is a very good developer and can fix both A and B bosses Bob is still a beginner and only fixes the boss C In an ideal world, Alice and Bob work together and exchange their fixes.
08:26 - As a result, both of their servers will have perfectly fixed bosses A, B and C In addition, Alice and Bob will join forces in order to work on D as well.
08:40 - As a result, the players on both servers are very happy. They dont have any problems with the bugs, since the developers are collaborating together in order to fix them However, in the real world, Alice and Bob are rivals and so they wage war against each other In Alice’s server, only bosses A and B work. While in Bob’s server only C Some players move from Bob’s server to Alice’s one. Bob’s server closes after a while Some of Alice’s server players stop playing because they get tired of always doing only A and B because C and D don’t work.
09:27 - As a result, the players on both servers are unsatisfied Alice made more money through player donations than Bob did Actually, the MaNGOS/TrinityCore code (and their derivated projects) is released under the GNU GPL license.
09:46 - In simple words, this license says the following: Basically, the license of these projects requires those who use them to publish any changes to the public.
10:07 - Of course, most private servers use this license as toilet paper Otherwise, there should be no private server that is “better fixed” than others.
10:19 - Here it is a list of lies that the administrators of many WoW private servers keep telling to their players It doesn’t matter how many changes “you” made. However, you started with a MaNGOS-based project Maybe you’ve made some improvements, but most of the code is still MaNGOS or TrinityCore’s Maybe you are really good and you have rewritten most of the code over the years Still! you started from MaNGOS. Without it, on day 1 you wouldn’t even have got the login feature working In the vast majority of cases, none of them has really fixed anything They have just downloaded the fixes coming from the open source community and applied them to their core Still they take all credits.
11:16 - Some private servers really fix stuff on their own.
11:20 - They often have dedicated development teams that are paid with the money coming from players’ donations. Most of them do not share these fixes with the development community.
11:29 - Well, the community that gave FOR FREE the software you are using to run your server is asking you to share them but you still keep it private Alright dude. Try to think about this: if ALL the developers did what you do, neither you nor your private server would even exist Simply because neither MaNGOS, TrinityCore, AzerothCore, etc… would exist! These projects exist thanks to developers who, unlike you, shared their code.
12:15 - There is nothing to “steal”. They can’t “steal” the code because it doesn’t “belong” to you.
12:22 - No, not even if you really wrote it. The open source philosophy is clear: Oh don’t you agree? Alright.
12:39 - Then don’t use any open source code and write your own WoW emulator from scratch.
12:53 - I totally understand that this whole story about ethics and licenses matters very little to the average World of Warcraft player Players just want to play on a stable and well-fixed server, they don’t care much whether this server collaborates with open source or not.
13:12 - But… try for a moment to see it from another perspective Developers of the open source projects basically don’t care much about what private servers do Of course, as a developer it pisses you off to see some random server administrator taking credits for your work but in the end it doesn’t change your life. Many open source developers just do it for fun and educational purposes Actually, if ALL private servers collaborated with open source, the players’ lives would change completely! every server would provide a much better game experience for any expansion The example of Alice and Bob mentioned before can be applied to this case as well.
13:55 - However, the reality is just that: there are many private servers around the world, each of them always works on the same things, racing to do them sooner and better. If they collaborated with each other instead, they would avoid doing unnecessary work and would have more time and workforce They would surely be able to achieve much more If a private server closes, and its developers have not shared their work, that work will be lost forever The most interesting thing is that all the MaNGOS-based projects are completely public, so it is possible to accurately verify who contributed to them.
14:49 - all the contributors list of these projects are absolutely public and ANYONE can verify who actually fixed what Any open source project (generally hosted on GitHub) has the list of commits realised by the different developers For each commit, both the author and the date are there.
15:07 - It is very easy to verify this information, just open the official repository of any emulator Google for example “TrinityCore github” or “AzerothCore github” and just have a look. You will see who-does-really-what You will see all the lines of code, their authors, other devs’ comments, etc. You will see everything. No more lies! if you agree with this philosophy, you may be interested to join ChromieCraft because it’s a NO-profit server developed by volunteers that share 100% of their work with AzerothCore the open-source project behind the emulation of WoW 3.
- 5a I’ve tried to explain things here as simple as possible, so what you are going to read might not be 100% technically accurate/detailed but I really did my best to put things in simple words in order to make it understandable for non-developers.
16:04 - Links will be provided in the description Thank you for listening, and have a wonderful day… .