卡卷网
当前位置:卡卷网 / 每日看点 / 正文

Steam 的下载原理是怎样的?

作者:卡卷网发布时间:2024-12-17 01:29浏览数量:257次评论数量:0次

这就要聊一聊Steam的下载史了。

G胖在开发Steam的时候,就是抱着让玩家随时随地玩上自己的游戏的野心,去聘请了BT之父——Bram Cohen,让他来打造比德芙更丝滑的下载体验。

Steam 的下载原理是怎样的?  第1张

很多人应该不知道Cohen,他是一名天才程序员,也是自闭症患者。

虽然美国的少儿编程渗透率很高,达到40%以上(也就是说几乎两个孩子里就有一个在学编程),但是一般孩子都是运用MIT开发的Scratch编程工具学习基础的运算思维,没有真正接触代码。但Cohen在五岁的时候,就掌握了C语言,到了十六岁,已经学会了三种编程语言了。

Steam 的下载原理是怎样的?  第2张

就是他,编写了点对点文件共享协议BitTorrent,并且开发了第一款利用该协议的文件共享程序。

Cohen加入Steam之后,就采用了自己研发的P2P技术,将游戏打包成GCF格式,没有进行任何压缩,玩家就只能直接全量下载。但是如高赞答主所说,因为是直接从服务器进行传输,所以速度也是非常快的。

但这不是结局。

后来大家发现,这不压缩就下载实际上很麻烦,如果遇上更新,还得重新下载。那怎么办呢?几年前,Valve又发布了一个新内容下载系统SteamPipe,对Steam的下载功能进行了优化。

可以看看官方介绍:store.steampowered.com/

其中一个很核心的点在于更改传输模式:即使用HTTP传输游戏数据,把游戏拆分成许多小块,再加密压缩,使得Steam数据能轻松地在防火墙间传递,还能使用第三方HTTP缓存和资源发布网络来提升下载的速度。

这个分割拆解的优势,在SteamCN中的社区里有一个很详细的讲解,这里给大家贴一段:

“用户只需要一小块一小块地下载,每下载回一块就解压,最后就能组成完整的游戏。

游戏更新的时候,客户端只要删除过期的小块,重新向从服务器上下载回新的小块就ok了。这样不仅做到了边下载边解压,而且解决了更新困难的问题。而且还能防止用户抓包提取到下载链接然后用其他工具下载或分享给别人下载,因为游戏已经变成很多小块了,抓包只能抓到单个小块的下载链接,而且下载链接是一次性的。

有些游戏发行的前几天会允许玩家预先载入,这个过程其实是允许用户提前下载好这些经过加密压缩的小块,但是不提供解压key,用户没法解压也就没法知道里面的内容。等到游戏正式发行的时候,Steam客户端才会收到用于解压的key,完成解压过程。”(来源:steamcn.com/t96574-1-1

而且回归到核心想一想,Steam的本质就是游戏分发平台,如果下载效率低,会迅速丧失许多用户,这对它将是毁灭性的打击。

可以预见,他们还会在追求速度的路上越走越远。

毕竟G胖可是要掏空全世界钱包的男人啊!

Steam 的下载原理是怎样的?  第3张

END

免责声明:本文由卡卷网编辑并发布,但不代表本站的观点和立场,只提供分享给大家。

卡卷网

卡卷网 主页 联系他吧

请记住:卡卷网 Www.Kajuan.Net

欢迎 发表评论:

请填写验证码