by John Carmack a week ago at QuakeCon, the godfathers of the first person shooter genre, id Software, have released the source code to Quake 3 under the GPL. FileShack has the 5.46MB ZIP
you will need.
Released way back in 1999, Quake 3 sparked polarised the gaming community, as it eschewed the traditional single-player storyline for pure multiplayer nirvana. The move wasn't to everyone's taste, but the fact that the game is still being used for big money tournament play
six years later is testament to the bold concept.
While it lacked the obvious eye candy of the Unreal Tournament, the engine was successfully licensed to other developers, and underpinned top titles like Star Wars: Jedi Knight II, Medal of Honor, and Call of Duty. Licensing can often produce far more cash than sales of the original game, through the associated fees and royalties generated, and has been a stable earner for id since the days of Doom. Carmack is one of the most talented coders ever to pick up a keyboard, and licensing his genius frees developers to focus on gameplay and other elements, knowing that the engine is rock solid.
Of course, these days the top id engine is Doom 3, and in line with both Quake and Quake II, Carmack & co have released the source code for Quake 3 for the world to play with, under the General Public License
, or GPL. This means it is free to distribute, but if you make any changes for your own project, you must also make that source code freely available.
The source has already been downloaded over 10,000 times from FileShack alone, but unless you are a codie, you stand little hope of understanding most of it. Many will download it out of curiosity, and with any luck, some may produce some cool games with it we can all enjoy. If you want to talk tech, we suggest dropping by this Slashdot thread
, where Carmack has posted a few extra tips:
Personally, I think the Q3 code is pretty clean on the whole. It was a commercial product done under time pressure, so it isn't a polished gem, but I consider it good.
Anyone working on the Q3 codebase today should just delete all the asm code and use the C implementations. Making a commercial game with fairly high end requirements go 10% faster is sometimes worth writing some asm code, but years later when the frame rate pressure is essentially gone, the asm code should just be dumped in the name of maintainability. All the comments in the world wouldn't change this decision a bit.
He's not wrong - once the darling of the hardware benchmarking community, it is now possible
to push Quake 3 to 300 frames per second in 1280x1024. Quite a contrast to 1999
, when "High Quality" meant 800x600 and we didn't have such luxuries as Anti Aliasing, Anisotropic Filtering. If you want a chuckle, check out this Tom's Hardware article
which benchmarks the game on 65 CPUs, from Pentium 100 right up to 3.06GHz Pentium 4.