Steam/SteamPipe: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
mNo edit summary
(Replaced content with "{{Multipage}} {{stub}} SteamPipe SteamPipe SteamPipe<!--Why?-->")
Tag: Replaced
Line 1: Line 1:
{{lang|title = SteamPipe}}
{{Multipage}}
{{stub}}{{todo|Most of the language subpages still use [[SteamPipe|SteamPipe:]]….}}
{{stub}}
'''SteamPipe''' is [[Steam]]'s new content distribution system.


It changes the way programs (including [[dedicated server]]s) are downloaded, updated and stored.
== 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 SteamPipe as 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 {{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 (including third-party games) now contain duplicate copies of the {{hl2|4.1}} base files {{hl2|in|addtext-front=''except''|addtext={{hl2ep1}} {{hl2ep2}} {{hl2lc}} {{hls}}}}, wasting storage drive space.
:{{warning|While the it is possible to point multiple games to the same VPK, not all VPKs with the same name are the same on all games! For example, the {{src13mp}} "hl2" VPKs are different from the VPKs actually used by {{hl2}}, and the {{tf2}} "hl2" VPKs are different from the other {{src13mp}} "hl2" VPKs.<!--
-->{{workaround|Two options are such:<ul><li>Use relative links to the [[VPK]]s (or folders) in [[gameinfo.txt]], so they look something like this:<br><pre>game "../Half-Life 2/hl2/hl2_textures.vpk"</pre><li>Use Symbolic links or Hardlinking [[VPK]]s (or folders) using programs such as [https://schinagl.priv.at/nt/hardlinkshellext/linkshellextension.html Link Shell Extension] (easier), or via Windows's {{code|mklink}} command; [https://www.howtogeek.com/16226/complete-guide-to-symbolic-links-symlinks-on-windows-or-linux/ more info can be found here].</ul>
}} }}
=== 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: {{path|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 now 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 using [[SteamCMD]] (a stripped-down version of the full Steam client).
== 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
== External links ==
# [https://web.archive.org/web/20210419201507/https://support.steampowered.com/kb_article.php?ref=7388-QPFN-2491 Steam Support page]


[[Category:CDN|SteamPipe]]
[[Category:CDN|SteamPipe]]

Revision as of 02:39, 4 August 2023

Template:Multipage

Stub

This article or section is a stub. You can help by expanding it.