当前位置:首页 > 每日看点

Steam 的下载原理是怎样的?

卡卷网2年前 (2024-12-17)每日看点564

这就要聊一聊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张

扫描二维码推送至手机访问。

版权声明:本文由卡卷网发布,如需转载请注明出处。

本文链接:https://www.kajuan.net/ttnews/2024/12/4762.html

分享给朋友:

相关文章

拼多多,怎么就成为了年轻人的「赛博菜市场」?

拼多多,怎么就成为了年轻人的「赛博菜市场」?

可惜你不在拼多多买水果蔬菜,很难一句话跟你解释,我只能笨拙的用经历来慢慢讲。 我们公司有微波炉,同事们几乎都是自己带饭来上班,便当荤素搭配、水果零食;都是好看又好吃。 我自己本来就不喜欢外卖,当然也加入了带饭大军: 直到某一天深夜我闲着…

PHP承载百万/天 访问量需要用到什么技术?

当年做一个百万PV的商城,也不过是两台2c4g的阿里云虚机罢了(其实一台就够,另外一台主要的逼着大家一定开发的时候一定要有负载均衡和横向扩容的意识)。当时框架还是Thinkphp3.2,框架提高运行效率的开关全打开,标准的lnmp模式,单机…

抖音小店三个月了一单没出,也没有流量,一个星期好像都没有一个点击,怎么办?

抖音小店三个月了一单没出,也没有流量,一个星期好像都没有一个点击,怎么办?

好消息,你有毅力上200多个品,还能坚持三个月 坏消息,一单没出 我感觉你还是别碰抖店了,甚至电商平台都别碰 你没这个缘分 我要是这样,我得用一百辆叉车叉死我自己 你如果还想坚持,我直接给你这套至少价值19800学来的新思路 简单来说就是…

被网络诈骗了,钱还能追得回来吗?

我刷单被骗,当时不知道怎么办在百度上找个律师说他们能追回,还说不用报警,我傻的就信了,支付了费用签合同,我还是不信他们,报警了,报警没几天警官就连系我追回一笔钱让我注意银行卡到账通知,又过几天我第二笔钱到账了,律师说是他们追回的,要我支付后…

测试用例是怎么写的?

测试用例是怎么写的?

测试用例对于测试人员而言,虽说是最最基础的技能,但却非常重要。测试用例是支撑我们在测试道路上进一步学习其他测试技能的基本功。 那测试用例如何撰写,完整来说应该包含两部分内容: 内容1: 测试用例撰写(按照八大要素); 内容2: 测试用例(测…

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。