wiki:pk3 files

Version 2 (modified by jpawlick, 13 years ago) (diff)

--

Quagents loads the majority of its assets (including textures, video, sound, in-game models, icons, menu graphics, maps, botfiles, and so on) from pk3 files. A pk3 file is identical to a zip file. pk3 file are loaded in reverse alphabetical order, never overriding files. So, if there are two files of the same name in pak0.pk3 and pak1.pk3, the file in pak1.pk3 will be used. Outside of this collision handling, it does not matter which pk3 file some asset resides in. For organizational purposes, we maintain many different pk3 files, but the game would run just fine if we combined them all into a larger pk3 file.

Most of our art assets come from OpenArena (http://www.openarena.ws/). The OpenArena pk3 files are located at: trunk/openarena_assets, and are copied over into the proper directory as part of the compilation process (make relocate). The OpenArena pakfiles are:

  • oa_pak0.pk3 : contains the majority of icons, special effect textures, sounds, sprites, non-player models, and virtual machine code for OpenArena. We override this virtual machine code with our own in quagents_vm.pk3.
  • oa_pak1-maps.pk3 : contains levelshots (screenshots for loading screens) and maps for running OpenArena on.
  • oa_pak2-players.pk3 : contains models and textures of the OpenArena player characters.
  • oa_pak2-players-mature.pk3 : contains models and textures of the less modest OpenArena player characters.
  • oa_pak4-textures.pk3 : contains brush textures for maps, environment objects, and skyboxes.
  • oa_pak5-TA.pk3 : contains team arena assets. Currently we do not compile Team Arena (the "missionpack"). You can change the makefile if you would like access to the extra features the missionpack provides.
  • oa_pak6-misc.pk3 :

We package some additional Quagents assets in the trunk/urochester_assets folder. These .pk3 files are also relocated as part of the compilation process. The Quagents pakfiles are:

  • quagents_maps.pk3 : contains several simple demonstration maps for Quagents use.

There is one additional pk3 file that is created during compilation. It contains the virtual machine code to run while Quagents is operating. This is created automatically as part of the make process.

  • quagents_vm.pk3

Quagents looks for and loads all pk3 files in all of the following directories (_BASEPATH_ stands for the location of the ioquake3 executable file - it can also be modified by running the ioquake executable with the "+set fs_basepath PATH_TO_RESOURCES" command line flag (so on my machine it would be "+set fs_basepath ~/ioquake3project/quagents/trunk/ioquake3/build/release-linux-i386/")):

  • ~/.quagents3/quagents3/ (Linux-only. On other platforms, start Quagents and pull up the console (press `), then type "\fs_homepath" and see what it says: you can to make a quagents3 folder inside the shown directory and place your pk3s there.)
  • ~/.quagents3/quagents3.pk3 (Linux-only, see above.)
  • _BASEPATH_/quagents3/
  • _BASEPATH_/quagents3.pk3
  • _APPPATH_/??? (MacOSX-only, at time of writing there were problems with running on MacOSX - point is I think it looks in the .app if you package one.)

If you're a student at URCS and you're trying to add your maps to Quagents, it's probably easiest to put them in ~/.quagents3/quagents3/maps/mymapfile.bsp or something like that.

You should be able to change the _BASEPATH_ by defining DEFAULT_BASEDIR in the makefile.

If you attempt to start Quagents and see something similar to the following error:

Couldn't load default.cfg. See "/u/jpawlick/.quagents3/quagents3/crashlog.txt" for details.

It means Quagents cannot locate the necessary resources. Check your filepaths.