您当前的位置:首页 > 游戏频道 > 单机游戏 > 游戏工具 > 正文返回列表页

王泽:白鹭引擎将引领下一代H5游戏的技术变革

编辑:瑞安网 来源:游戏陀螺 发表时间:2017-09-08 05:44 人气 | 查看所有评论

导语:5月24日,由白鹭时代举行的白鹭引擎5.0发布会在广州举办,其中白鹭引擎首席架构师王泽分享了他对于H5等技术的看法。 以下为王泽演讲内容: 我们这次的主题叫引领下一代HTML5游戏的技术变革。因为白鹭引擎这三年从1.0到5.0所有迭代版本中,它产生了游戏行业

导语:5月24日,由白鹭时代举行的白鹭引擎5.0发布会在广州举办,其中白鹭引擎首席架构师王泽分享了他对于H5等技术的看法。 以下为王泽演讲内容: 我们这次的主题叫引领下一代HTML5游戏的技术变革。因为白鹭引擎这三年从1.0到5.0所有迭代版本中,它产生了游戏行业

王泽:白鹭引擎将引领下一代H5游戏的技术变革

5月24日,由白鹭时代举行的白鹭引擎5.0发布会在广州举办,其中白鹭引擎首席架构师王泽分享了他对于H5等技术的看法。

以下为王泽演讲内容:

我们这次的主题叫引领下一代HTML5游戏的技术变革。因为白鹭引擎这三年从1.0到5.0所有迭代版本中,它产生了游戏行业的变革,白鹭引擎1.0某种程度来说是技术变革后续版本本质上是对1.0版本的不断完善,而5.0版本我认为会带来新的技术变革,带来全新的东西,新的挑战新的机遇。

HTML5技术痛点有三个方面。运行效率、开发效率、加载效率。Egret 5.0主要在运行效率和开发效率做了改进。一个H5游戏引擎,最底层性能决定的性能在那?就是JavaScript性能,现在利用一些黑科技,可以引领H5游戏下一代技术变革。JavaScript1995年发明出来的时候非常糟糕,2007Google发明了V8引擎,引用了JIT技术,这个技术把原来脚本引擎先在运行前汇编,真正执行的语言并不是JavaScript,执行的是汇编语言,JavaScript的性能得到飞跃式的提升,现在一切的一切,是H5游戏能成功的最底层的技术前提。2017年,明显感觉到各种内核逐渐把性能挤压到极致,很难提升,努力到无能为力。有没有什么拐点,可以让H5游戏的新能得到进一步飞跃?

一个新的技术叫WebAssembly,WebAssembly是什么东西?简单来说,它是一个新的模式。这个文件格式是可移植、体积小、加载快并兼容Web的全新格式。体积小,比JavaScript的体积小,解析快,并与现在的JavaScript完全兼容。

它是由主流浏览器厂商组成的W3C社区团体制定的新的规范,我们通过Keynote 上的这张图可以看到 JavaScript 的执行原理,JavaScript首先浅蓝色的解析,然后是深蓝色的编译过程,由于JavaScript是动态语言,有时候需要重新编译,所以有重新编译过程。而WebAssembly没有重新编译,只需要一个简单的解析。

高性能、低尺寸,它的设计目标就是为了充分发挥硬件能力。简单看一个性能对比,左边的图是百度引擎4.0,右边是5.0,左边的屏是19帧,右边的是60帧。但是,这是否意味着大家把自己的游戏升级到白鹭引擎5.0版本性能就翻了三倍,其实并不是,这只是在比较极限的情况,还需要考虑游戏自身业务逻辑对性能的影响。 引擎4.0压缩后的体积191K,而5.0是76K+81K,76K是底包,除了底包,整个白鹭引擎4.0能实现的功能只有81K。

