|   |     | 
| (15 intermediate revisions by 5 users not shown) | 
| Line 1: | Line 1: | 
|  | {{lang|Steam/SteamPipe}}
 |  | #redirect [[SteamPipe]] | 
|  |   |  | 
|  | '''SteamPipe''' is Steam's new content distribution system. It changes the way games (including dedicated servers) are downloaded, updated and stored. More information can be found on the [https://support.steampowered.com/kb_article.php?ref=7388-QPFN-2491 Steam Support page].
 |  | 
|  |   |  | 
|  | == Benefits ==
 |  | 
|  |   |  | 
|  | === Players ===
 |  | 
|  |   |  | 
|  | The benefits to players are:
 |  | 
|  | *Faster and smoother downloads
 |  | 
|  | *Faster game boot times and map load times
 |  | 
|  | *Easier distribution, installation, and management of mods
 |  | 
|  | *Smoother dedicated server distribution and update rollover
 |  | 
|  |   |  | 
|  | === Server administrators ===
 |  | 
|  |   |  | 
|  | Instead of a proprietary delivery protocol, SteamPipe uses HTTP, which allows datacenters hosting multiple servers to set up a caching HTTP proxy, necessitating only a single download of an update from Valve's servers.
 |  | 
|  |   |  | 
|  | === Game developers ===
 |  | 
|  |   |  | 
|  | Game developers using SteamPipe can [http://garry.tv/2012/08/16/approved-updates/ issue updates themselves]; the previous system required manual intervention by Valve when an update was to be published.
 |  | 
|  |   |  | 
|  | === LAN Caching ===
 |  | 
|  |   |  | 
|  | As SteamPipe now uses HTTP it allows not only datacenters hosting multiple servers to setup a [http://en.wikipedia.org/wiki/Caching_proxy#Caching_proxy_servers caching] but is also very useful for [http://en.wikipedia.org/wiki/Local_area_network LAN's]. Setting up a caching proxy can significantly reduce the amount of bandwidth required for multiple clients or servers to preform updates.
 |  | 
|  |   |  | 
|  | [http://blog.multiplay.co.uk/2014/04/lancache-dynamically-caching-game-installs-at-lans-using-nginx/ LANcache – Dynamically Caching Game Installs at LAN’s using Nginx] is an example of how to setup caching proxy for SteamPipeas used at [http://multiplay.com/ Multiplay's][http://insomniagamingfestival.com/ Insomnia Gaming Festival]. |  | 
|  | [https://hub.docker.com/r/agentgonzo/steam-squid/ steam-squid] is a [https://www.docker.com/ Docker] image containing a Steam-optimised version of the Squid caching proxy for easy installation.
 |  | 
|  |   |  | 
|  | == Downsides ==
 |  | 
|  |   |  | 
|  | === Players ===
 |  | 
|  |   |  | 
|  | * Many {{hl1|4.1}} and {{hl2|4.1}} mods that did not make the jump to the update are broken.<br>Fortunately, there are known fixes for many Half-Life 2 mods. [https://steamcommunity.com/app/420/discussions/0/864971765497379056/ Those fixes can be found here.]
 |  | 
|  | * Most {{src13|4.1}} games now contain duplicate copies of the {{hl2|4.1}} base files '''(''except'' for {{hl2}} {{hl2ep1}} {{hl2ep2}} {{hl2lc}} {{hls}})'''
 |  | 
|  |   |  | 
|  | === Developers ===
 |  | 
|  |   |  | 
|  | The Source SDK Launcher no longer works for {{src13|4}} games. Tools for games that used to be in the Source SDK Launcher must now be launched by going to "C:\Program Files (x86)\Steam\SteamApps\common\[game name]\bin" (see example path below) then launching the .bat files (Example: Hammer.bat to launch {{hammer|1|nt=1}}).<br><br>
 |  | 
|  | Example path to SDK: C:\Program Files (x86)\Steam\SteamApps\common\Half Life 2\bin
 |  | 
|  |   |  | 
|  | == Changes ==
 |  | 
|  |   |  | 
|  | * Downloads are performed using HTTP instead of a proprietary protocol.
 |  | 
|  | * Data files are no longer placed into [[GCF]]s but directly into the file system.
 |  | 
|  | ** To counteract the performance issues with accessing many tiny files (the reason why GCFs were used in the first place), [[Source]] games distributed via SteamPipe store their assets in [[VPK]] archives.
 |  | 
|  | * Data generated before/during gameplay is no longer stored in user-specific subdirectories of ''SteamApps''; instead, the ''common'' subfolder is used.
 |  | 
|  | * Dedicated servers are no longer updated using [[HLDSUpdateTool]] (known as <tt>steam</tt> on Linux) but using [[SteamCMD]] (a stripped-down version of the full Steam client).
 |  | 
|  | [[Category:Dedicated Server]]
 |  | 
|  |   |  | 
|  | == See Also ==
 |  | 
|  | * [[GoldSource_SteamPipe_Directories]] for the list of directories used by GoldSource engine games
 |  | 
|  | * [[IFileSystemV009]] for the C++ interface used to access files through SteamPipe in GoldSource
 |  |