大神卡马克:VR手游研发需要注意的问题

Oculus公司CTO约翰·卡马克(John Carmack)以及Oculus VR移动部门副总裁Max Cohen在接受采访时表示,目前VR手游还面临一些问题,比如设备性能和Android系统碎片化等等,卡马克同时建议开发者们做简单的VR手游试水,下面请看GameLook编译的采访稿:

【GameLook专稿,转载请注明出处】

GameLook报道/随着前几天三星Gear VR的正式发售,虚拟显示设备正式进入了移动平台,该设备硬件由三星制造,而软件则依靠Oculus VR的移动SDK,适配三星的Galaxy Note 4智能机,使用Android 4.4.4系统,就在前不久,Oculus公司CTO约翰·卡马克(John Carmack)以及Oculus VR移动部门副总裁Max Cohen在接受采访时表示,目前VR手游还面临一些问题,比如设备性能和Android系统碎片化等等,卡马克同时建议开发者们做简单的VR手游试水,下面请看GameLook编译的采访稿:

详细介绍下你们的移动版SDK,从开发者的角度来看,它与Oculus SDK有什么区别?

卡马克:我们这个项目已经进行了将近一年的时间,几个月之前,我们向特定的开发者们推出了首个版本的移动SDK,自此之后进行了2次修改,目前依然还处于完善阶段,我们还在努力提高,但消费者版本不会太远。

核心的Oculus VR功能依然存在于Gear VR设备中,你可以用它捕获传感器界面,但这只是最核心和最基础的Oculus功能。移动版的界面更简洁,只有简单的一些选项,比如进入VR模式以及离开VR模式等等。

这里需要注意的是,Oculus移动版SDK的异步变速功能可以让显示器刷新频率达到60fps,并且可以根据用户的头部动作调整屏幕显示的内容,即便游戏本身的刷新频率达不到60fps,用户依然可以获得更好的游戏体验。Gear VR开发者E McNeill前不久在一个博客中解释说,VR的研发有很大的不同,尤其是需要消除动态模糊带来的眩晕感。

目前该平台90%的开发者们都在使用Unity引擎,而且Unity的功能和PC版本并没有差别太多,现在很多的开发者们同时为PC和移动平台研发虚拟现实游戏。不过,如果开发商们想要专门为手游平台做游戏的话,他们需要做更多的源代码工作,需要与Android平台的研发相结合,这对于很多开发这来说是不太愉悦的体验。

除非你专门为单一的Android设备做研发,这就像以前的主机研发,选择了一个设备类型之后,就不必考虑其他不同的Android配置、不同的OS版本或者类似的碎片化问题。但整体来说,为Android研发游戏并没有那么有趣。

我们当中的大多数人是第一次为Android做研发,我在这个过程中遇到了很多困难,在开始这个项目之前,我没有做过任何的Android研发,我开始还在担心会犯一系列的基础错误,但我们让Android开发者们进行了指导,后来结果并不是那么糟糕。

但我不得不说的是,为Android平台研发游戏,并不是我做过最自豪的项目。过去几个周的时间里,我遇到过很多次令人抓狂的时刻,因为这并不像苹果的SDK,很多开发者一开始就能够上手。

Cohen:移动平台的虚拟现实游戏研发和PC是不一样的。移动版本研发最有趣的是做异步变速功能,而且这个功能可以在PC版的SDK实现。所以做出高质量的VR体验是有用的,我们从移动版研发获得的经验可以为所有的开发者提供帮助。

卡马克:由于大多数的开发者都使用Unity,所以任何做过Unity游戏的人都应该很快上手,并且很快可以做出一个PC版本。另一方面,从大多数的开发者们的情况来看,你需要重新分析自己的选择,因为移动平台目前的确还不如平台强大。

但这只是VR进入手游市场的第一阶段,而且也推出了应用商店和生态系统。所以我认为对于开发者们来说,你需要的不仅是热情,初始市场对于他们来说是非常重要的,他们可以学到很多东西。

