
云游戏在革谁的命?
我上大学时的第一台电脑是微星的一款游戏本,当时买它的原因很简单,性能足够强大,无论是编程等日常任务还是游戏它都可以胜任。现在回想起来,依稀记得它炫酷的灯光、强悍的性能以及用它驰骋虚拟世界的快感。后来年纪渐长,打游戏的热情也逐渐减少,虽然那台电脑仍在家中,但已经落后的性能让我鲜有机会“宠幸”它。再后来,读研之后换了 Mac 后更是没怎么碰过游戏了。 大家都说正经人谁用 Mac 打游戏,一开始我也是这么认为的,毕竟买来就是用来写代码的,可是最近发现的一个有趣玩意让我对这个问题有了新的想法,那就是——云游戏。 云计算?云? 以下内容摘自百度百科 云游戏是以云计算为基础的游戏方式,在云游戏的运行模式下,所有游戏都在服务器端运行,并将渲染完毕后的游戏画面压缩后通过网络传送给用户。在客户端,用户的游戏设备不需要任何高端处理器和显卡,只需要基本的视频解压能力就可以了。 我将上述内容中一些比较重要的点做了标注,百科在对于云游戏的描述时,第一句就直接阐明了云游戏的基础是云计算,那么「云计算」以及「云」指的是什么? 云计算(cloud computing),是一种基于互联网的计算方式,通过这种方式,共享的软硬件资源和信息可以按需提供给计算机和其他设备。提供资源的网络被称为“云”。 看完上面一句话有些小伙伴还会不太清楚,我们先来回顾下之前的知识。我在《互联网是如何工作的》这一篇文章中提到:一台又一台的服务器通过“网线”连接在了一起,形成了类似下面这样的结构 👇 众多服务器组成的这种结构被称为“互联网”,而其中每台服务器都被称作“节点”。 事实上这些节点都和你的本机无关但又何你的本机有关。 为什么这么说呢? 无关的原因是,这些节点所包含的计算能力(CPU、GPU)和存储文件都不是你的。有关的原因是,你可以通过某些方式运用这些能力和文件。 而上述所说的一个个节点便是云计算的核心,即「云」。 大量的水滴漂浮在空中,聚合成云。和我们所说的云很相似,只是这里的云是由大量的数据存储、计算资源和应用程序组成,这便是云计算服务。 「云」其实是一个抽象的概念,并不像服务器有一个具体的实物可以展示,我们可以把「云」理解为一个资源共享池。举个例子就是,我有很多东西,家里放不下了,放到一个特定的地方存着,随时提取。大家都可以访问的就是「公有云」,只有特定的人可以访问的就是「私有云」。 这个“东西”一般是指数据、软件、服务等,而“特定的地方”就是云。所以对于云计算我们也可以简单的理解为:将本地需要进行的计算任务迁移到云端进行。 如今云计算及其产物已经深入我们的生活,我们熟悉的百度网盘、iCloud 还有最近的阿里网盘就是「云存储」,以及本文要介绍的主角「云游戏」也是云计算的产物。 云游戏 云游戏的原理 在现在这个游戏变得越来越流行的时代,人们却被低配设备所限制,比如我,虽然出了很多新游戏,却苦于手头没有一台合适的机器用于玩耍。以往玩游戏我需要配一台游戏主机或者高性能游戏本,少说也要五六千,因为游戏对于计算机性能的要求是非常高的,这些都必须依赖玩家自己的电脑。 但是在云游戏模型中,所有的游戏逻辑和渲染都在服务器端运行,然后再从服务器把压缩的画面传给用户,这样玩家就不需要一台高性能的计算机了,对于设备的要求便也就是基本的视频渲染能力和可靠稳定的网络环境了。 云游戏摆脱了对硬件的依赖。对服务器来说,仅仅需要提高服务器性能而不需要研发新主机;对用户来说,可以得到更高的画质而不用购买高性能的计算机。也就是说,用户可以花一小笔钱租一个更好的计算机来玩各种游戏,就像用机顶盒看电视一样,这意味着玩家可以在计算机硬件,特别是 GPU 上省下一大笔钱。 云游戏需要什么? 低延时 在解释云游戏的原理时,我们提到了云游戏的游戏逻辑和渲染都是在服务器端进行,然后将画面传送给用户,所以说一台可以高速上网的设备极其重要。如果网速不够快,不够稳定就无法及时接收到高质量的画面。 说到这我们需要介绍一下网络延时,所谓网络延时指一个数据包从用户的计算机发送到网站服务器,然后再立即从网站服务器返回用户计算机的来回时间。通俗的讲,就是数据从电脑这边传到那边往返所用的时间。 以我们现在还在普遍使用的 4G 网络而言,它的延时基本在 30ms ~ 70ms 波动,部分信号不好的地方延时还会更大。这还只是数据传输时的网络延时,如果算上画面编解码的时间,延时达到 100ms 是很容易的事情。 我们知道视频的原理就是每秒播放多张静态画面,画面越多,对于人的观感来说就是视频越流畅。这是因为对于人眼来说,我们的视觉神经是有一个反应速度的,并且对于不同频率的光有不同的暂留时间。其时值约是 1/16 秒,也就是 62.5ms。也就是说,如果网络传输所消耗的延时大于 62.5ms,我们就会觉得画面很不流畅(62.5 是一个理论值,实际情况下这个数值会小于 62.5ms,对延时的要求更苛刻)。 高带宽 现在我们来做一个简单的数学题。 刚才我们说到视频的原理是每秒播放多张静态图像。我们知道图像都是由一个个像素点构成的,对于一张非黑即白的二值图像,不压缩的情况下一个像素只需要 1 个 bit。如果是 256 种状态的灰度图像,不压缩的情况下一个像素需要 8bit(1 字节,256 种状态)。如果用 256 种状态标识屏幕上某种颜色的灰度,而屏幕采用三基色红绿蓝(RGB),不压缩的情况下一个像素需要占用 24bit(3 字节),这个就是常说的 24 位真彩色。 ...