What does the pak0.pk3 file contain? Models? Game Logic? Fonts? I’m very interested in the engine for gamedev and I’d like to know what pak0 supplies so that I can replace it.
Almost everything. It’s an ordinary zip archive. Extract files and check it out.
So the other paks contain maps?
Paks with greater numbers were added by following game versions (point releses). You can create your own packs with game data and engine will load it, but you must keep internal directory structure.
If you don’t own Quake 3 you can look at the demo data. Download the Quake III Arena Demo and look at the content of demoq3/pak0.pk3 [50MB]. It’s the only pk3 and has all the content for the demo version (models, game-logic, fonts, maps, etc). The demo is missing some weapons and item icons, models, and sounds found in the full version of Quake 3 (in baseq3/pak0.pk3 [500MB]) but otherwise it’s a pretty bare bones example of required data for Quake 3.
To actually run the demo data on ioquake3 you need to replace files in demoq3/pak0.pk3/vm/*.qvm
(the game-logic) and demoq3/pak0.pk3/botfiles/inv.h
(which must match inventory indexes compiled into the game-logic, otherwise bots only use Gauntlet). You can use the baseq3/vm/*.qvm
or baseq3/*.dll
game-logic in ioquake3 test builds or compile the qvms/dlls yourself (see building ioquake3). Replace botfiles/inv.h with code/game/inv.h in quake3 1.32 / ioquake3 source code and then delete #define WEAPONINDEX_GAUNTLET
line through #define WEAPONINDEX_GRAPPLING_HOOK
as they conflict with defines in demoq3/pak0.pk3/botfiles/weapons.c.
The baseq3/pak[1-8].pk3 were added in updates to the full version of Quake 3. (These changes are missing from the demo version and also acts as a list of what is not in baseq3/pak0.pk3.)
- pak1 - update qvms, add CTF flag icons, updates botfiles
- pak2 - includes all pak1 files. new map (q3tourney6_ctf), textures, and players. q3dm9 map updated.
- pak3 - update qvms
- pak4 - update qvms, large botfiles update, new graphics/sounds co-developed with Quake III: Team Arena
- pak5 - add graphic and shader for medal_capture
- pak6 - update qvms, add graphics and shaders for lightningNew and cg_oldRocket 0
- pak7 - update qvms
- pak8 - update qvms, add punkbuster ui graphic
Thank you! This is an awesome answer!