SDL is used on Linux and I think also Mac for window management. It isn't used on Windows (yet). There's other platform-specific code as well. SDL was never in the commercial release of the game. GHOUL2 (.glm) is a proprietary format created by Raven for SOF2 and later adapted for JK2/A. It was rather controversial for its time due to the level of graphic violence that was portrayed in SOF2 (but was toned down for JK2/A). The ghoul2 folder is the renderer and physics code for it. The game still uses MD3 models for a few things. ICARUS is the singleplayer scripting system (.IBI files) As for game/cgame/ui, Quake 3 runs up to three concurrent virtual machines. These were originally in QVM files, which were more LLVM-like in nature. JA (specifically) alters this so they are compiled as native binaries. In multiplayer, these compile into three different DLLs: cgamex86.dll, jampgamex86.dll and uix86.dll. The cgame module is essentially the client-side virtual machine, while game is the server-side. Each mod can have its own cgame/game DLLs so it can have its own behavior without having to modify the engine. In singleplayer, the UI module is absent (it's part of the engine), and the game and cgame modules are combined as simply jaspgamex86, since the client/server separation is not necessary in SP. OpenJK modifies the loading procedure for SP so that the jaspgamex86 can be used from a different folder. Are you more interested in MP or SP?