Writes IEEE Spectrum in an article on ID Software’s technology for video games, and how it has pushed the envelope on the desktop:
n the mid-1990s, Carmack felt that PC technology had advanced far enough for him to finally achieve two specific goals for his next game, Quake. He wanted to create an arbitrary 3-D world in which true 3-D objects could be viewed from any angle, unlike the flat sprites in Doom and Wolfenstein. The solution was to use the power of the latest generation of PCs to use BSP to chop up the volume of a true 3-D space, rather than just areas of a 2-D plan view. He also wanted to make a game that could be played over the Internet.
For Internet play, a client-server architecture was used. The serverwhich could be run on any PCwould handle the game environment consisting of rooms, the physics of moving objects, player positions, and so on. Meanwhile, the client PC would be responsible for both the input, through the player’s keyboard and mouse, and the output, in the form of graphics and sound. Being online, however, the game was liable to lags and lapses in network packet deliveriesjust the thing to screw up a fast action game. To reduce the problem, Id limited the packet delivery method to only the most necessary information, such as a player’s position.
“The key point was use of an unreliable transport for all communication,” Carmack says, “taking advantage of continuous packet communication and [relaxing] the normal requirements for reliable delivery,” such as handshaking and error correction. A variety of data compression methods were also used to reduce the bandwidth. The multiplayer friendliness of the game that emergedQuakewas rewarded by the emergence of a huge online community when it was released in June 1996.