Filesystem: Difference between revisions
No edit summary |
m (link) |
||
Line 1: | Line 1: | ||
Games using the Quake 3 Engine, such as Jedi Outcast and Jedi Academy, use a virtual filesystem. | Games using the Quake 3 Engine, such as [[Jedi Outcast]] and [[Jedi Academy]], use a virtual filesystem. | ||
It works similarly to ''mounting'' in Linux: When a certain file is requested, for example "models/players/kyle/model.glm", its actual location can be in any of the mounted directories/pk3 archives; it does not matter which one. This makes the game extendible: New files can simply be put into an additional .pk3 archive that will get mounted at startup. | It works similarly to ''mounting'' in Linux: When a certain file is requested, for example "models/players/kyle/model.glm", its actual location can be in any of the mounted directories/pk3 archives; it does not matter which one. This makes the game extendible: New files can simply be put into an additional .pk3 archive that will get mounted at startup. |
Revision as of 13:44, 29 August 2015
Games using the Quake 3 Engine, such as Jedi Outcast and Jedi Academy, use a virtual filesystem.
It works similarly to mounting in Linux: When a certain file is requested, for example "models/players/kyle/model.glm", its actual location can be in any of the mounted directories/pk3 archives; it does not matter which one. This makes the game extendible: New files can simply be put into an additional .pk3 archive that will get mounted at startup.
So what archives and directories are mounted?
- Any PK3 file inside GameData/base; PK3 files are just renamed .zip files, and only zip compression is supported! One freeware tool for reading and creating zip archives is 7-Zip.
- Any PK3 file inside GameData/currentmod, if you're inside a mod
- In Single Player, and in MP if the CVar "sv_pure" is set to 0: any loose files and folders in GameData/base and GameData/currentmod
So, to get back to our example of "models/players/kyle/model.glm": In unmodified Jedi Academy Single Player this would search for:
- "GameData/base/models/players/kyle/model.glm"
- for "models/players/kyle/model.glm" inside "GameData/base/assets0.pk3", "GameData/base/assets1.pk3", "GameData/base/assets2.pk3" and "GameData/base/assets3.pk3"