Patching levels with lump files: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
(Added.)
 
(not yet available, POV)
Line 1: Line 1:
Ep1 added a simple system to allow mapmakers to patch levels by shipping only the level lumps that have changed. It was written to handle any .bsp file lump, but right now it's really only useful for lumps that don't depend on other lumps, until a tool exists that will find all the changed lumps for you. For example, changing geometry in your map changes many lumps, and you would have to select each changed lump by hand. Once you've changed many lumps, you may as well ship a new .bsp.
[[Category:Level Design]]
{{info-unreleased|The <code>vbspinfo.exe</code> application as described here is not yet available.}}


For now, it's a great way of shipping new entity lumps, or new game data lumps without having to re-ship the entire .bsp. The steps involved are as follows (assuming that you've already shipped a previous version of the .bsp file):
[[Half-Life 2: Episode One]] added a simple system to allow mapmakers to patch levels by shipping only the level lumps that have changed. It was written to handle any .bsp file lump, but right now it's really only useful for lumps that don't depend on other lumps, until a tool exists that will find all the changed lumps. For example, changing geometry in a map changes many lumps, and each changed lump would need to be selected by hand. Once many lumps have been changed, you may as well ship a new .bsp.
 
For now, it's a great way of shipping new entity lumps, or new game data lumps without having to re-ship the entire .bsp. The steps involved are as follows (assuming that a previous version of the .bsp file has already been shipped):


#Make the desired changes to the level, and compile the new .bsp
#Make the desired changes to the level, and compile the new .bsp
Line 7: Line 10:
#Put the .lmp files into your GAME\maps directory, ensure their <id>s are correct (see below).
#Put the .lmp files into your GAME\maps directory, ensure their <id>s are correct (see below).
#Ship the .lmp files
#Ship the .lmp files


.lmp files are automatically named in the following format:
.lmp files are automatically named in the following format:
  <bsp name>_l_<id>.lmp
  <bsp name>_l_<id>.lmp
After loading the .bsp, the engine will then load .lmp files starting at id 0, and stopping as soon as it fails to find a .lmp for the next id. Each .lmp file overrides any existing lump in the .bsp, or preceding .lmp files. So if you have already shipped a new lump in your <code><bsp_name>_l_0.lmp</code> file, you can override it with a <code><bsp_name>_l_1.lmp</code> file.
After loading the .bsp, the engine will then load .lmp files starting at id 0, and stopping as soon as it fails to find a .lmp for the next id. Each .lmp file overrides any existing lump in the .bsp, or preceding .lmp files. If a new lump has already been shipped as a <code><bsp_name>_l_0.lmp</code> file, that lump can overridden with a <code><bsp_name>_l_1.lmp</code> file.

Revision as of 14:37, 28 August 2006

Template:Info-unreleased

Half-Life 2: Episode One added a simple system to allow mapmakers to patch levels by shipping only the level lumps that have changed. It was written to handle any .bsp file lump, but right now it's really only useful for lumps that don't depend on other lumps, until a tool exists that will find all the changed lumps. For example, changing geometry in a map changes many lumps, and each changed lump would need to be selected by hand. Once many lumps have been changed, you may as well ship a new .bsp.

For now, it's a great way of shipping new entity lumps, or new game data lumps without having to re-ship the entire .bsp. The steps involved are as follows (assuming that a previous version of the .bsp file has already been shipped):

  1. Make the desired changes to the level, and compile the new .bsp
  2. Use vbspinfo -X to extract the desired lumps into .lmp files.
  3. Put the .lmp files into your GAME\maps directory, ensure their <id>s are correct (see below).
  4. Ship the .lmp files

.lmp files are automatically named in the following format:

<bsp name>_l_<id>.lmp

After loading the .bsp, the engine will then load .lmp files starting at id 0, and stopping as soon as it fails to find a .lmp for the next id. Each .lmp file overrides any existing lump in the .bsp, or preceding .lmp files. If a new lump has already been shipped as a <bsp_name>_l_0.lmp file, that lump can overridden with a <bsp_name>_l_1.lmp file.