<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://staging-wiki.unvanquished.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Amanieu</id>
	<title>Unvanquished - User contributions [en-gb]</title>
	<link rel="self" type="application/atom+xml" href="https://staging-wiki.unvanquished.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Amanieu"/>
	<link rel="alternate" type="text/html" href="https://staging-wiki.unvanquished.net/wiki/Special:Contributions/Amanieu"/>
	<updated>2026-04-04T19:45:09Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.8</generator>
	<entry>
		<id>https://staging-wiki.unvanquished.net/index.php?title=Filesystem&amp;diff=3138</id>
		<title>Filesystem</title>
		<link rel="alternate" type="text/html" href="https://staging-wiki.unvanquished.net/index.php?title=Filesystem&amp;diff=3138"/>
		<updated>2014-07-01T11:16:51Z</updated>

		<summary type="html">&lt;p&gt;Amanieu: /* DEPS file */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Unvanquished stores its resources (maps, sounds, textures, models etc) in ''packages''.  To be able to use your own resources or modify the existing one, you will need a basic understanding of how this system works.&lt;br /&gt;
&lt;br /&gt;
= Overview =&lt;br /&gt;
The game looks in two locations (by default) for packages:&lt;br /&gt;
{{Game Locations}}&lt;br /&gt;
&lt;br /&gt;
During startup the game extracts the latest versions of all packages it recognises (how does it know?) into a virtual filesystem.  Every package is extracted to the same spot (confirm?) so duplicate files with overwrite each other (in what order?).&lt;br /&gt;
&lt;br /&gt;
To use your own resources you need to put them into your own package and tell the game to use them.&lt;br /&gt;
&lt;br /&gt;
= Packaging Details =&lt;br /&gt;
== Types ==&lt;br /&gt;
* '''pk3dir''' folders are easier for your to work with, because they are just a folder&lt;br /&gt;
* '''pk3''' compressed files are better to send over the web once you want to release your work&lt;br /&gt;
&lt;br /&gt;
Conversion process: extract or compress and then rename to suit.&lt;br /&gt;
&lt;br /&gt;
== Naming and Versioning ==&lt;br /&gt;
The name of any package is split into three parts, each separated with an underscore:&lt;br /&gt;
* basename (eg &amp;quot;map-nano&amp;quot;)&lt;br /&gt;
* version (eg 2004-04-01)&lt;br /&gt;
* file extension (.pk3 or .pk3dir)&lt;br /&gt;
&lt;br /&gt;
Example: ''map-nano_2004-04-01.pk3''&lt;br /&gt;
&lt;br /&gt;
=== Rules ===&lt;br /&gt;
* Underscores are for separating the three parts, nothing else&lt;br /&gt;
* Map packages must have 'map-' at the beginning of their basename for the engine to filter them properly.&lt;br /&gt;
&lt;br /&gt;
=== Other notes ===&lt;br /&gt;
* A fourth section ([https://en.wikipedia.org/wiki/Checksum checksum]) is sometimes used when downloading maps, but should never be added manually.&lt;br /&gt;
&lt;br /&gt;
== Filesystem layout ==&lt;br /&gt;
Use only the folders you need.  If there is a chance your filenames could clash with files from other packages, put them in a folder with the name of your project/package.  Examples are below.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Folder&lt;br /&gt;
! Description and notes&lt;br /&gt;
! Example&lt;br /&gt;
|-&lt;br /&gt;
| /about&lt;br /&gt;
| Info and licensing about your package.  &lt;br /&gt;
| /about/map-parpax.txt&lt;br /&gt;
|-&lt;br /&gt;
| /textures&lt;br /&gt;
| .crn texture files&lt;br /&gt;
| /textures/parpax_evillair/&lt;br /&gt;
|-&lt;br /&gt;
| /sound&lt;br /&gt;
| Sound files. &lt;br /&gt;
| /sound/parpax&lt;br /&gt;
|-&lt;br /&gt;
| /scripts&lt;br /&gt;
| .shader, .arena, .particle&lt;br /&gt;
| /scripts/parpax.arena&lt;br /&gt;
|-&lt;br /&gt;
| /minimaps&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
/minimaps/parpax_upper.png&lt;br /&gt;
/minimaps/parpax_lower.png&lt;br /&gt;
/minimaps/parpax.minimap&lt;br /&gt;
|-&lt;br /&gt;
| /map&lt;br /&gt;
| .map .bsp .navMesh (for bots)&lt;br /&gt;
| /map/parpax.bsp&lt;br /&gt;
|-&lt;br /&gt;
| /levelshots&lt;br /&gt;
| &amp;quot;Loading screen&amp;quot; picture of a map level&lt;br /&gt;
| /levelshots/parpax.jpg&lt;br /&gt;
|-&lt;br /&gt;
| /gfx&lt;br /&gt;
| ???&lt;br /&gt;
| /gfx/parpax/&lt;br /&gt;
|-&lt;br /&gt;
| /DEPS (file)&lt;br /&gt;
| Depedencies file.  See next section.&lt;br /&gt;
| /DEPS&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== DEPS file ==&lt;br /&gt;
Packages like maps sometimes depend on other packages for resources, eg textures.  DEPS files are put in packages to tell the game when dependencies are required.&lt;br /&gt;
&lt;br /&gt;
* Plain-text file.  Use an editor like notepad if you are not familiar with plain-text files.&lt;br /&gt;
* Must be located in the 'root' of the package, not in a sub-folder&lt;br /&gt;
&lt;br /&gt;
Example DEPS file from map-parpax_d03a.pk3:&lt;br /&gt;
 tex-common&lt;br /&gt;
 tex-ex&lt;br /&gt;
 tex-exm&lt;br /&gt;
 tex-pk01&lt;br /&gt;
 tex-pk02&lt;br /&gt;
 tex-space&lt;br /&gt;
 tex-trak5&lt;br /&gt;
&lt;br /&gt;
= Howto: create your own package =&lt;br /&gt;
Find your user's package directory&lt;br /&gt;
 [[File:Dir homepkg.png]]&lt;br /&gt;
&lt;br /&gt;
Create a pk3dir folder&lt;br /&gt;
 [[File:Dir_homepkg_newfolder.png]]&lt;br /&gt;
&lt;br /&gt;
Place inside the files you want to use.  Make sure you follow the filesystem organisation guidelinees, or Fuma will eat you.&lt;br /&gt;
 [[File:Dir inpackage.png]]&lt;br /&gt;
&lt;br /&gt;
Start unvanquished with the fs_extrapaks variable set to include your package.  See [[Running_the_game#Advanced_options]] for more details.&lt;br /&gt;
&lt;br /&gt;
 $ unvanquished +set fs_extrapaks tutorialexample&lt;br /&gt;
&lt;br /&gt;
Now test the game with your resources loaded&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Naming conventions =&lt;br /&gt;
Please follow these conventions when sharing your packages.  &lt;br /&gt;
&lt;br /&gt;
==Sharing Temporary pk3 files==&lt;br /&gt;
&lt;br /&gt;
When sharing pk3 files that are not supposed to be standalone files of the game installation, please use one of the following two formats, so that it will be easier for others to find out the latest version:&lt;br /&gt;
&lt;br /&gt;
    name_year-month-day-time.pk3&lt;br /&gt;
    name_year-month-day-time-author.pk3&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The date and time is the time when you package the pk3 and uses the following format:&lt;br /&gt;
&lt;br /&gt;
    year: &amp;lt;2000-2100&amp;gt;&lt;br /&gt;
    month: &amp;lt;01-12&amp;gt;&lt;br /&gt;
    day: &amp;lt;01-31&amp;gt;&lt;br /&gt;
    time: &amp;lt;00-24&amp;gt;&amp;lt;00-59&amp;gt; (hour and minute, in GMT/UTC)&lt;br /&gt;
    author: Nickname as lowercase alphanumeric&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
    drill_2014-05-29-1527.pk3&lt;br /&gt;
    drill_2014-05-29-1527-viech.pk3&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In case you're having issues with UTC: If your time zone's offset is positive, substract it, otherwise add it (e.g. 20:00 UTC+2 = 18:00 UTC; 20:00 UTC-6 = 02:00 UTC of the next day). Keep local daylight saving in mind. If you're using the 12 hour time format read here.&lt;br /&gt;
&lt;br /&gt;
The reason for using this time format is that it can be sorted by using lexicographical order and is still human readable (as opposed to the unix timestamp, which also isn't easily available for windows users).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Sharing preview versions of standalone pk3 files==&lt;br /&gt;
&lt;br /&gt;
For pk3 files that are to be included with the release, for example maps and texture packages, there are two scenarios. If you are the main author of the package in question and it is unlikely that others will want to release a version of their own, you can use the following format:&lt;br /&gt;
&lt;br /&gt;
    name_targetversion~counter.pk3&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
    map-spacetracks_1.0~1.pk3&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;~&amp;quot; tells the engine that the pk3 is to be ordered before the specified target version. For example, &amp;quot;tex-common_1.0~1.pk3&amp;quot; will be considered older than &amp;quot;tex-common_1.0~2.pk3&amp;quot; which in turn will be considered older than &amp;quot;tex-common_1.0.pk3&amp;quot;, so the target release will always overwrite any preview version.&lt;br /&gt;
&lt;br /&gt;
If you are not the only regular author of the pk3 in question, please use the date &amp;amp; time format above instead of the counter:&lt;br /&gt;
&lt;br /&gt;
    name_targetversion~year-month-day-time.pk3&lt;br /&gt;
    name_targetversion~year-month-day-time-author.pk3&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
    unvanqushed_0.28.0~2014-05-29-1637.pk3&lt;br /&gt;
    unvanqushed_0.28.0~2014-05-29-1637-viech.pk3&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Releasing fixes to standalone pk3 files==&lt;br /&gt;
&lt;br /&gt;
If you are not the main author of a pk3 but want to release a version with additions or bugfixes, use &amp;quot;+&amp;quot; instead of &amp;quot;~&amp;quot; to order your version after the regular release:&lt;br /&gt;
&lt;br /&gt;
    name_currentversion+counter.pk3&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
    map-spacetracks_1.0+1.pk3&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here &amp;quot;1.0&amp;quot; was the author's original release and &amp;quot;+1&amp;quot; was added to mark an update without interfering with the author's versioning scheme.&lt;/div&gt;</summary>
		<author><name>Amanieu</name></author>
	</entry>
	<entry>
		<id>https://staging-wiki.unvanquished.net/index.php?title=Template:Game_locations&amp;diff=3137</id>
		<title>Template:Game locations</title>
		<link rel="alternate" type="text/html" href="https://staging-wiki.unvanquished.net/index.php?title=Template:Game_locations&amp;diff=3137"/>
		<updated>2014-07-01T11:11:05Z</updated>

		<summary type="html">&lt;p&gt;Amanieu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Platform&lt;br /&gt;
! Variant&lt;br /&gt;
! Default Binary Directory (fs_libpath)&lt;br /&gt;
! Default Data Directory (fs_basepath)&lt;br /&gt;
! Default User Directory (fs_homepath)&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=&amp;quot;2&amp;quot; | Windows&lt;br /&gt;
| 32 bit&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | C:\Program Files\Unvanquished&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | My Documents\My Games\Unvanquished&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | The actual directories depends on where the game was installed.&lt;br /&gt;
|- &lt;br /&gt;
| 64 bit&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | C:\Program Files (x86)\Unvanquished&lt;br /&gt;
|- &lt;br /&gt;
! Mac&lt;br /&gt;
| &lt;br /&gt;
| Unvanquished/Unvanquished.app/Contents/MacOS&lt;br /&gt;
| Unvanquished/&lt;br /&gt;
| ~/Library/Application Support/Unvanquished&lt;br /&gt;
| The data directory is the directory containing Unvanquished.app.&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=3 | Linux&lt;br /&gt;
| Compiled from source&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Path containing binaries&lt;br /&gt;
| rowspan=3 | ~/.unvanquished&lt;br /&gt;
| rowspan=3 | The default user directory is a [https://en.wikipedia.org/wiki/Dotfile hidden dotfile].&lt;br /&gt;
|-&lt;br /&gt;
| Installed from repo&lt;br /&gt;
| /usr/lib/unvanquished&lt;br /&gt;
| /usr/share/unvanquished&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
This template lists the locations of:&lt;br /&gt;
* Default game install directories&lt;br /&gt;
* Default user storage directories used by the game&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Amanieu</name></author>
	</entry>
	<entry>
		<id>https://staging-wiki.unvanquished.net/index.php?title=User:Amanieu/Getting_Started_With_PNaCl&amp;diff=2260</id>
		<title>User:Amanieu/Getting Started With PNaCl</title>
		<link rel="alternate" type="text/html" href="https://staging-wiki.unvanquished.net/index.php?title=User:Amanieu/Getting_Started_With_PNaCl&amp;diff=2260"/>
		<updated>2013-11-30T07:40:10Z</updated>

		<summary type="html">&lt;p&gt;Amanieu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Steps to compile and run the NaCl game code:&lt;br /&gt;
&lt;br /&gt;
# Download the NaCl SDK from Google: https://developers.google.com/native-client/sdk/download&lt;br /&gt;
# In CMake, disable the QVM_COMPAT option and point the NACL_SDK_PATH variable to the version of the SDK you want to use (pepper_30 for example)&lt;br /&gt;
# If you get an error about PYTHONPATH, it means that your system python is python 3. Set PNACLPYTHON to /bin/python2 to resolve this issue.&lt;br /&gt;
# Build the NaCl game code (BUILD_GAME_NACL)&lt;br /&gt;
# From the tools/ subdirectory of the NaCl SDK, copy the following files to the directory containing the engine executable (example is linux x86_64, adjust for your platform):&lt;br /&gt;
* Copy sel_ldr_x86_64 to sel_ldr&lt;br /&gt;
* (Linux only) Copy nacl_helper_bootstrap_x86_64 to nacl_helper_bootstrap&lt;br /&gt;
* Copy irt_core_x86_64.nexe to irt_core-x86_64.nexe (Note the dash vs underscore when renaming)&lt;br /&gt;
# When running the game, vm_game = 0 will use the NaCl module main/game-&amp;lt;arch&amp;gt;.nexe, vm_game = 1 will use the native module main/game&lt;br /&gt;
# Keep in mind that modules are only loaded from fs_libpath (which should be the directory containing the executable).&lt;/div&gt;</summary>
		<author><name>Amanieu</name></author>
	</entry>
	<entry>
		<id>https://staging-wiki.unvanquished.net/index.php?title=User:Amanieu/Getting_Started_With_PNaCl&amp;diff=2174</id>
		<title>User:Amanieu/Getting Started With PNaCl</title>
		<link rel="alternate" type="text/html" href="https://staging-wiki.unvanquished.net/index.php?title=User:Amanieu/Getting_Started_With_PNaCl&amp;diff=2174"/>
		<updated>2013-11-29T09:57:59Z</updated>

		<summary type="html">&lt;p&gt;Amanieu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Steps to compile and run the NaCl game code:&lt;br /&gt;
&lt;br /&gt;
# Download the NaCl SDK from Google: https://developers.google.com/native-client/sdk/download&lt;br /&gt;
# In CMake, disable the QVM_COMPAT option and point the NACL_SDK_PATH variable to the version of the SDK you want to use (pepper_30 for example)&lt;br /&gt;
# If you get an error about PYTHONPATH, it means that your system python is python 3. Set PNACLPYTHON to /bin/python2 to resolve this issue.&lt;br /&gt;
# Build the NaCl game code (BUILD_GAME_NACL)&lt;br /&gt;
# From the tools/ subdirectory of the NaCl SDK, copy the following files to the directory containing the engine executable (example is linux x86_64, adjust for your platform):&lt;br /&gt;
* Copy sel_ldr_x86_64 to sel_ldr&lt;br /&gt;
* (Linux only) Copy nacl_helper_bootstrap_x86_64 to nacl_helper_bootstrap&lt;br /&gt;
* Copy irt_core_x86_64.nexe to irt_core-x86_64.nexe (Note the dash vs underscore when renaming)&lt;br /&gt;
# When running the game, vm_game = 0 will use the NaCl module main/game-&amp;lt;arch&amp;gt;.nexe, vm_game = 1 will use the native module main/game&lt;/div&gt;</summary>
		<author><name>Amanieu</name></author>
	</entry>
	<entry>
		<id>https://staging-wiki.unvanquished.net/index.php?title=User:Amanieu/Getting_Started_With_PNaCl&amp;diff=2172</id>
		<title>User:Amanieu/Getting Started With PNaCl</title>
		<link rel="alternate" type="text/html" href="https://staging-wiki.unvanquished.net/index.php?title=User:Amanieu/Getting_Started_With_PNaCl&amp;diff=2172"/>
		<updated>2013-11-29T09:49:57Z</updated>

		<summary type="html">&lt;p&gt;Amanieu: Created page with &amp;quot;Steps to compile and run the NaCl game code:  # Download the NaCl SDK from Google: https://developers.google.com/native-client/sdk/download # In CMake, disable the QVM_COMPAT ...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Steps to compile and run the NaCl game code:&lt;br /&gt;
&lt;br /&gt;
# Download the NaCl SDK from Google: https://developers.google.com/native-client/sdk/download&lt;br /&gt;
# In CMake, disable the QVM_COMPAT option and point the NACL_SDK_PATH variable to the version of the SDK you want to use (pepper_30 for example)&lt;br /&gt;
# If you get an error about PYTHONPATH, it means that your system python is python 3. Set PNACLPYTHON to /bin/python2 to resolve this issue.&lt;br /&gt;
# Build the NaCl game code (BUILD_GAME_NACL)&lt;br /&gt;
# From the tools/ subdirectory of the NaCl SDK, copy the following files to the directory containing the engine executable (example is linux x86_64, adjust for your platform):&lt;br /&gt;
* Copy sel_ldr_x86_64 to sel_ldr&lt;br /&gt;
* (Linux only) Copy nacl_helper_bootstrap_x86_64 to nacl_helper_bootstrap&lt;br /&gt;
* Copy irt_core_x86_64.nexe to irt_core-x86_64.nexe (Note the dash vs underscore when renaming)&lt;/div&gt;</summary>
		<author><name>Amanieu</name></author>
	</entry>
</feed>