WebAssembly它是一个开放的文本模式,可以设置为文本,可以直接调整代码。浏览器兼容性,这是很大的问题,IOS,10.1不支持,但是Safari TP支持。一般来说下一个大版本的IOS里面可以实现,这就是浏览器兼容性问题。安卓系统中,由于腾讯TBS会支持,所以所有安卓手机的微信中都会支持WebAssembly。

此外,chrome、SafariTB、FnreFOX都支持,它的性能也比我们现在4.0版本的性能提高不少。

白鹭引擎如何利用Egret 5.0,在这个架构图里面,开发者关心的游戏逻辑是绿色部分,白鹭引擎一直运输在中间的橙色区域,最底层相当于TBS或者苹果Safari浏览器运行支持。我们现在做的事情就是对外API没有任何变化。这些代码怎么生成出来的?并不是一层一层手写出来的,是通过WebAssembly Compiler编译出来的。

Egret 5.0之后我们会在引擎渲染层面做很多支持,首先我们会设计名实现高性能API,现在API没有让WebAssembly发挥百分之百性能,只发挥80%,现在设计先的API发挥90%95%。我们会把内置动画、物理、粒子系统,我们跟腾讯合作多线程离屏渲染技术,游戏的逻辑是在一个线程里面,引擎在另一个线程里面。QQ浏览器会支持共享,所以接下来我们会支持多线程离屏技术。在腾讯的支持下,性能可以得到进一步提升。

Egret 5.0我们采用了全新的方式进行升级,从白鹭引擎专注于5.0 版本的开发,有两个月没有发版本,前天发了4.1版本,4.1是为5.0做过度,4.0最大的特性就是引入模块化更新的策略。比如你就想用EUI模块,我们之所以设计这个结构,最开始的初衷是为了解决声音的问题。比如声音模块升级,白鹭引擎可以提供只升级声音模块。

加载效率,白鹭引擎4.0资源框架处理得不错,我们引入了一个新的工具,是Egret Paper,基于数据驱动的组建化开发,开始化编辑器,所见即所得。这个工具,我们会争取在今年7月份之前发布,由于工作量很大,涉及到白鹭引擎所有其他工作的集成,确实有一定风险,我们会承诺尽快发,如果哪个开发者对这个工具特别感兴趣,可以在群里面联系我们,适当的时候,比如6月底提前给大家测试,寻求一些反馈。

现场问答:

Q:如果用5.0引擎,是不是意味着我们核心模块可以用C++ 开发?

王泽:这是我们想把5.0开源的原因,现在暂时不行。简单说一下,WebAssembly现在是一个模块,这个模块JavaScript与它互相调用有一定程度,理论上可以通过动态连接技术,理论上可以。如果这条路可以走通,C++模块可以直接调用,但是目前WebAssembly还没有实现这个功能,但是长期来说一定可以实现。如果不支持动态链接的话,最简单的方法就是我们直接把C++开源出来,这是白鹭引擎在接下来版本里开源的考虑,当然时间表不确定。

Q:我之前想找一款像Egret这样程序做一个游戏,能不能用白鹭再加刚说的TBS合成一个APP,跟现在原生APP抗衡。

王泽:如果你想做的在苹果上运行,这是不行的,因为苹果上无法使用TBS。但是可以在苹果上使用它自己浏览器打包,实现类似的功能。TBS主要解决性能问题及碎片化问题。IOS上没什么碎片化问题,不会出现安卓这样没了TBS就没法过的情况。你说的方法不行,但是可以换一个方法,使用iOS 的 WKWebView 对你的游戏进行一层包装即可。

健康游戏忠告 抵制不良游戏,拒绝盗版游戏,注意自我保护,谨防上当受骗 适度游戏益脑,沉迷游戏伤身,合理安排时间,享受健康生活

  • 作品版权归作者所有,如果无意中侵犯了您的版权,请来信告知,本站将在三个工作日内删除
  • 提示:本站为防止低俗内容出现,用户发表的评论及上传游戏需本站审核后才能显示出来,谢谢