Content Streaming

From Valve Developer Community
Revision as of 07:29, 17 March 2006 by Ts2do (talk | contribs)

Jump to: navigation, search
Note:Content streaming only works for official games hosted on the Steam content servers. This page is for reference only.

Steam supports streaming content delivery - that is, not having to have to have the whole game downloaded in order to play it. This is achieved with the GCF virtual filesystem and lists of files needed to perform certain actions, known as reslists. At the time of writing there are four types of reslist: engine.lst, preload.lst, precache.lst, and one list for each map file in the game.

Reslist files can be found at root/reslists/ in any cache that streams.

engine.lst

The engine.lst file is likely to specify the files required before the game becomes 'Ready to play' and can launch to the main menu. It should contain code, resources needed for the menu system, and any content that is needed for all maps in the game (for instance, HUD elements or in a traditional multiplayer game all weapon models). Half-Life 2’s engline.lst also calls for all of the game’s maps among other seemingly wasteful files. This is probably an error.

preload.lst

A list of reslists. This file is probably hardcoded into Steam to be downloaded when a user installs a game, with the remaining content stemming from it.

precache.lst

In Half-Life 2 this list contains content for the first few maps in the game as well as the menu backgrounds and key reslists. Steam may also require this list’s content to be fully acquired before launching a game.

Map reslists

Each map reslist contains all of the content required to run that map. In Half-Life 2 there is also much unnecessary content in these files, particularly in the form of voiceover speech, that is never used in the map. This is again likely to be an error.

Consultation

engine.lst, preload.lst and precache.lst are consulted by Steam when updating or launching a game. Map reslists are probably only directly consulted when loading that particular map. When a list is consulted, the game will not proceed until all of the content it (and any sub-lists) references is fully acquired.

Generation

To generate a reslist file for your mod or map, use the following extra parameters when launching:

-makereslists -usereslistfile maplist.txt %1 %2 %3 %4 %5

"makereslists" puts the game into reslist mode. "usereslistsfile maplist.txt" tells the game to look at maplist.txt and load any maps listed there in order to generate their reslists (if you only want to generate the three non-map reslists, leave this command out). The %X figures have no known purpose.

You could also make each reslist by hand. Reslists do not accept wildcards.