Westwood Online is a peer-to-peer gaming network which uses several protocols for chatting/gaming. The main portion of WOL is based on the IRC protocol. There are two versions of WOL: the WOLv1 protocol which is used by Westwood Chat client (later called Westwood Online). This client connects to a meta-server for chatting and arranging games. The Westwood Chat Client is an application used to launch a game and is not integrated into the game itself. Later games supported the WOLv2 protocol internally, you could search for games and chat without having to exit the game.
WOLv1 clients connect to two servers hosted at irc.westwood.com and gameres.westwood.com. The first one uses a modified IRC server protocol and is used for chatting, and negotiating games. The client (not the protocol) sets up games and sends game data to the server which then sends it to other clients. This server will be called WOL IRC server in this wiki. The gameres protocol is a binary protocol used for sending game results information to the server after a game is over.
WOLv2 uses many servers. First, clients join the servserv.westwood.com server which is a meta-server. This server sends list of chat servers (which are enhanced version of irc.westwood.com servers), gameres servers, ladder servers, wdt servers, port mangler server etc. All of these servers will be described below.
Because WOLv1 and WOLv2 are nearly identical, both are covered together here with the differences highlighted.
List of clients supported by WOLv1 through Westwood Chat clientEdit
* Command & Conquer (and datadisc) * Red Alert Win95 (and all datadiscs) * Sole Survivor * Monopoly
List of clients supported by WOLv2Edit
* Red Alert Win95 * Dune 2000 * Tiberian Sun * Tiberian Sun Firestorm * Red Alert 2 * Yuri's Revenge * Nox * Nox Quest * Emperor: Battle for Dune * Renegade
WOL ServServ ProtocolEdit
WOL ServServ is WOLv2 service only. It using standart IRC protocol concept of commands and server replyes but is not used for any chat/games functions. This server uses hostname servserv.westwood.com and port 4005. This is hardcoded on client side. Server is used for Gateway stuff - all WOLv2 clients firstly connect to this server and get list of possible WOL IRC servers. They are divided geographically over the world ie. US West, Europe, Asia.
List of supported commands:
WOL IRC ProtocolEdit
WOL IRC protocol is modifed standard IRC protocol. Is used by both versions of WOL - WOLv1 and also WOLv2. In WOLv1 using this server hostname irc.westwood.com and port 4000. WOLv2 client is linked to server by WOL ServServ server so hostname or port can be various.
List of commands:
WOL Ladder ProtocolEdit
This is a WOLv2-only textual protocol. It describes a players rank/wins/losses/disconnects or badges of honor for players/clans.
This server does not keep a live connection with the client, a connection is only made for transferring ladder data and then closed.
List of commands:
Westwood Ladder LISTSEARCH command Direction: Client -> Server (Sent) Used by: All LadderServer products Format: LISTSEARCH SKU -1 0 0 0 :[nick_1]:[nick_2]:[nick_n]: Example: LISTSEARCH 4608 -1 0 0 0 :Nick1:Nick2:NickN: Format: HIGHSCORE SKU -1 :nick1: Remarks: This command is used for getting Rank of [nick] in any WOLv2 game.
Game is specified by SKU. This message is sent if client connect to Lobby. As [nick] is sent anyone Nick that is joined in Lobby.
Direction: Server -> Client (Received) Used by: All WOLv2 products Format: [rank] [nick_1] [points] [wins] [losses] 0 [disconnects]
NOTFOUND Example: 8 Nick1 20 4 1 0 1 NOTFOUND 425 NickN 36 8 6 0 4 Remarks: If server found [rank] of [nick_1] than send first message, if no than send NOTFOUND message.
Each message is sended on one line. In exemple havent [nick_2] record in database.
Decoded Gameres This may come in use for ladder server command's.
TECH : Technology Level TECH 00 06 00 04 [00 00 00 0a] (in hex = 10)
SPED : Game Speed SPED 00 01 00 01 [00 61 73 74] (text = ast = FAST)
GSKU : Game SKU GSKU 00 06 00 04 [00 00 1c 00] (in hex = 7168)
SID# : Game Session ID SER# : Game / Player Serial IDNO : Game ID Number
AIPL : AI Players count AIPL 00 06 00 04 [00 00 00 00] (in hex = 0)
CRED : Starting Credits CRED 00 06 00 04 [00 00 27 10] (in hex = 10 000)
BASE : Bases On/Off TIBR : Tiberium On/Off CRAT : Crates On/Off FLAG : Capture the Flag mode On/Off
SCEN : Scenarion (Map) SCEN....A Path Beyond (Lg)..
UNIT : Start Unit count UNIT 00 06 00 04 [00 00 00 0C] (in hex = 12) UNIT 00 06 00 04 [00 00 00 00] (in hex = 0)
DURA : Game Duration
VERS : Version DATE : Date...
Player Informations: (x is Player 0 - 7) NAMx : Player Name IPAx : IP Address SIDx : Player Side/Country CRDx : Credits COLX : Player Color CMPx : Ranking system for wins losses and disconnects SHRT : Short game on off MODE : Game mode 0 = normal 1 = tourn 3 = observer 4 = battle clan HRVx : Harvester truce SUPR : Super weapons
CMPx 00 06 00 04 [00 00 02 00] (in hex) 1=WIN 2=LOSE 3=DISCONECT
WOL GameRes ProtocolEdit
Is an binary protocol and is used by all client versions. WOLv1 using hardcoded hostname gameres.westwood.com and port 4807. WOLv2 recives hostname and port throught ServServ server. After game is designed through WOL IRC protocol and is done, all clients sends Game Resolution. This is way how WOL Ladders works.