dimanche 6 décembre 2015

Are vanilla wow servers getting more bug-free?

World of Warcraft private servers have existed since at least 8 years. And yet today players still face some bugs ranging from pets killing themselves [1], NPCs not using any abilities [2] or spawning into trees [3] to raid bosses timers and spell mechanics tuned harder than expected or not working correctly [4]. This is not specific to a single server, it happens on all of them. Why is that?

First it is important to know that many private servers (but not all) use what is called cores (or tools to make it very simple) to emulate the game world. For example Mangos, Trinity and Arcemu are some of the currently prevalent cores. Those are often associated with on-going projects trying to improve them and some of those projects are open source (freely show their databases [where they keep data like players levels, item names, etc] and changes and share it with others, allow people to participate) and others are not. It is not unusual for private servers to use a core and then add their specific changes but to allow only specific members of their community to work on them (the developers). There are many reasons to do that : to preserve their work, to be the only ones with a specific function working (ex: BWL, AQ, line of sight), to go ahead independently of the core project, to make custom changes or fixes, etc. 
This means that many changes and fixes are not available to other server creators. Thus some developers end up having to do fixes that have already been done before. And if a specific server has to be stopped then all the custom work they have done on the scripts (how a specific thing in the world should behave, ex: what a boss does when he is hit) and databases can be lost. The progress is not always linear, there are drawbacks (ex: on Kronos NPC's pets used to attack players correctly, after some change they no longer did, now they do it again). Sometimes this is actually a good thing if the fixes were of low quality, other times it is not.

Now there is something else to take into consideration : to make fixes you need developers or programmers. This is because to fix bugs you will need to make changes to the core, the database and the scripts. And those are written in a coded language that many do not understand and even less are capable to modify to reach specific goals. If you look at the Kronos main page you can see that they are looking for people that know C++, MySQL, Git and Mangos cores, have free time, creativity and are interested in developing the server [5]. If Kronos is still looking for those it is because it is difficult to find players that meet all of those criteria. Developers are scarce.

PHP / HTML coding, what hides behind most webpages.
Let us look further and focus on the process of change that I will illustrate with a picture about the nursing process, that I am quite familiar with.
The nursing process in 5 steps, can also be applied to explain other domains
For the players the first step is a) Assessment, this is when you play and then notice something strange. Maybe you do not care and go ahead, maybe you take a screenshot, make a video, discuss it with friends or go look online about it. This is the process of defining if it really is a bug or not according to your references and step b) Diagnosis. You may then think about sharing it with developers, this is step c) Planning. Sometimes you actually post it on the bugtracker [6] thus reaching step d) Implementation. Then you can check every now and then if the bug has been corrected (assuming it is one), this is the last step e) Evaluation.
5 floating wreckages, that sure is strange but is it really a bug? What if no one fished in days?
For the moderators their job begins once you have posted on the bugtracker, they read and look at what you have added, that is step a). They sometimes ask for more information (or search themselves) or tests to confirm whether you are facing a bug or not (they can be stuck on this step because reliable information about vanilla coming back from 2006 is missing), this is the process that leads to step b) where we make sure it is a bug and look for details about it (is it about a spell mechanic? is it about an item effect? etc.). They then also plan what to do with it step c), send it to the developers, step d) and check back sometime later, step e).
Facts checking, the moderator's hardest job
The developers will then see the bug report and gather information, steps a), specify what is the problem and what is the source of it, step b). Decide on what to do about it, step c), do some code modification and create fixes, step d) and check if it actually works, step e). Did you ever have some homework to do that you had to write and reread again and again and again? It is a bit like that, only with code, tests to do, a server to relaunch for most tries, other people making changes on your work, etc.

This takes time because all these steps happen in the reality of a time-bounded, reality-bounded world. All of those steps have been simplified in this blog post. Steps are sometimes missed, mistakes happen, people forget things, bug fixes sometimes lead to other bugs, interpretations happen, data is sometimes missing, real life takes over. Most of the participants are also not paid and have other jobs and priorities or interests, etc.

So when players often quick changes this is perfectly understandable. But it is important that they keep in mind that the process leading to effective and professionnal changes on private servers can be long and arduous, filled with potential human, software or hardware errors. It depends on a miriad of factors, some of which can hardly be changed. A heavily wanted quick fix can be thought of as bandage. If someone is bleeding and you add bandages he will stop bleeding and have a short term relief, but if the cause was that an artery was cut open and it still leaks blood this will likely not help in the long term, unless you do something more.

Now a last thought... What if an NPC is not casting fireballs if you never encounter it? Does that really affect your game experience? Are you really looking for a perfect server? Or are you looking for a server where you have fun, even if some bugs do happen on occasions? Where do you draw the line and why? Take the time to think about it.

2 commentaires:

  1. It's interesting that you mention the wreckage pools as an example, because I certainly noticed that one. They also tend to spawn stacked on top of regular fishing pools, which I'm pretty sure is not the way it's supposed to be... but then I didn't pay enough attention to fishing in original Vanilla to know for sure.

    You did make me think about all the bugged mining nodes that I've encountered though, maybe I should have reported those...

    RépondreSupprimer
  2. Indeed, and sometimes what we think is a bug used to be a normal thing back in 1.12, or it was a bug already present that should not be changed, it only adds to the confusion players and developers have to deal with.

    I encourage everyone to report the bugs they notice but to also keep in mind that it is likely they will not be top of the developers list :). Fish safely!

    RépondreSupprimer