2.1.4 云游戏的3种分类方式
分类是对事物进行深度认知与理解的一种方法。本书将以云游戏技术链条中的不同环节为基础,对云游戏进行分类,以加深读者对云游戏概念的认知与理解。根据云游戏所包含的技术要素,我们从云(云端)、管(网络传输)、端三个层面的技术特征入手,对其进行分类。
1.按云端计算架构分类
根据运行游戏的云平台的计算架构来进行分类,云游戏可以分为X86架构和ARM架构两大类。X86架构的云平台主要用于PC端游戏和主机游戏的云化,ARM架构的云平台则主要用于手游的云化。
X86服务器的操作系统既可以是Windows,也可以是Linux,其优势十分明显。
第一,服务器的标准化程度高,供应链成熟,目前IT领域的大部分服务器都是X86架构,因此服务器的购买比较方便,备货周期非常短。
第二,硬件稳定性高,耐用性好,使用生命周期长。
第三,维护简单,X86架构服务器的IDC托管模式很成熟,机房的管理人员无须进行特别培训即可胜任。
但是,万事万物都是相生相悖的,X86服务器也具备性能损耗大、经济成本高、一级兼容性较差等问题。
基于ARM服务器的Android虚拟机架构与X86服务器的架构基本类似,只是云端服务器的CPU是基于ARM指令集,而非Intel的X86架构。相应的,其优势也有相同点,例如,服务器的标准化程度高、硬件稳定性高、维护相对比较简单等。同时,值得一提的是,由于ARM架构本身就是ARM指令集,因此无须进行指令集的解析,从而也不存在兼容性问题。但其存在核心供应商较少、配套硬件的供应链不够成熟、显卡等关键器件的支持力度较小等问题。
2.按网络传输内容分类
根据网络传输的游戏内容来进行分类,云游戏可以分为指令流传输和视频流传输两大类。它们的实现方法各不相同,指令流传输图示如图2-2所示,视频流传输图示如图2-3所示。
图2-2 指令流云游戏
①用户对终端设备进行操作控制,例如Touch、鼠标、键盘、手柄等。
②通过网络将操作指令发送给服务器端。
③服务器端接受操作指令,通过CPU计算,形成渲染指令流,例如OpenGL、WebGL渲染指令流。
④通过网络将渲染指令流发送给终端设备。
⑤终端设备解析并执行渲染指令流,利用终端设备GPU进行渲染。
以指令流为核心的技术解决方案,其在网络中传输的是相应的指令。指令流云游戏的原理是在服务器端运行游戏,所有的逻辑仍由云端进行运算,只是最终形成的是OpenGL或者WebGL的渲染指令,再通过网络传输到终端设备,由终端设备解析和执行指令流,指令流充分利用了终端设备的GPU能力。
图2-3 视频流云游戏
①用户对终端设备进行操作控制,例如Touch、鼠标、键盘、手柄等。
②通过网络将操作指令发送给服务器端。
③服务器端接受操作指令,通过CPU计算,再通过GPU进行渲染,将渲染后的画面进行压缩。
④通过网络将画面以视频流的方式发送到终端设备。
⑤终端设备将画面显示。
以视频流为核心的技术解决方案,其在网络中传输的是音视频信号。游戏中所有的计算和画面渲染都在云端服务器中进行处理,随后通过相应的编码压缩技术,将最终的画面转换为视频和音频数据并利用网络传输给不同的终端设备,最后由客户端进行解码并显示。
以上两种技术解决方案都需要从以下几个方面进行技术层面的优化和整理,最终形成统一的行业规范。
指令流传输的方式传输的内容少而轻,游戏的运行还要依赖本地终端的计算能力,其实,指令流云游戏只是介于云游戏与本地游戏之间的一个“混血产物”。视频流云游戏则全部在云端执行,从云游戏的概念上来看,视频流云游戏才算是纯正的云游戏。但是,在网络质量尚未达到支持云游戏的理想条件时,指令流传输方式也不失为一种好的过渡性解决方案。
3.按端侧串流内容分类
根据端侧云游戏产品的形态进行分类,其产品形态可分为两种:游戏窗口串流和桌面串流。游戏窗口串流的特点是云端仅将游戏窗口内的画面串流至本地,只能用于游戏用途;桌面串流则是将整个桌面串流至本地,通常会预置各类热门网络游戏(LOL、DOTA2、PUBG等)和主流游戏平台(WeGame、Steam、Origin等),用户就像是在使用网吧的电脑一样。