Pre-publication evaluation: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
m (→‎Excess files: Added sound/temp directory, which is the location soundsprays are downloaded into.)
 
(35 intermediate revisions by 15 users not shown)
Line 1: Line 1:
=Mods=
{{lang}}
= Mods =
{{note|The following items are numbered to help you keep track of where you are in this process, not as an order for a specific procedure.}}
{{note|The following items are numbered to help you keep track of where you are in this process, not as an order for a specific procedure.}}
==Essentials==
 
== Essentials ==
# Confirm that the mod has been built under Release rather than Debug.
# Confirm that the mod has been built under Release rather than Debug.
# Read [[Steam 3rd Party Mod Support]].
# Read [[Steam 3rd Party Mod Support]].
# Read [[Customizing Options: Keyboard]].
# Read [[Customizing Options: Keyboard]].
# A shared [[soundcache]] manifest is built.
# Confirm that a <code>[[maplist.txt]]</code> file to base the shared soundcache is made and that a shared [[soundcache]] manifest is built.
# A <code>maplist.txt</code> file to base the shared soundcache on.
# Delete [[#Excess files|excess files]].
# If you're making a multiplayer mod, create a <code>mapcycle.txt</code>, referencedby the default value of [[mapcyclefile]] [[ConVar]].
# Confirm that the files required for each map are in their places.
# Delete [[#Excess Files|excess files]]
# Implementation for all functionalities desired to be in ''this'' release is completed.
# Files required for each map are in their places.
# Do not distribute source folders and their containing files (mapsrc, materialsrc, modelsrc) if your map is closed-source.
 
=== Multiplayer essentials ===
# Create a <code>[[mapcycle.txt]]</code>, referenced by the default value of the [[mapcyclefile]] [[ConVar]].
# Design a default MOTD, or Message of the Day, for the mod in <code>motd.txt</code>.
# Design a default MOTD, or Message of the Day, for the mod in <code>motd.txt</code>.
# Implementation for all functionalities desired to be in ''this'' release is completed.
 
# Remove source folders (mapsrc, materialsrc, modelsrc)
=== Excess files ===
===Excess Files===
If one of the following files or directories exist, deletion would make the mod's installation tidier.
If one of the following files or directories exist, deletion would make the mod's installation tidier.
# <code>albedo.tga</code>
# <code>demoheader.tmp</code>
# <code>demoheader.tmp</code>
# <code>stats.txt</code>
# <code>stats.txt</code>
Line 20: Line 25:
# <code>cfg\banned_user.cfg</code>
# <code>cfg\banned_user.cfg</code>
# <code>cfg\banned_ip.cfg</code>
# <code>cfg\banned_ip.cfg</code>
# <code>cfg\config.cfg</code>
# <code>cfg\config.cfg</code>{{note|You should be shipping <code>config_default.cfg</code>.}}
# <code>scripts\kb_def.lst</code>
# <code>cfg\pet.txt</code>
# <code>scripts\settings.scr</code><br/>This should be placed in the <code>cfg</code> folder.
# <code>scripts\kb_def.lst</code> (See [[Customizing Options: Keyboard]])
# <code>scripts\settings.scr</code>{{note|This should be placed in the <code>cfg</code> folder.}}
# <code>bin\client.pdb</code>
# <code>bin\client.pdb</code>
# <code>bin\server.pdb</code>
# <code>bin\server.pdb</code>
# Any *.db files that may have collected from image preview resources.
# Any *.db files that may have collected from image preview resources
# Possibly <code>scene.cache</code> and <code>modelsounds.cache</code> if a lower download size is desired.<br/>{{note|These files would require rebuilding by the client.}}
# <code>models/.../*.xbox.vtx</code>
# <code>maps/soundcache/*.cache</code> (do not delete the <code>.manifest</code>s)<br/>{{note|These files would require rebuilding by the client.}}
# <code>models/.../*.xbox.vtx</code>
# <code>models/.../*.xbox.vtx
# <code>SAVE</code> directory
# <code>SAVE</code> directory
# <code>expressions</code> directory
# <code>screenshots</code> directory
# <code>screenshots</code> directory
# <code>reslists</code> directory
# <code>reslists</code> directory
# <code>materials/maps</code> directory
# <code>materials/maps</code> directory
# <code>DownloadLists</code> directory<br/>{{note|These '''minor''' files would require rebuilding by the client.}}
# <code>materials/temp</code> directory
# <code>materials/temp</code> directory
# <code>sound/temp</code> directory


