Main Menu

Projects

Linux Games
Linux Games
SmartSection is developed by The SmartFactory (http://www.smartfactory.ca), a division of INBOX Solutions (http://inboxinternational.com)
Articles > Reviews > Linux > Lesson of the Day: Proprietary software sucks for the user
Lesson of the Day: Proprietary software sucks for the user
Published by Anonymous on 2007/6/28 (3437 reads)
As probably most Free/Open-Source Software (FOSS) users know, proprietary software can be pure evil for users. The problem with proprietary isn't that we don't have access to the source code like many think. The software developer can have good reasons to hide the code. But as soon as the software stops working, we are at the mercy of the developer. Following is a story about a bug in the World of Warcraft game client and my attempt to have it fixed.


Blizzard did a fine job with the game client. It works quite well even under Wine, the MS Windows emulation layer for Unix systems. However, a small bug clouds the game experience for those playing WoW under Wine by the fear of unexpected crashes. And even though Wine is not a supported platform, thousands of users use it.

Those playing WoW in the early days may remember a bug in the OpenGL renderer that caused the targeting circle to be drawn on the wrong side of the ground, thus making it invisible. The targeting circle is an important game element for some classes. Combined with the fact that the MacOSX client (an official game client supported by Blizzard) has only the OpenGL renderer, this bug made the game hard to play for many users. This bug was also noticeable when running WoW inside Wine. One user who played WoW under Wine found out that WoW was passing a wrong value to one OpenGL function. He modified Wine to correct the value before calling the real function and the targeting circle appeared on the correct side of the ground. He made his findings public and from that point on, Wine users aware of the fix have had the pleasure of having a targeting circle. Even though some users reportedly contacted Blizzard to make them aware of the bug and the fix, the software company stayed quiet and didn't fix it.

I was also playing WoW at that time and was upset that Blizzard hadn't responded; however I knew a developer who was working for Blizzard. He was kind enough to respond to my bug report and confirmed it. The bug was fixed a few versions later. It is important to remember that the bug affected all platforms, so Blizzard had a real interest in fixing it.

Everything went back to normal - until users playing WoW under Wine started to report a crash when they changed graphics settings in-game. This appeared to be a regression in Wine's code. As a software developer myself, and an occasional contributor to Wine, it wasn't hard for me to track down which change broke WoW. But something was strange with this crash; I started digging deeper and as time passed, I was able to roughly reconstruct which Win32 functions WoW calls and how it behaves. I also spent a great deal of time reading the MSDN and OpenGL specifications but I wasn't able to find any indication as to why WoW should behave like it did. Instead, I was more and more convinced that it was actually a bug in WoW and not Wine. A subtle one, but a common one in the C/C++ programming language: an off-by-one error.

My proof at that time was a trace of functions WoW was calling in different situations. Since Wine isn't a supported platform, I didn't want to send the bug report to Blizzard without further investigation. Time passed and I stopped actively playing WoW, though I kept my account. I regularly checked whether Blizzard fixed that bug but how could they? There were not aware of it. Even though I swore to never contact the Blizzard developer again, I finally sent him the bug report. This time unfortunately I didn't get any answer, nor was the bug fixed one month after I sent the email.

I still don't actively play WoW, but the fact that the bug still hasn't been fixed upsets me. Maybe for Blizzard it wasn't proof enough that it's a bug in WoW? I thought how else I could convince them and started disassembling the WoW executable. It wasn't too hard to find out where exactly the code that was responsible for the bug is located. And indeed there it was, the off-by-one error. I copied the relevant code parts into a new thread in the Technical Support forums, but the forums have such high traffic that the thread quickly vanished.

I suspect that Blizzard doesn't have any interest in fixing that bug because it doesn't affect any of the supported platforms, but in the past they showed support for players using Cedega (a proprietary version of Wine) by reverting bans on them caused by false reports of Warden. certainly, bans are more severe than a mere crash that can be avoided, but the crash nonetheless restricts users.

The very last possibility I see is to make the public aware of how Blizzard behaves towards bug reports and have the public pressure do its job. Even though having this bug fixed wouldn't have any impact on the game running under MS Windows, and thus on the majority of the WoW userbase, it would very much improve the situation for thousands of users using Wine.


Resources:

WineHQ bug report: http://bugs.winehq.org/show_bug.cgi?id=6900
Blizzard contact email: support@blizzard.com
  View this article in PDF format Print article Send article

Navigate through the articles
Previous article Open SUSE 10.3 Review: Debian 4.0 Next article
The comments are owned by the poster. We aren't responsible for their content.
Linux Games
Linux Games
Terms of Use · Privacy Policy · Creative Commons License · Credits · Linux Games · Linux Games · World Time · Vereins Intern