|Informative Information for the Uninformed
By virtue of supporting so many different game clients (at present, there are 11 distinct Blizzard-supported programs that connect to Battle.net), Blizzard has a sizable version-control problem. In fact, this problem is compounded by several issues.
First, many client game patches add or change the protocol in significant ways. For instance, the notion of password-protected, persistent player accounts was not originally even designed into Battle.net, and was added at a later date via a client patch (and server-side modifications).
On top of that, many clients also have very significant differences in feature support. To give an example, for many years Diablo and Diablo Shareware were both supported on Battle.net concurrently while Diablo supported user accounts and the shareware version did not. As one can imagine, this sort of thing can give rise to a great many problems. The version control and update mechanism is not separate from the rest of the protocol. Indeed, the same server, and the same connection, are used for version control, but a different connection to the same server is used for the transfer of client patches. As a result, any compliant Battle.net server is required to support not only the current Battle.net protocol version that is in use by the current patch level of every existing client, but it must also support the first few messages used by every single version of every single Battle.net client ever released, or at least until the version checking mechanism can be invoked to distribute a new version (which is not the first task that occurs in some older iterations of the protocol).
To make matters worse, there is now a proliferation of third party clients using the Battle.net protocol (to varying degrees of accuracy compared to the Blizzard game clients they attempt to emulate) in use on Battle.net today. This began sometime in mid-1999 when a program called ``NBBot'',authored by Andreas Hansson, who often goes by the handle ``Adron'', entered widespread distribution, though this was not the intent of the author. NBBot was the first third party client to emulate the Battle.net protocol to an extent that allowed it to masquerade as a game client. Several years later, the source code for this program was inadvertently released to wide-spread public distribution, which kicked off large-scale development of third party Battle.net protocol clients by a number of authors.
Despite all of these challenges, Blizzard has managed to keep Battle.net up and running for nearly a decade now, and claims over a million active users. However, the road leading up to the present day has not been ``clear sailing'' for Blizzard. This leads us into some of the specific problems facing Battle.net leading up until the present day. One of the major classes of problems encountered by Blizzard as Battle.net has grown is that it was (in the author's opinion) simply not designed to support the circumstances in which it eventually ended up being used. This is evident in a variety of events that have occurred over the past few years:
Although it is difficult to provide exact details of these changes, having not worked at Blizzard, many of them can be inferred.