斧子科技王峰: Android 游戏主机真正的挑战是什么?_36氪
编者按:本文来自斧子科技。文章是王峰在知乎问题 “Android 游戏主机真正的挑战是什么?” 下的答案,内容由他和斧子科技研发团队的交流和总结后整理而成。
随着我们斧子科技计划推出 “战斧” 电视游戏主机的消息逐渐被大家所关注,关于我们采用 Android 系统做游戏主机是否合适的讨论也越来越多。目前市场上基于 Android 系统做游戏主机的公司,基本上是将目前的 Android 移动游戏直接移植到电视平台上,而市面上鲜有优质的移动游戏,可以很好地支持专业电视游戏平台上的产品表现,所以这一大批 Android 游戏盒子基本没有获得市场成功,没有能力对市场上现有或者潜在专业主机游戏玩家产生拉动。
游戏主机产品的成败,除去必须要考虑的游戏机性能和硬件体验外,很大的程度上是靠优质游戏内容来带动的。斧子科技从创办之初就立志做专业电视游戏主机,所以我们直接在目前 XBOX 和 PS 平台级的合作厂商中寻找专业主机游戏内容,把它们移植到我们自己开发的基于 Android 系统的平台环境上来。但很多人对基于 Android 系统运行的游戏主机抱有很多质疑,针对这些问题,我将斧子科技硬件设计、系统软件以及游戏移植等研发团队在过去一年里摸索和实践中形成的看法,做一个简要地整理,分享出来,与诸位探讨。
其实,Android 和 PS4、Steam 所采用同的 OS 一样,也是基于 Linux 内核开发的操作系统,能够很好地完成 CPU 调度、内存管理和其他硬件资源的管理等 OS 最基本的任务。衡量其作为专业游戏主机的 OS 是否靠谱,就要从对图形 API 的支持能力、应用执行效率以及系统环境的兼容性和稳定性三个方面考虑。具体观点,我们在下文细说。
一、首先来谈谈玩家最为关心、直接影响游戏画质的图形 API 问题
图形 API 代表了不考虑硬件限制的情况下,理论最高画面水平。例如我们用 Microsoft DirectX 9 的 API,就算用现在性能最好的显卡,也不可能做出一个 Microsoft DirectX 11 的画面出来。
很多人对 Android 的图形 API 规格上还停留在 OpenGL ES 2.0 的时代,由于 OpenGL ES 2.0 API 的限制,使图形芯片的特性无法得到发挥。这个期间,主流的商业游戏引擎不得不放弃一些高级渲染技术。
2014年11月,Google 发布的 Android 5.0 开始支持 OpenGL ES 3.1+AEP,2015年8月 份 SIGGRAPH 2015 图形大会上,Khronos 组织正式发布了新一代的 OpenGL ES 3.2 移动图形规范,支持渲染多个缓冲区,有了浮点、深度、顶点等纹理格式和新版本的 GLSL 着色语言,还增加了引擎开发人员期待已久的 MSAA Render To Texture。
我们回顾一下,在 2014年Google IO 大会上,UE4 引擎在搭载了 NVIDIA Tegra K1 芯片的 Android 设备上的表现,就有了以下四点明显进步:
1.得益于支持渲染到多个缓冲区,引擎采用了延迟渲染技术,能够支持更多的实时动态光照,同时有了 MSAA Render To Texture,GBuffer 的锯齿问题能够更有效地解决。
2. 有了浮点纹理的支持,HDR 效果的实现更加方便。
3. 深度纹理的支持,让纹理阴影实现更快速,留出更多的空间提升阴影质量。
4. 人物角色材质精细,采用多层细节纹理、法线贴图和环境贴图让金属质感表现得更好。
商业引擎方面,现在常用的游戏引擎如 Unity、Unreal 等对 Android 也是非常的友好。如自带打包工具链、提供运行时性能消耗分析等功能。
另外,NVIDIA 的 Tegra K1 和 X1 直接支持跨平台的图形程序接口 OpenGL 4.4,对游戏开发商来说跨平台移植门槛和成本都会降低。
二、再来看受到不少玩家质疑的 Android 执行效率低、跑不了好游戏这个问题
执行效率指的是软件能不能百分百发挥出硬件应有的能力。如果效率低,硬件的性能只能用出一半,那么同样的画面,原来能有 40FPS,可能现实就只能跑到 20FPS。
手机上一般的 App 由于对性能要求不高,为了开发方便,更多使用 Java,由于 Java 虚拟机的存在,性能是受到一定的影响。
但是,对于性能要求高的应用,特别是游戏,都不会大量使用 Java 虚拟机,而通过 NDK 直接调用原生 C/C++ 的库、代码和图形 API,所有的游戏引擎包括 Unity、Unreal 都是这样。这种类型的应用执行效率并不低,与游戏在 PS、XBOX 或者 PC 的系统下运行表现并无区别。
所以,只要硬件性能带的动,Android 不会成为问题。
有人要问了,既然 Android 执行效率并不低,为什么现在大家看到的 Android 手游画面质量都普遍不高呢?
一方面是因为手游开发商需要尽可能多适配中低端手机,加大潜在受众的量。另一方面是手游要考虑手持设备耗电量和发热的问题,画面做的好但是只能玩几分钟然后设备就发烫没电,这是不能接受的。
而且,由于目前手游生命周期都比较短,绝大部分开发商出于商业上的考虑,不会花大量时间精力去把画面做到极致,不符合投入产出比。
所以不能用目前看到的手游图形质量去衡量一个专门为了 TV Console 所适配的特定硬件产品的图形表现能力。
这也是为什么我们 “战斧” 游戏主机暂时将精力集中于引进和移植专业主机游戏内容,而不会在这个阶段就引进原生移动游戏的技术原因之一。
三、在移动端,Android 系统的稳定性和兼容性一直都饱受争议,那么在游戏主机平台是否也会出现类似问题呢?
操作系统的稳定性兼容性,影响游戏主机的运行流畅程度,是作为操作系统给用户带来的直观感受之一。
在移动端,Android 系统表现出的不稳定和兼容性问题并不是 Android 系统软件设计的问题,而是受 Android 生态系统的碎片化和开放性影响,加上 Android 阵营的开源体系(开源给任何硬件开发商,授权开发商做任意改动)造成的 Android 系统在移动终端表现不稳定。
Google 的 Android 系统对所有硬件厂商开放,每年基于 Android 的硬件数不胜数,硬件设计都不一样,厂商还各种深度定制自己的 ROM,而且系统不会强制升级,要做到软件兼容性好是非常难的。质量不能保证的软件装得多了系统稳定性也就不能保证了。
相反,做硬件出身的 Apple,他们采用的生态系统更为封闭,每年2 到 3 款硬件且系统环境相似度非常高,系统只升不降,所有软件只能从其独有的官方商城下载,所以稳定性更高。
游戏机行业跟手机不一样,生态是个闭环的,不管是微软、索尼还是任天堂,都只能在自己的硬件上玩在自己平台上发行的游戏。主机平台硬件型号比 Apple 更少,游戏主机系统软件版本目前也是强制升级,保证不会有硬件和系统的碎片化问题。主机平台游戏数量比 iOS App Store 里应用的数量都要少,能够保证每一款主机平台上的游戏都经过充分的测试和检查和优化。
所以,虽然 “战斧” 游戏机基于 Android 系统,但我们所建立的生态,更类似于苹果 iOS、微软 XBOX 及索尼 PlayStation 那样的闭环生态,即每款游戏都需要经过游戏主机硬件软件大量优化和严格测试,系统行为也为游戏机深度定制优化。没有用户在主机上安装大量的各种安卓应用,就不会有 Android 系统在移动设备上所出现的兼容性和稳定性的问题。
最后,我们谈谈针对 Android 游戏主机的游戏优化问题
大家常常把已经面世的 Android 游戏主机(一系列的盒子,包括华为、中兴、OUYA 等)不尽人意的游戏体验问题,简单归结成 Android 系统的问题,实在是一个不小的认知误区。但实际上,游戏内容的移植和优化才是真正影响了 Android 游戏主机的游戏体验的关键所在。
斧子目前已经有一支专业的团队在着手游戏优化方面的工作,一方面靠我们自己的技术力量,一方面靠我们的内容合作伙伴。我们正在继续加大投入,这方面的人才,大部分都在一线的 PC 游戏公司的技术队伍里,要对熟悉系统底层和游戏引擎,非常难找。
熟悉游戏主机的都知道,主机硬件性能是比不上同期顶配的 PC 的,但是由于游戏的优化很到位,所以整体表现能力上并不逊色。游戏移植过程中的优化工作,都包括哪些呢?
下面举些关于游戏优化工作的例子。
在资源利用方面,有些游戏不能把多核 CPU 尽量都用起来,负载都集中在 1、2 个进程里,部分 CPU 忙不过来,达不到理想的游戏体验,部分 CPU 空载,造成资源浪费。对游戏进行优化后,系统可以更加合理地分配资源,调动出最佳的 CPU 性能,从而改善游戏体验。
在优化绘制方面,如果多使用纹理图集,并尽量将相同类型物体集中一次性绘制,可以显著降低对底层图形程序接口的调用,进而提高游戏效率。
而将文本格式转化为二进制、用最佳贴图压缩格式、压缩网格体和动画数据等则可以减少游戏加载时间。
当然,游戏优化的难度不低,不仅依赖游戏优化团队对系统底层和硬件的充分了解,还需要耗费大量的时间和人力。尤其是国际上 3A 级别的大作,或者是使用自研的、对 Android 没有良好支持的引擎所开发的游戏作品更加如此。再加上传统主机游戏开发商和开发团队一般不熟悉 Android,所以成功引进和移植一款 3A 大作到 Android 游戏主机是非常困难的,需要得到游戏大厂认可和双方大量的资源投入,针对 Android 游戏主机的硬件配置对游戏进行优化。我们曾披露的同日本光荣特库摩公司(KT)之间的战略合作,就属于这个范畴。
这是我们目前面临的最大挑战之一。
本文来自读者投稿,不代表 36氪 立场,如若转载,请注明出处:http://36kr.com/p/5039511.html
“看完这篇还不够?如果你也在创业,并且希望自己的项目被报道,请 戳这里 告诉我们!”