Zh/SteamPipe: Difference between revisions
No edit summary |
m (→改变) |
||
(10 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
{{ | {{LanguageBar}} | ||
{{stub}} | |||
'''SteamPipe''' 是 Steam 新的内容分发系统。它改变了游戏(包括专用服务器)下载、更新和存储的方式。更多信息可以在 [https://support.steampowered.com/kb_article.php?ref=7388-QPFN-2491|Steam 客服页面]找到。 | '''SteamPipe''' 是 Steam 新的内容分发系统。它改变了游戏(包括专用服务器)下载、更新和存储的方式。更多信息可以在 [https://support.steampowered.com/kb_article.php?ref=7388-QPFN-2491|Steam 客服页面]找到。 | ||
Line 19: | Line 21: | ||
开发者使用 SteamPipe 可以[http://garry.tv/2012/08/16/approved-updates/ 自行更新游戏];以前的系统需要在推送更新时由 Valve 手动干预。 | 开发者使用 SteamPipe 可以[http://garry.tv/2012/08/16/approved-updates/ 自行更新游戏];以前的系统需要在推送更新时由 Valve 手动干预。 | ||
=== LAN缓存 === | |||
由于 SteamPipe 现在使用 HTTP 协议,这不仅允许托管多个服务器的数据中心设置 [http://en.wikipedia.org/wiki/Caching_proxy#Caching_proxy_servers caching] 缓存,而且对于 [http://en.wikipedia.org/wiki/Local_area_network LAN 也非常有用。 设置缓存代理可以显著减少多个客户端或服务器执行更新所需的带宽量。 | |||
[http://blog.multiplay.co.uk/2014/04/lancache-dynamically-caching-game-installs-at-lans-using-nginx/ LANcache – 使用 Nginx 在 LAN 中动态缓存游戏安装] 是一个关于如何设置 SteamPipe 缓存代理的例子,正如 [http://multiplay.com/ Multiplay] 的 [http://insomniagamingfestival.com/ Insomnia Gaming Festival] 所使用的一样。 | |||
[https://hub.docker.com/r/agentgonzo/steam-squid/ steam-squid] 是一个 [https://www.docker.com/ Docker] 镜像,其中包含针对 Steam 优化的 Squid 缓存代理版本,方便安装。 | |||
== 缺点 == | == 缺点 == | ||
=== 玩家 === | === 玩家 === | ||
以下是一些使用 {{hl2|4.1}}(和/或其 Episodes)内容但未进行更新的 Source SDK 模组已经损坏,这也包括一些(但并非全部){{hl1|4}} 模组。<br>幸运的是,许多《半条命 2》模组都有已知的修复方法。[https://steamcommunity.com/app/420/discussions/0/864971765497379056/ 这些修复方法可以在这里找到。]。 | |||
* 大多数 {{src13|4.1}} 游戏 (包括第三方游戏) 现在都包含 {{hl2|4.1}} 基础文件的重复副本 {{hl2|in|addtext-front=''except'' |addtext={{hl2ep1}} {{hl2ep2}} {{hl2lc}} {{hls}}}},这会浪费存储驱动器的空间。 | |||
:{{warning|虽然可以将多个游戏指向同一个 VPK, 但并非所有同名的 VPK 在所有游戏中都是相同的!例如,{{src13mp}} 的 "hl2" VPK 与 {{hl2}} 实际使用的 VPK 不同,并且 {{tf2}} 的 "hl2" VPK 也与其他 {{src13mp}} 的 "hl2" VPK 不同。<!-- | |||
-->{{workaround|以下是两种方案:<ul><li>在 [[gameinfo.txt]] 中使用指向 [[VPK]](或文件夹)的相对链接,使其看起来像这样:<br><pre>game "../Half-Life 2/hl2/hl2_textures.vpk"</pre><li>使用符号链接或硬链接 [[VPK]] (或文件夹),可以使用诸如[https://schinagl.priv.at/nt/hardlinkshellext/linkshellextension.html Link Shell Extension] (链接外壳扩展,更简单)之类的程序, 或者通过 Windows 的 {{code|mklink}} 命令; [https://www.howtogeek.com/16226/complete-guide-to-symbolic-links-symlinks-on-windows-or-linux/ 更多信息可以在这里找到].</ul> | |||
}} }} | |||
在 SteamPipe 更新之后,{{hls|4}} 没有得到适当的更新,导致游戏出现更多错误和故障,以及图形问题。这个问题从未得到修复,Valve 反而将游戏从搜索结果中移除,转而推广 [[Half-Life|原始版本]],而此时距离 SteamPipe 更新发布已经过去了 10 年。 | |||
=== 开发者 === | |||
Source SDK 启动器不支持 {{src13|4}} 游戏。曾经在 Source SDK 启动器中的游戏的工具现在必须通过访问 "C:\Program Files (x86)\Steam\SteamApps\common[游戏名称]\bin"(见下方示例路径)来启动,然后运行 .bat 文件(例如:运行 Hammer.bat 以启动 {{hammer|1|nt=1}})。<br><br> | |||
SDK 的示例路径:{{path|C:\Program Files (x86)\Steam\SteamApps\common\Half Life 2\bin}} | |||
==改变== | ==改变== | ||
*下载使用 HTTP ,而不是专有协议。 | *下载使用 HTTP ,而不是专有协议。 | ||
*数据文件不再放入 | *数据文件不再放入 {{L|GCF}},而直接放入文件系统。 | ||
** | ** 为了应对访问大量小文件时的性能问题(这最初是使用 GCF 的原因),所有通过 SteamPipe 分发的 [[Source]] 游戏({{l4d|1}} 之前)现在将其资源存储在 [[VPK]] 存档中。。 | ||
* | *游戏前/期间生成的数据不再存储在 ''SteamApps'' 的用户特定子目录中;而是使用 ''common'' 子文件夹。 | ||
*专用服务器不再使用 | *专用服务器不再使用 {{L|HLDSUpdateTool}} 来更新(已知像 Linux 上的 <tt>steam</tt>)而使用 {{L|SteamCMD}}(一个完整 Steam 客户端的精简版)。 | ||
== 查看更多 == | == 查看更多 == | ||
* | * {{L|GoldSource_SteamPipe_Directories}} for the list of directories used by GoldSource engine games | ||
* | * {{L|IFileSystemV009}} for the C++ interface used to access files through SteamPipe in GoldSource | ||
{{ACategory|CDN}} | |||
{{ACategory|Steam}} | |||
{{ACategory|Source}}<!-- Since this update affects Source games aswell. --> | |||
{{ACategory|Dedicated Server}}<!--Why?--> |
Latest revision as of 18:49, 7 March 2025
SteamPipe 是 Steam 新的内容分发系统。它改变了游戏(包括专用服务器)下载、更新和存储的方式。更多信息可以在 客服页面找到。
优点
玩家
对于玩家的好处是:
- 更快、更流畅的下载
- 更快的游戏启动和地图载入
- 更容易的分发、安装和管理 mod。
- 更流畅的分发和更新专用服务器
服务器管理员
相比以前专有的传输协议, SteamPipe 使用 HTTP,允许数据中心托管多台服务器来建立一个缓存HTTP代理, 只需要单一的主机从 Valve 的服务器上下载更新。
开发者
开发者使用 SteamPipe 可以自行更新游戏;以前的系统需要在推送更新时由 Valve 手动干预。
LAN缓存
由于 SteamPipe 现在使用 HTTP 协议,这不仅允许托管多个服务器的数据中心设置 caching 缓存,而且对于 [http://en.wikipedia.org/wiki/Local_area_network LAN 也非常有用。 设置缓存代理可以显著减少多个客户端或服务器执行更新所需的带宽量。 LANcache – 使用 Nginx 在 LAN 中动态缓存游戏安装 是一个关于如何设置 SteamPipe 缓存代理的例子,正如 Multiplay 的 Insomnia Gaming Festival 所使用的一样。 steam-squid 是一个 Docker 镜像,其中包含针对 Steam 优化的 Squid 缓存代理版本,方便安装。
缺点
玩家
以下是一些使用 半衰期2(和/或其 Episodes)内容但未进行更新的 Source SDK 模组已经损坏,这也包括一些(但并非全部)
半衰期 模组。
幸运的是,许多《半条命 2》模组都有已知的修复方法。这些修复方法可以在这里找到。。
警告:虽然可以将多个游戏指向同一个 VPK, 但并非所有同名的 VPK 在所有游戏中都是相同的!例如,
的 "hl2" VPK 与
实际使用的 VPK 不同,并且
的 "hl2" VPK 也与其他
的 "hl2" VPK 不同。
解决方案:以下是两种方案:
- 在 gameinfo.txt 中使用指向 VPK(或文件夹)的相对链接,使其看起来像这样:
game "../Half-Life 2/hl2/hl2_textures.vpk"
- 使用符号链接或硬链接 VPK (或文件夹),可以使用诸如Link Shell Extension (链接外壳扩展,更简单)之类的程序, 或者通过 Windows 的 mklink 命令; 更多信息可以在这里找到.
- 在 gameinfo.txt 中使用指向 VPK(或文件夹)的相对链接,使其看起来像这样:
在 SteamPipe 更新之后, 半衰期:起源 没有得到适当的更新,导致游戏出现更多错误和故障,以及图形问题。这个问题从未得到修复,Valve 反而将游戏从搜索结果中移除,转而推广 原始版本,而此时距离 SteamPipe 更新发布已经过去了 10 年。
开发者
Source SDK 启动器不支持 起源2013 游戏。曾经在 Source SDK 启动器中的游戏的工具现在必须通过访问 "C:\Program Files (x86)\Steam\SteamApps\common[游戏名称]\bin"(见下方示例路径)来启动,然后运行 .bat 文件(例如:运行 Hammer.bat 以启动 Valve Hammer Editor)。
SDK 的示例路径:C:\Program Files (x86)\Steam\SteamApps\common\Half Life 2\bin
改变
- 下载使用 HTTP ,而不是专有协议。
- 数据文件不再放入 GCF ,而直接放入文件系统。
- 游戏前/期间生成的数据不再存储在 SteamApps 的用户特定子目录中;而是使用 common 子文件夹。
- 专用服务器不再使用 HLDSUpdateTool 来更新(已知像 Linux 上的 steam)而使用 SteamCMD (一个完整 Steam 客户端的精简版)。
查看更多
- 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