我上大学时的第一台电脑是微星的一款游戏本,当时买它的原因很简单,性能足够强大,无论是编程等日常任务还是游戏它都可以胜任。现在回想起来,依稀记得它炫酷的灯光、强悍的性能以及用它驰骋虚拟世界的快感。后来年纪渐长,打游戏的热情也逐渐减少,虽然那台电脑仍在家中,但已经落后的性能让我鲜有机会“宠幸”它。再后来,读研之后换了 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 位真彩色。
那么对于一张 1920×1080 的图像,在不压缩的情况下,所需要的大小为 1920×1080×24 = 49766400bit,约等于 48Mb(注意这里是小写的 b,表示位),那么假设对于一个 1080P 30FPS 的视频,每秒就会播放 30 张 1920×1080 的图像,所以在不压缩的情况下如果为了传输这么多画面,网络的带宽必须要达到 48×30=1440Mb/s,当然在视频传输的过程中,肯定会有压缩的过程,假设可以压缩 50%的数据,那网络的带宽也需要 720Mb/s,看到这你想一下,你家的网络带宽又有多少呢?
这里之所以用 Mb 作为单位是因为方便大家和自己家的宽带进行比较,因为通常我们所说的百兆带宽指的是 100Mb 而不是 100MB。
如何实现低延时+高带宽
从开源节流的角度去考虑问题,如果网络传输的速度有上限,那么想要在单位时间内传输更多的视频数据,最好的方式便是对视频进行编解码。
视频编解码
编码这一概念在通信与信息处理领域中广泛使用,其基本原理是将信息按照一定规则使用某种形式的码流表示与传输。常用的需要编码的信息主要有:文字、语音、视频和控制信息等。
刚才说了动态图像的像素形式表示数据量极为巨大,存储空间和传输带宽完全无法满足保存和传输的需求。所以要对视频进行编码,其最主要的目的就是为了对视频数据进行压缩。
而视频信息之所以存在大量可以被压缩的空间,是因为其中本身就存在大量的数据冗余。
举个简单的例子,下面这两张图片是一段视频的其中两个画面(寒食君友情出镜)
从这两张图片可以看出,其实变化的部分就是人物的动作,而不变的是后面的背景,所以后面的这块背景像素在对于视频来说就是一段冗余数据,可以被压缩。同样的,人物的脸部虽然有动作变化,但是人物的脸并没有变化,寒食君还是寒食君,因此不变的地方同样是冗余数据。
视频中的冗余数据的主要类型有:
- 时间冗余:视频相邻的两帧之间内容相似,存在运动关系
- 空间冗余:视频的某一帧内部的相邻像素存在相似性
- 编码冗余:视频中不同数据出现的概率不同
- 视觉冗余:观众的视觉系统对视频中不同的部分敏感度不同
针对这些不同类型的冗余信息,在各种视频编码的标准算法中都有不同的技术专门应对,以通过不同的角度提高压缩的比率。这里我们简单说一下目前较为流行的两种编码 H.264 与 H.265。
这两个是 ITU-T VCEG 制定的视频编码标准。H.265 标准围绕着现有的视频编码标准 H.264,保留原来的某些技术,同时对一些相关的技术加以改进。新技术使用先进的技术用以改善码流、编码质量、延时和算法复杂度之间的关系,达到最优化设置。
具体的编码算法太过复杂,这里就不再多说,我们只要知道 H264 由于算法优化,可以低于 1Mbps 的速度实现标清数字图像传送;H265 则可以实现利用 1~2Mbps 的传输速度传送 720P(分辨率 1280*720)普通高清音视频传送。H.265 旨在在有限带宽下传输更高质量的网络视频,仅需 H.264 的一半带宽即可播放相同质量的视频。
经过测试,在相同的图像质量下,相比于 H.264,通过 H.265 编码的视频大小将减少大约 39-44%。在码率减少 51-74%的情况下,H.265 编码视频的质量还能与 H.264 编码视频近似甚至更好。
5G 和 Wi-Fi6
有了视频解码可以在单位时间内传输更多的数据后,剩下要做的便是提高传输速率。这便引出了今年非常火的两个名词——5G 和 Wi-Fi6。
就目前公开的数据来看,5G 协议中的峰值速度已经达到 20Gbit/s,Wi-Fi 6 最高也可以达到 9.6Gbit/s,这也就意味着在网络传输中可以携带的数据包更大。而且由于技术的提升,这两者在网络延时上也做了非常多的优化,在同等条件下 5G 的延迟低于 1 毫秒,相较于 4G 的 30-70 毫秒可谓是质的飞升。而 WI-FI6 的网络延时虽然不及 5G 这么优秀,但也从 Wi-Fi5 的平均 30ms 降低至 20ms。
小结
云游戏的概念其实早在 2013 年就已提出,但一直不温不火,目前来看,得益于越来越先进的压缩算法和低延时高带宽的网络环境,云游戏真的有可能异军突起,那么目前已有的云游戏做到什么样了呢?恰好笔者最近收到消息,腾讯的 START 云游戏平台已经公测,接下来谈谈我的云游戏初体验。
我的云游戏初体验
我的第一次云游戏初体验是在腾讯的 START 平台上进行的,点击官网https://start.qq.com即可看到如下的页面。
如果不是因为他的域名里有 qq.com,这简洁的页面真的让我怀疑这是腾讯做的吗?而且这句「从此 Mac 也有庞大的游戏库」这句话真的让我很难不怀疑腾讯会那么好心提供那么多游戏吗?
抱着怀疑的态度我下载安装了这款云游戏平台,Mac 安装软件的方法一如既往的简单,下载完后直接将 app 文件拖入 Application 文件夹中即可。
打开之后我们可以看到腾讯提供的一些游戏,种类虽然不是很多,但是对于不能玩游戏的 Mac 来说已经很不错了。
我试玩了一下很久没玩的 QQ 飞车,体验一番后,我只能说:NB!!
我录了一段小视频,已经上传到 b 站上了,有兴趣的可以播放看一下(玩的比较菜,不要嫌弃)
之后我又玩了几把堡垒之夜和穿越火线,目前来看:
- 腾讯 START 的整个流程已基本完备,使用门槛很低,下载一个客户端即可体验云游戏。
- 虽然游戏种类不是很多,但有总比没有好
- 赛车类键盘操作游戏体验很好,能还原 PC 体验的 90%以上。画面流畅,帧率稳定,分辨率高。(网速要求并不是很苛刻,只要连接了 5G Wi-Fi 即可)
- 目前来看 START 是免费的,不知道公开运行时候是不是会收费。
总的来说,这次的体验真的让我惊到了,因为按照之前的计算,现在的 5G Wi-Fi 的速率和延时其实是不足以带动云游戏,但体验下来,效果真的非常棒,我的 Macbook pro 终于也可以愉快的打游戏了,手里有 Mac 的小伙伴也可以下载体验下。
浅谈云游戏
云游戏的影响
对于玩家来说,云游戏并不需要高性能的显卡,连使用 MacBook Air 的小伙伴也可以畅玩,扩充了游戏品类,减少了高昂的硬件开支。
而且由于游戏都在云端,可以有效的杜绝外挂(你总不能把外挂装到厂商的服务器里吧),同样的也可以防止盗版游戏的盛行(虽然并不知道这是好事还是坏事)。
同样的,对于游戏开发者来说,云游戏的出现可以是他们在开发游戏时可以减少对老设备、低性能设备的适配,提升了游戏呈现质量的同时降低了开发成本,提高了游戏开发的效率。
云游戏会取代 PC 吗?
说了那么多,一旦一项新技术兴起,就会面临一个老生常谈的问题:云游戏的出现会取代传统的游戏主机吗?
肯定的说,不会。
就算未来网速再快、延时再低,也不可能达到 0 延迟。没办法,这是物理法则。当你在玩电竞游戏的时候,你需要的一定是几毫秒的延时而不是几百毫秒。
但同样的,云游戏给游戏玩家提供了新的选择,对于一些非重度游戏玩家,玩一些对延时要求不高的游戏来说,云游戏确实是一个新的选择。
所以,回到一开始的问题,云游戏在革谁的命?是英伟达、AMD 这样的显卡厂商吗?还是 Steam、Uplay 这样的游戏平台?我看都不是,它革的是「游戏本」、是「盗版游戏」的命。
最后
以上就是本篇文章的全部内容了,如果你觉得还不错的,欢迎点赞支持一波,你们的支持是我更新的最大动力!