starcraft and networking in the 90s (part 1)

Writing about multiplayer Starcraft reminded me how strange networking was in 1998. I remember connecting a computer to a modem, which was connected to a phone line (many homes had a second phone number specifically for this purpose). The modem would dial a number and “talk” to a modem on the other end.1

Networking two computers over a phone line seems bizarre to me now. You could connect without an IP address, packet switching, routers, network address translation, or firewalls – all the things we take for granted today.

I remembered Starcraft had other networking options, but I couldn’t remember what they were. So I decided to check.

How to run a game released in 1998? Blizzard still sells a remastered version of Starcraft, but I suspect they removed the weird late-90s networking code, so I tried to run the original version. After many hours fiddling with QEMU and Windows XP settings, I managed to install and launch the shareware version of Starcraft.

Installing Starcraft on Windows XP running in qemu

It turns out that the original Starcraft supported four distinct networking options.

The “Select Connection” screen in Starcraft

These are the descriptions:

ConnectionNumber of PlayersRequirements
Battle.netSupports up to 8 players.Your computer will need the TCP/IP protocol installed and must provide TCP/IP support for 32-bit applications. You may connect to the Internet directly or via Windows (R) Dial-up Networking.
Local Area Network (IPX)Supports up to 8 players.Your computer will need the IPX protocol installed, and it must be connected to your opponents’ computers via local-area network cables.
ModemSupports up to 2 players.Each computer will need a properly configured modem connected to a phone line. Modems can be configured by using the Control Panel item called “Modems”. Each player needs a different phone number.
Direct Cable ConnectionSupports up to 4 players.The computers must be linked together using a null-modem cable that is connected to a free serial port on each computer.

According to the manual, the Macintosh version also supported AppleTalk, which was Apple’s proprietary LAN networking protocol.2

I love that the descriptions casually reference networking terms like TCP/IP, IPX, and null-modem cables.3 These aren’t hidden away behind an “advanced settings” panel; they are shown immediately to users who click “Multiplayer” from the main menu. Were computer users in 1998 really this technical? I certainly wasn’t. But this was typical of software at the time: developers expected users to figure things out.

These descriptions also show how novel the Internet was in 1998. TCP/IP was just one of several supported protocols, with no guarantee that your operating system could understand it! There is a charming line in the user manual: “If you are having problems connecting with call your Internet Service Provider and ask for their most up to date 32-bit program to connect to the Internet.” Today, billions of computers use TCP/IP, while IPX has become a mere footnote in the history of networking protocols.

Given all this complexity, it’s perhaps unsurprising that the user manual tries to lower expectations:

It is important to note that any multiplayer game is limited by the quality of the connection of all of the systems involved. Heavy network traffic, poor cabling, line noise, latency, and other environmental effects can adversely affect the reliability and performance of a multiplayer game.

Networking in the 90s was hard! I can imagine Blizzard wanted to avoid providing tech support for thousands of home networks. Nonetheless, they had to provide some support to keep their users happy, as we will see in part 2 of this series.

This is the first post of a two-part series on Starcraft and networking in the 90s. Part 2 explores the support documentation included on the Starcraft CD.

  1. Out of curiosity, I once configured Starcraft to use my friend’s home phone number, the one his family used to talk to human beings. He picked up and got blasted with noise from my modem. ↩︎

  2. I remember being fascinated that the Macintosh and Windows version of the game could communicate at all, since Macs and PCs in the 90s were otherwise almost completely incompatible. ↩︎

  3. It surprised me that none of these options mention Ethernet explicitly. I believe IPX usually ran on top of of Ethernet at the link layer, and I would have expected Ethernet to be widely deployed by the late 90s. But the term “Ethernet” isn’t used anywhere in the Starcraft UI, manual, or support documentation. ↩︎