mirror of
https://github.com/dhewm/iddevnet.git
synced 2024-11-25 05:41:05 +00:00
91 lines
4 KiB
HTML
91 lines
4 KiB
HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
|
||
<!-- saved from url=(0044)https://www.iddevnet.com/doom3/packfiles.php -->
|
||
<html><head><meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
|
||
<title>id.sdk [Pack Files]</title>
|
||
<link rel="stylesheet" href="style.css">
|
||
</head>
|
||
|
||
|
||
<body marginwidth="0" marginheight="0" topmargin="0" leftmargin="0">
|
||
|
||
<table border=0 cellpadding=0 cellspacing=0 style="width: 100%; height: 99px">
|
||
<tr>
|
||
<td style="width: 171px"><img src="images/doom.jpg" style="width: 171px; height: 99px" alt=""></td>
|
||
<td style="background: url(images/tile.gif)">
|
||
<table border=0 cellpadding=0 cellspacing=0 width=600>
|
||
<tr>
|
||
<td style="height: 19px; background: url(images/sdk.gif) no-repeat"></td>
|
||
<td rowspan=4 align=right><img src="images/id.gif" style="width: 42px; height: 99px" alt=""></td>
|
||
</tr>
|
||
<tr><td style="height: 29px; background: url(images/top.jpg) no-repeat"></td></tr>
|
||
<tr><td style="height: 27px; background: url(images/middle.gif)" class="title"> Making DOOM 3 Mods : Pack Files</td></tr>
|
||
<tr><td style="height: 24px; background: url(images/bottom.jpg) no-repeat"></td></tr>
|
||
</table>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
<table border=0 cellpadding=0 cellspacing=0 style="width: 770px">
|
||
<tr>
|
||
<td colspan=2 style="background: url(images/boxtop.gif);"><img src="images/span.jpg" style="width: 397px; height: 20px; float: left" alt=""></td>
|
||
</tr>
|
||
<tr>
|
||
<td style="vertical-align: top; width: 152px; background: url(images/tileleft.gif)">
|
||
<div class="leftMenu">
|
||
<script src="menu.js"></script>
|
||
</div>
|
||
</td>
|
||
<td class="mainContent">
|
||
|
||
<p>
|
||
Every asset in the game is stored in a pack file for release. The pack files are just normal zip files with
|
||
the .pk4 extension, which is the same system used in Quake III Arena. This means you can open the pack files
|
||
in the base folder using a zip program and browse all the assets in the game.
|
||
|
||
</p><p>
|
||
The pack file system offers 3 huge benefits:
|
||
</p><ul>
|
||
<li><b>Compression</b><br>
|
||
The assets for Doom 3 are 3.6GB uncompressed, and only 1.44GB after being packed up.
|
||
<br><br>
|
||
</li><li><b>Checksum</b><br>
|
||
Multiplayer servers check the signature (checksum) of the pack file on the client machine to ensure all clients
|
||
are playing with the same versions of all files. This is known as having a pure server.
|
||
<br><br>
|
||
</li><li><b>Distribution</b><br>
|
||
It's a lot easier to distribute a single large file rather than dozens of little files.
|
||
</li></ul>
|
||
|
||
<p>
|
||
During development you don't want to have to re-pack all the files every time you change something, so
|
||
the game is set up to look for files in the directory to override files in the packs. However, it
|
||
only does this in single player. If you want to use files from the directory in multiplayer, you need to disable
|
||
pure (set si_pure 0) before starting the server. This is also true if you want clients to be able to use different
|
||
files than the server.
|
||
|
||
</p><p>
|
||
<img src="images/packfiles_a.png" border="1" align="right">
|
||
A pack file has to have an internal directory structure that mirrors the file system. The easiest way to make sure
|
||
this happens (using <a href="http://www.winzip.com/">winzip</a>) is to select the files and folders in your mod directory
|
||
and choose 'Add to <modname>.zip' You can then rename it to <something>.pk4
|
||
|
||
</p><p>
|
||
The game dll (gamex86.dll) cannot be in the same pack file as the other assets.
|
||
It has to be in its own pack file along with a config.conf file.
|
||
This is to easily support multiple platforms (mac, linux, windows).
|
||
|
||
<br>
|
||
</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td colspan="2" bgcolor="#CCCCCC"><img src="images/span2.gif" style="width: 397px; height: 8px; float: left;"></td>
|
||
</tr>
|
||
</tbody></table>
|
||
|
||
<table border="0" cellpadding="0" cellspacing="0" width="770">
|
||
<tbody><tr>
|
||
<td align="left" class="legalese">Copyright <20> 2004 <a href="http://www.idsoftware.com/">id software</a></td>
|
||
</tr>
|
||
</tbody></table>
|
||
|
||
|
||
</body></html>
|