12月5日,在 2015HTML5移动生态大会 上,白鹭时代联合创始人马鉴发布了 Egret 3D 手机页游游戏引擎。在会后,马鉴接受了InfoQ记者的采访,谈到了WebGL游戏化是否成熟以及WebVR发展的问题。
Egret 3D是自今年5月份发布Egret 2.0以来颠覆性的重大升级,基于移动游览器的WebGL 3D图像API,以及实验性的支持了WebVR API,相关的开发工具也获得同步更新。据马鉴在大会上介绍,Egret 3D的相关特性有:
另外在大会上马鉴还发布了青雀移动解决方案,使用云端积木式的开发方式搭建移动Web应用和HTML5宣传页面。
以下是会后InfoQ记者对马鉴的采访整理。
马鉴:目前WebGL在移动平台上的覆盖率超过84.5%,WebGL标准在2011年发布,我们看到现在几乎所有的主流浏览器厂商都支持了WebGL,包括苹果、谷歌、微软等等,目前市面上已经出现了一些基于WebGL的3D绘图库,也有越来越多的人来使用它们。
各个移动平台也基本早就支持了WebGL,不过在以前受限于移动设备的性能,所以没有人用它来做很多东西,但现在我们的主流的移动设备差不多都 有独立的GPU处理单元,所以这个性能限制基本不存在了。至于平台差异,因为大家都按照WebGL标准去实现API,所以基本上没什么差异。
马鉴:我们所遇到的主要的瓶颈在内存和绘图IO上,这个和目前3D手机游戏引擎的瓶颈应该差不多,我们也做了一些相关的优化。
马鉴:WebGL API本身只是对OpenGL ES 2.0的一个封装,因此用WebGL做手游和原生手游其实并没有很大的差别,不过因为WebGL的API是固定的,在底层优化方面不如原生,另外JS的渲染和计算速度也比不上原生引擎,不过目前来看,因为移动设备性能提升,这些差距是越来越小的。
马鉴:我们在第一天开发Egret的时候就用了TypeScript,在此之前我们用 ActionScript做过一些大型项目,而在JavaScript上开发大型项目却是一个顽疾,TypeScript的确是极大的提升了生产力和团队协作的能力,我们团队一直用到现在也非常喜欢。
马鉴:WebVR目前是在草案阶段,但是Google的Chrome已经提供了一套完整的API可以使用 了,我们算是WebVR的早期利用者,目前我们和Google的相关开发者有过接触,密切跟踪他们的研发进展和未来的更新,另外我们也正在接洽W3C中国,希望能参与到标准的制定过程中来,给标准提一些建议。
马鉴:因为我们自己有一套UI组件,并且支持它的可视化开发,我们这套UI组件是用XML来描述的,这个其实和React里面的JSX类似,于是我们就做了一个EXML到JSX的一个转换,通过编写我们的UI组件,在IDE里可以导出React的JSX出来, 算是间接的支持了React的可视化编程。
当然,目前前端界对可视化编程存在争议,我们做这一条的出发点是我们的Lark框架搬到云端后,想降低开发门槛,完全通过拖拽组件就可以生成代码,添加React支持可以让我们的这套工具使用范围更广泛,可以和其它的基于React的开发工作流无缝的结合起来,这是我们的一个初衷。