==Refining==
==== Rebuildable files ====
These files should not be distributed in the release but will need to be rebuilt by the client.
# <code>scene.cache</code> and <code>modelsounds.cache</code>
# <code>maps/soundcache/*.cache</code>{{warning|Do not delete the <code>.manifest</code>s}}
# <code>DownloadLists</code> directory
 
=== Cleaning the mod folder with XBLAH's Modding Tool ===
Before shipping the mod, the {{Xblahmt|4}} provides the modder with a list of unnecessary files, which can be removed with the push of a button.
 
<br/><span style="color: #FFFFFF; font-weight: bold">Where to find it</span><br/>
This can be accessed within the tool through '''Mod > Clean Files'''.
 
<br/><span style="color: #FFFFFF; font-weight: bold">How to use it</span><br/>
By default it will select all files that should be deleted before publishing the mod. You can manually unselect the files you want to keep.
 
[[File:XBLAH's Modding Tool - Clean Files v1.17.png]]
 
== Refining ==
# Read [[VGUI2 Programming Best Practices]].
# Read [[VGUI2 Programming Best Practices]].
# Encrypt weapon scripts using [[vice]].
# Encrypt weapon scripts using [[vice]].
# Add documentation on mod-specific [[console command]]s and [[console variable]]s.
# Add documentation on mod-specific [[console command]]s and [[ConVar|console variable]]s.
# Include an icon for the mod if desired in <code>resource\game.ico</code>.
# Include an icon for the mod if desired in <code>resource\game.ico</code>.
# Include the [[FGD]] for third-party mod mappers.
# Include the [[FGD]] for third-party mod mappers.
# Compile your DLL's in ''Release'' Mode, also dont forget to start [[Optimizing DLLs]] for that extra speed.
# Compile your DLL's in ''Release'' Mode, also don't forget to start [[Optimizing DLLs]] for that extra speed.
# Encrypt <code>bin\client.dll</code> with {{wiki|UPX}}
# Encrypt <code>bin\client.dll</code> with {{wiki|UPX}}


=Maps=
= Maps =
{{seealso|[[Releasing a Map]]}}
{{seealso|[[Releasing a Map]]}}
==Final compile==


== Final compile ==
* Examine the compile log to ensure there are [[Compile_Errors|no compile errors]], you could also use the [http://www.interlopers.net/errors/ Interlopers Compile Checker].
* Examine the compile log to ensure there are [[Compile_Errors|no compile errors]], you could also use the [http://www.interlopers.net/errors/ Interlopers Compile Checker].
* When you load the map into the game, check the console to ensure there are no errors or warnings.
* When you load the map into the game, check the console to ensure there are no errors or warnings.
* Make sure you have compiled the map with Normal VIS and RAD. Do not release a map compiled with Fast VIS or RAD.
* Make sure you have compiled the map with Normal VIS and <code>-final</code> RAD (switch to expert compile mode and use the 'Final' preset if you don't know how to use parameters). ''Do not release a map compiled with Fast VIS or RAD!''
* Remember to run the [[Cubemaps|buildcubemaps]] command in the console before releasing your finished product, otherwise reflections will not work properly.
* Remember to run the [[Cubemaps|buildcubemaps]] command in the console twice before releasing your finished product, once with HDR enabled and once without, or specular reflections will not work properly. {{todo|State or link to how you would do this.}}
 
==Distributing custom content==


== Distributing custom content ==
If you have custom models, sounds, textures, or materials, you must either:
If you have custom models, sounds, textures, or materials, you must either:


* Bundle them into the map BSP file (using [[Using Bspzip to Embed Custom Content|Bspzip]], [[Map Analyst]], [[Pakrat]], etc.). See
* Bundle them into the map BSP file (using [[Using Bspzip to Embed Custom Content|Bspzip]], [[PackBSP]], [[Map Analyst]], [[Pakrat]], [[Compile Pal]], etc.). See
[[Using Bspzip to Embed Custom Content]], or
[[Using Bspzip to Embed Custom Content]], or
* Add a ".res" [[Map Resource File]] to your map release to let the server know there's files that should accompany the BSP when it's downloaded.
* Add a ".res" [[Map Resource File]] to your map release to let the server know there's files that should accompany the BSP when it's downloaded.


If you don't do this, then anyone downloading the map through a server whilst playing will not get your custom content.
If you don't do this, then anyone downloading the map through a server whilst playing will not get your custom content.
==Game specific considerations==
===[[Counter-Strike: Source]]===


== Game specific considerations ==
=== [[Counter-Strike: Source]] ===
* Create a ".txt" file with the same name as the map. This text will be displayed to players when the map starts. Lines are wrapped.
* Create a ".txt" file with the same name as the map. This text will be displayed to players when the map starts. Lines are wrapped.
* Edit the bot [[Navigation Meshes|Navigation Mesh]] so bots will behave more intelligently in your map.
* Edit the bot [[Navigation Meshes|Navigation Mesh]] so bots will behave more intelligently in your map.
* Create a [[Level Overviews|level overview]] material.
* Create a [[Level Overviews|level overview]] material.
* Run the map with only bots playing, 10 a side, and see whether either side has an outright advantage. There is no substitute for human players, but bots will typically show up the obvious design flaws in a map (poorly positioned meeting points, not enough entrances/exits in critical areas, and so on)


* Run the map with only bots playing, 10 a side, and see whether either side has an outright advantage. There is no substitute for human players, but bots will typically show up the obvious design flaws in a map (poorly positioned meeting points, not enough entrances/exits in critical areas, and so on)
=== [[Day of Defeat: Source]] ===
===[[Day of Defeat: Source]]===
* Create a ".txt" file with the same name as the map. This text will be displayed to players when the map starts. Lines are wrapped.
* Create a ".txt" file with the same name as the map. This text will be displayed to players when the map starts. Lines are wrapped.
* Create a [[Level Overviews|level overview]] material.
* Create a [[Level Overviews|level overview]] material.
===[[The Ship]]===
 
=== [[The Ship]] ===
* Create a 1024x1024 material (resized from 1280x1024) vgui/map_backgrounds/map_background_<map>
* Create a 1024x1024 material (resized from 1280x1024) vgui/map_backgrounds/map_background_<map>
* Create a 256x128 material vgui/map_previews/map_preview_<map>
* Create a 256x128 material vgui/map_previews/map_preview_<map>
* Create a [[deckplan]] for your Ship.{{note|There is currently no deckplan designing utility; one will be released with the official SDK.}}
* See [[The Ship: Creating a Deckplan]]
 
=== [[Team Fortress 2]] ===
* You should consider creating map pictures/mission briefing for the mission briefing. See [[TF2/Modifying the Mission Briefing]]
* Create a [[Maplist Thumbnails]] image.
 
= External links =
 
*[https://modding-assets.net/source/tools/modding/xblah-modding-tool/ XBLAH's Modding Tool Homepage]
 
[[Category:Modding]]
[[Category:Modding]]
[[category:Level Design]]
[[category:Level Design]]
[[Category:Publicity & Publication]]
[[Category:Publicity & Publication]]

Latest revision as of 07:07, 14 September 2024

English (en)Русский (ru)中文 (zh)Translate (Translate)

Mods

Note.pngNote:The following items are numbered to help you keep track of where you are in this process, not as an order for a specific procedure.

Essentials

  1. Confirm that the mod has been built under Release rather than Debug.
  2. Read Steam 3rd Party Mod Support.
  3. Read Customizing Options: Keyboard.
  4. Confirm that a maplist.txt file to base the shared soundcache is made and that a shared soundcache manifest is built.
  5. Delete excess files.
  6. Confirm that the files required for each map are in their places.
  7. Implementation for all functionalities desired to be in this release is completed.
  8. Do not distribute source folders and their containing files (mapsrc, materialsrc, modelsrc) if your map is closed-source.

Multiplayer essentials

  1. Create a mapcycle.txt, referenced by the default value of the mapcyclefile ConVar.
  2. Design a default MOTD, or Message of the Day, for the mod in motd.txt.

Excess files

If one of the following files or directories exist, deletion would make the mod's installation tidier.

  1. albedo.tga
  2. demoheader.tmp
  3. stats.txt
  4. textwindow_temp.html
  5. cfg\banned_user.cfg
  6. cfg\banned_ip.cfg
  7. cfg\config.cfg
    Note.pngNote:You should be shipping config_default.cfg.
  8. cfg\pet.txt
  9. scripts\kb_def.lst (See Customizing Options: Keyboard)
  10. scripts\settings.scr
    Note.pngNote:This should be placed in the cfg folder.
  11. bin\client.pdb
  12. bin\server.pdb
  13. Any *.db files that may have collected from image preview resources
  14. models/.../*.xbox.vtx
  15. models/.../*.xbox.vtx
  16. SAVE directory
  17. expressions directory
  18. screenshots directory
  19. reslists directory
  20. materials/maps directory
  21. materials/temp directory
  22. sound/temp directory

Rebuildable files

These files should not be distributed in the release but will need to be rebuilt by the client.

  1. scene.cache and modelsounds.cache
  2. maps/soundcache/*.cache
    Warning.pngWarning:Do not delete the .manifests
  3. DownloadLists directory

Cleaning the mod folder with XBLAH's Modding Tool

Before shipping the mod, the XBLAH's Modding Tool XBLAH's Modding Tool provides the modder with a list of unnecessary files, which can be removed with the push of a button.


Where to find it
This can be accessed within the tool through Mod > Clean Files.


How to use it
By default it will select all files that should be deleted before publishing the mod. You can manually unselect the files you want to keep.

XBLAH's Modding Tool - Clean Files v1.17.png

Refining

  1. Read VGUI2 Programming Best Practices.
  2. Encrypt weapon scripts using vice.
  3. Add documentation on mod-specific console commands and console variables.
  4. Include an icon for the mod if desired in resource\game.ico.
  5. Include the FGD for third-party mod mappers.
  6. Compile your DLL's in Release Mode, also don't forget to start Optimizing DLLs for that extra speed.
  7. Encrypt bin\client.dll with Wikipedia icon UPX

Maps

See also:  Releasing a Map

Final compile

  • Examine the compile log to ensure there are no compile errors, you could also use the Interlopers Compile Checker.
  • When you load the map into the game, check the console to ensure there are no errors or warnings.
  • Make sure you have compiled the map with Normal VIS and -final RAD (switch to expert compile mode and use the 'Final' preset if you don't know how to use parameters). Do not release a map compiled with Fast VIS or RAD!
  • Remember to run the buildcubemaps command in the console twice before releasing your finished product, once with HDR enabled and once without, or specular reflections will not work properly.
    Todo: State or link to how you would do this.

Distributing custom content

If you have custom models, sounds, textures, or materials, you must either:

Using Bspzip to Embed Custom Content, or

  • Add a ".res" Map Resource File to your map release to let the server know there's files that should accompany the BSP when it's downloaded.

If you don't do this, then anyone downloading the map through a server whilst playing will not get your custom content.

Game specific considerations

Counter-Strike: Source

  • Create a ".txt" file with the same name as the map. This text will be displayed to players when the map starts. Lines are wrapped.
  • Edit the bot Navigation Mesh so bots will behave more intelligently in your map.
  • Create a level overview material.
  • Run the map with only bots playing, 10 a side, and see whether either side has an outright advantage. There is no substitute for human players, but bots will typically show up the obvious design flaws in a map (poorly positioned meeting points, not enough entrances/exits in critical areas, and so on)

Day of Defeat: Source

  • Create a ".txt" file with the same name as the map. This text will be displayed to players when the map starts. Lines are wrapped.
  • Create a level overview material.

The Ship

  • Create a 1024x1024 material (resized from 1280x1024) vgui/map_backgrounds/map_background_<map>
  • Create a 256x128 material vgui/map_previews/map_preview_<map>
  • See The Ship: Creating a Deckplan

Team Fortress 2

External links