云游戏具有极大的想象空间,从20年前,就吸引众多的前辈们尝试。由于技术条件不够成熟,而纷纷成为了前浪。
我认为云游戏会有三个阶段(求高大上的三阶段总结名字)
这个阶段,大家比较好理解,主要的目标就是将当前已经开发好的游戏搬到云游戏的平台上来
到了这个阶段,市场已经接受了云游戏的方式,各家都准备大力投入了。在这个阶段,需要像大数据、AI一样,在云端使用GPU集群来完成游戏的渲染;同时利用平行可扩容的GPU能力,催生未来的云游戏形态,扩展游戏策划的空间。
经历了『原生阶段』,云端大规模GPU集群渲染技术已经成熟,可以支持更复杂,更精细的VR游戏制作。前两个阶段也准备好了更高压缩比、低耗时的音视频编解码方案以及实时网络传输方案,以支撑VR视频流的高压缩率、高带宽的需求。
下面重点讲一下『适配阶段』的整体技术,『原生阶段』和『VR阶段』还没有太清晰的思路,简单提一下现在的初步想法。
我们现在是处于第四波的云游戏浪潮中,这一波相对以前有更多的巨头入场,这是因为以下的5个核心技术点已经成熟起来了。
国外主要是在做PC游戏、主机游戏的云游戏解决方案,国内除了这些,还有做移动游戏的云游戏方案(基于Android)。整个云游戏的一个软件栈全景图如下:
从下往上一一介绍
服务器主要基于x86架构,最关键的软件技术在于显卡驱动,这部分是由显卡厂商把持的。虽然AMD的UMD层驱动开源,但其核心的KMD层还是闭源的,脱离显卡厂商在外部很难对驱动做出针对性的优化。
这一领域,定制服务器也有两个方向。
ARM的两个方案优势在于成本和Android原生运行环境;劣势在于产业链还没有成熟,较难运维,一是服务器链条,包括方案,生产环节,一是GPU生态,无法使用A卡和N卡。不过ARM公司正在推进这一块,期待未来的演进。
基于不同的底层操作系统会有不同的虚拟化方案
猜测Google Stadia平台会采用Linux Host + Linux docker的方案。docker现在已经可以实现静态资源(文件系统)和运行时资源(CPU/MEM等)的隔离,难点在于GPU渲染能力的共享和调度(CUDA已支持docker)。
在Linux OS + Linux VM(vGPU/GPU Passthrough)方案里,用虚拟机和GPU虚拟化来实现GPU资源的隔离和调度。
一种是vGPU,即GPU虚拟化方案。当前业内的GPU虚拟化方案,在核心的管线和shader资源上都是基于时间片轮询的虚拟化调度方案,时间片过大,则带来较长的响应延迟,时间片过短则有较大的调度损耗。
一种是GPU Passthrough,即GPU直通。将整个GPU直通进虚拟机,为单个VM独占。GPU资源的最大化利用存在难度,需要配合其他方案一起做(这里其实就回到docker方向的考虑了)。
在『适配阶段』,游戏引擎参与较少,主要的工作会集中在游戏效果设置方面,以确定每一路玩家的资源消耗,便于服务器资源调度、体验保证和成本控制。
云游戏是大带宽低时延场景,264和265是较成熟的方案;AV1和VP9当前还较难满足低时延的要求,因其授权免费,需持续关注。
编码端,由于低时延的要求,需要尽可能的使用硬件编码器;同时软件编码在特定场景下有很多压缩带宽的方法,因此带宽和时延需要平衡考虑,不同场景可做定制。
解码端,264硬件解码已经很普及了。265硬件解码也覆盖较广。因为移动端ROM和硬件解码实现有厂家差异,移动端的硬件解码需要有适配工作。
需要再提及一下和音视频流并列的一个方案,渲染指令流方案。在PC/主机云游戏领域,这不是一个好方案,因为:
1. 用户还是需要显卡渲染,还需要硬盘存储游戏素材,不是轻量客户端。
2. 大量的骨骼动画带来的动态数据,指令流需要的带宽也不低,并且没有现成的编解码方案。
3. 图形SDK的兼容性问题,云端1.0版本,客户端有2.0、3.0版本,这里需要做API的版本间兼容。
4. 手机上现在还不支持dx,只支持opengl和vulkan。
但在移动游戏领域,因为当前手机处于追求配置升级的阶段,因此可以通过该方案充分利用手机端的硬件能力,节省服务端的硬件开销,是一个可接受的方案
这里的思路是做灵敏的流量控制。基本思想就是需要实时检测网络带宽能力,再结合客户端的数据包处理能力上限,动态的反馈给编码端,实时调节编码参数以适应网络抖动。
大家都把云游戏和5G放在一起讨论,但我接触到的大多数人对这两者的联系认识并不是很准确。准确的说,5G是云游戏的催化剂,没有5G云游戏还是会到来,只是速度会慢一些。下来说一下5G对云游戏具体的催化作用:
这个阶段的核心:GPU、云游戏引擎,游戏开发生态。
GPU需要能有集群化渲染的能力。现在的HPC应用,可以基于Nvidia的NvLink总线或PCIe总线在GPU之间交换数据,使用GPU的集群运算能力;未来的云端GPU渲染集群也需要类似的能力,并且需要更高的数据交换效率。
基于GPU渲染集群,游戏渲染管线的流程会有变化,引擎需要变化,以充分利用GPU能力。同时引擎要为游戏开发者构建一套全新的游戏研发流程和生态。
在新的研发生态中,游戏的开发、发布和运营均在云游戏技术平台中完成。一切基于云端。
也许是VR,也许不是VR,基于原生云游戏,会出现更大的游戏世界,更细腻的游戏表现。
#最后
云游戏虽然已有20年历史,仍是一个新方向,有很多的可能性。
云游戏成功了,云OS也就不远了。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。