How quake.exe got its TCP/IP stack

16 points by fernplus


david_chisnall

My memory is fuzzy here. I don't remember ever running Quake under Windows 95 because you got higher framerates if you quit Win95 first. Once some folks got 3Dfx cards, they insisted on using GLQuake, which meant other people needed to use WinQuake (I'm a bit confused about why now, the Internet suggests that GLQuake could talk IPX? But maybe the DOS and Windows IPX stacks we had didn't play nicely together?).

Quake was a truly impressive piece of software engineering. As I recall, it was originally written on NeXT machines and ported to DOS, along with a bunch of UNIX systems. WinQuake ran on NT (most games didn't). GLQuake ran on NT and a load of UNIX systems.

The game logic was all written in a special Quake dialect of C that compiled to a progs.dat file full of bytecode, which was interpreted (I think one of the open-source forks added a JIT compiler eventually). The same mods worked on DOS as on PowerPC Macs or on any other system (OS or architecture). The equivalent in Half Life (I never looked at Quake 2 modding) was a Windows DLL, which seemed like a huge step backwards.