PC版本随后也会推出,到时候开发者们可以自行选择感兴趣的平台,习惯了高端设备研发的人可能不会愿意为Note 4研发游戏,所以有些开发者会愿意为PC做游戏。而且有些使用定位的功能可能只能在PC平台实现,因为我们短期内还不会在手游平台推出,直到我们测试成功。

但我认为依然有很多的开发者对手游版SDK感到激动,因为你终于可以创造一些伟大的事情,不需要PC平台的VR系统就可以做到虚拟现实游戏体验。所以这对于移动游戏开发者们来说还是具有很大吸引力的。

而且,这里需要指出的是,Note 4版本的功能已经比最初的Oculus DK1好太多了。

那么,你从第一款Android项目研发中学到了什么,开发者们要做移动平台的VR游戏研发应该注意什么?

卡马克:好吧,我不得不说,从一个平台转向另一个平台总会遇到非常痛苦的事情,我不得不说的是,Android研发比大多数的主机平台转型还要痛苦。因为谷歌对于Android软件和硬件的定位方式很差,因为谷歌依然没有真正支持源生代码研发,他们还和Java平台的研发非常类似。虽然这么说有些夸张,但对于VR系统来说,Android是非常不友好的。

所以你要做好准备,Android设置和研发体验很差,一点也不有趣。

另一个让我非常惊讶的是,Android研发尤其要注意能量管理,并不仅仅是电池电量,还要考虑设备剩余性能。因为如果你一开始就使用了4个核心来运行,那么设备就会发热。所以你在做Android平台虚拟游戏研发的时候一定要注意这个问题,不要同时使用系统的多项功能。

因此这是非常需要注意的事项之一,坦白的说,我们还在努力寻找更好的解决方法。三星在这个方面做的不错的是,我们可以为VR设定固定时钟速率,你可以选择CPU和GPU值,但你不可能说,‘给我最快的CPU和最强大的GPU’,这是不可能实现的。但很多的虚拟现实游戏都可以选择其一,比如说‘我的游戏对画面要求高,我需要顶级的GPU速度,不过我可以忍受稍慢一点的CPU速度’。

而且,Unity可以解决Android平台的多线程渲染问题。所以我们认为Unity游戏可以运行多线程,但这同时意味着你用Unity做了所有功能,很有可能带来能量过度消耗以及高温等问题。我觉得虚幻4引擎可能会更有效率,因为该引擎没有诠释性脚本之类的东西,你可以进行立体渲染,而不是分别渲染两个物体,但我们大多数的开发者都使用Unity。

不过,这里的问题是,所有PC平台的引擎都对于CPU的要求较高,比很多手游引擎需求更高。另一个方面,在PC或者主机平台,你可以修改到游戏运行让你满意为止,而在手游平台你必须注意CPU消耗问题,所以,你必须在游戏质量方面做出一些妥协,如果你的游戏按照最高配置研发的话,很可能在大多数的手游设备上运行不了多久就会产生高温问题。

开发商们因该怎么应对这个问题?

我们目前的计划是,如果你的游戏使用了太多的设备性能,最终达到了一个温度极限,你的游戏可以发出通知,在UI里向玩家发出警告。我们还没有决定这个消息应该怎么写,因为很明显三星不希望看到温度方面的字眼,但我们可以说‘系统资源不足’等,玩家看到之后可以决定结束游戏,或者调到低效模式进行游戏。

这个问题是非常需要解决的,而且也会是非常有趣的,因为我们还不知道会有多少用户喜欢手机平台的VR游戏,我们希望开发者们做一些简单的小游戏,因为这样可以很好的运行在手游设备上。而且移动开发商们还有另一个优势,由于我们移动版没有定位追踪功能,所以很多人不会担心他们的隐私问题。

在PC平台,有很多人关注VR研发,他们很注重创意方面,这样是非常好的,但如果他们其中一些人想做VR手游的话,我的建议是调整研发方式,要考虑设备CPU和GPU的性能问题。

如若转载,请注明出处:http://www.gamelook.com.cn/2014/12/194841

关注微信