Pascal's TechBlog

Wednesday, November 30, 2005

Quake 3 Architecture

Since I've been working a bit with the Quake 3 codebase, I've seen how (relatively) clean it was written.

One major merit of the Quake 3 engine is that it has a Quake Virtual Machine which is similar to what the Java VM does, making part of the game code totally platform agnostic. Instead of designing a new language like the folks at Sun did, Id software chose to stick with good ol' C. One major advantage of this approach would be that game code written for the QVM would also still be compilable with a proper C compiler to platform native binaries. For generation of the QVM bytecode Id software took the LCC retargetable compiler and wrote a QVM bytecode generation backend for it. Very cool stuff indeed!

On a similar note, I've just released a new version of the icculus.org/quake3 codebase for Breezy Badger. Now it has my patches enabled by default, to disable them remove the pak_pb.pk3 file from the baseq3 and missionpack directories.

2 Comments:

Post a Comment

<< Home