Quake 3 source code analyzed

id software frequently releases source code to their older titles under the GPL license. It’s a nice gesture of goodwill to the community and gives people an interesting look into how a high end game is created. While most people will just casually glance at the code, Fabien Sanglard digs into each and every release and gives insight into the architecture, graphics rendering, networking, and more. Yesterday he released his findings on the Quake 3 engine.

The analysis is an interesting look at how Quake 3 was written and how it functioned. The AI, for example, was brought in-house as opposed to using a third party solution. Unfortunately, that didn’t last as the in-house programmer did a poor job, so it was later outsourced to Jean-Paul Waveren, the creator of the initial two AIs.

Some of the more interesting tidbits that Sanglard identifies are:

  • The virtual machines system and the associated toolchain that altogether account for 30% of the code released. Under this perspective idTech3 is a mini operating system providing system calls to three processes.
  • The elegant network system based on snapshots and memory introspection.

Overall it’s a very detailed and interesting read. In addition to his own notes, he gives pointers to other books and references. Anybody who is interested in game development owes it to themselves to spend some time reading over not only his Quake 3 assessment, but also the many other reviews he’s done.

Source: Fabien Sanglard's website

Report a problem with article
Previous Story

Deal: Amazon cuts prices on many classic PC games

Next Story

Is Windows 7 now installed on the majority of PCs?

9 Comments

Commenting is disabled on this article.

DAOWAce said,
As always, the images on Neowin are far lower resolution than on the source pages.

Because it's needs to be high resolution to read it? Or it's too hard to click on the source link? That's why they have a source link.

It will be fun to see what kind of devices people could port this to. Remeber the calculator running DOOM? That was genius, IMO.

bjoswald said,
It will be fun to see what kind of devices people could port this to. Remeber the calculator running DOOM? That was genius, IMO.

a calculator? no way... I'm not up on "the know stuff"

TRC said,
Hope to see some new open source games based on it now.

The problem with Quake 3 is its aimed to be a multiplayer shooter. (server/client as per the diagram). This leads to very easy and sometimes creative ways of cheating online and that really does take the fun out of it and can, will and does kill servers off if even one person blentently cheats without regular skilled admins are watching over the server.

That, coupled with the fact that while q3 runs on a lot of older hardware, it doesn't have any improvements when it comes to newer cards and as a result it often performs poorly when complex maps with lots of details are used.

With the likes of the Unreal and Crytek engine's being free and upto date with moden hardware as well as handheld devices/cross platform, there is little interest in developing multiplayer Q3 engine games.

Q3 itself just doesn't leand its hand well to single player based games due to the lack of scripting support and the like. For what it was the Q3 engine was under used in its prime.
A shame really, I lost many hours in Q3A.

Yeah, good point about it being dated now but it would be fun for older hardware. As far as I recall though there were tons of single player games based on the Quake III engine. Star Trek Voyager Elite Force, American McGee's Alice, etc.

Still love playing lan games in E1M7, Must have killed thousands of hours playing Q1.

Q3A was fun but there was something about Quad and the Nail gun in Q1 that made me smile.