Uninformed: Informative Information for the Uninformed

Vol 2» 2005.Sept


Introduction

First, a bit of historical and background information, leading up to the present day. Battle.net is an online matchmaking service that allows players to set up online games with other players. It is quite possibly the oldest and largest system of it's kind currently in existence (launched in 1997).

The basic services provided by Battle.net are game matchmaking and chat. The matchmaking system allows one to create and join games with little or no prior configuration required (other than picking game parameters, such as a map to play on, or so-forth). The chat system is similar to a stripped-down version of Internet Relay Chat. The primary differences between IRC and Battle.net (for the purposes of the chat system) are that Battle.net only allows a user to be present in one chat channel at once, and many of the channel parameters that IRC users might be familiar with (maximum number of users in the channel, who has channel operator privileges) are fixed to well-defined values by the server.

Battle.net supports a wide variety of Blizzard games, including Diablo, Starcraft, Warcraft II: Battle.net Edition, Diablo II, and Warcraft III. In addition, there are shareware versions of Diablo and Starcraft that are supported on Battle.net, as well as optional expansions for Diablo II, Starcraft, and Warcraft III. All of these games share a common binary communication protocol that has evolved over the past  8 years, although different games have differing capabilities with respect to the protocol.

In some cases, this is due to differing requirements for the game clients, but usually this is simply due to the older programs not being updated as frequently as newer versions. In short, there are a number of different dialects of the Battle.net binary protocol that are used by the various supported products, all at the same time. In addition to supporting an undocumented binary protocol, Battle.net has for some time now supported a text-based protocol (the ``Chat Gateway'', as officialy documented). This protocol supports a limited subset of the features available to clients using the full game protocol. In particular, it lacks support for capabilities such as account creation and management.

Both of these protocols are now fairly well understood and documented certain persons outside of Blizzard. Although the text-based protocol is documented and fairly stable, the limitations inherent in it make it undesirable for many uses. Furthermore, in order to help stem the flood of spam on Battle.net, Blizzard changed their server software to prevent clients using the text-based protocol from entering all but a few pre-defined chat channels. As a result of this, many developers have reverse engineered (or more commonly, used the work of those who came before them) the Battle.net binary protocol and written their own "emulator" clients for various purposes (typically as a better alternative to the limited chat facilities provided by Blizzard's game clients). These clients emulate the behavior of a particular Blizzard game program in order to trick Battle.net into providing the services typically only offered to the game clients, hence the name ``emulator client'' 2.1. In fact, there are also partially compliant server implementations that implement the server-side chat and matchmaking logic supported by Battle.net to varying degrees of accuracy. One can today download a third party server that emulates the Battle.net protocol, and a third party client that emulates a Blizzard client supporting the Battle.net protocol, and have the two inter-operate.