白鹭引擎团队历经半年封闭开发于5月24日推出 Egret Engine5.0,本次大版本更新率先支持 黑科技WebAssembly技术、完全支持 ES6、增添支持项目模块化升级等新功能,实现开发运行性能大幅提升。这些功能对于开发者都有哪些帮助,现已被一一揭晓。
一、率先支持 WebAssembly
l 什么是 WebAssembly?
WebAssembly是由谷歌、苹果、微软和Mozilla的工程师合力创建(又名wasm)的***国际前沿技术,能够运用在未来浏览器中承诺可带来20倍更快性能的字节码(bytecode)。WebAssembly项目创造全新的字节码(一种机器可读的指令集,能够更快为浏览器加载高级语言),让桌面和移动端浏览器相比较网页或者应用的整体源代码变得更加高效。
l 为什么要做 WebAssembly?
众所周知JavaScript 是解释型语言,慢,是解释性语言的主要特点。 Google 在 2009 年在 V8 中引入了 JIT 技术 (Just in time compiling 简称即时编译)。 有了JIT这个buff, Javascript 可实现瞬间提升 20 - 40 倍的速度。但是 JIT 技术也存在缺陷,在即时编译的时候有些类型无法确定,这个时候 JIT 非但没有提高效率可能适得其反,所以催生了两种思路解决这个问题。
一种思路是使用 Typescript、Dart 等强类型语言,实现所有的类型都标注清楚,可把这些语言再编译成 JavaScript 来运行。
还有一种思路就是以火狐的 Asm.js 为代表的,做一个 JavaScript 子集,利用标注的方法标注变量类型。
Asm.js 相对于 JIT 和原生的性能对比
上图长度越短说明性能越好,可以发现 Asm.js 是远远高于 JIT 的,因为其他方式只能使 JIT 性能快一点,即让即时编译速度再快一点,而 Asm.js 已经是编译好的字节码直接运行。
WebAssembly 的工作方式如下:
Egret Engine5.0可以直接将 H5 游戏代码编译成机器码运行,对比Egret Engine4.0版效率提升可达300%。
说明: 引擎对比
在同一测试平台中,Egret Engine5.0对比Egret Engine4.0效率可提升300%
l 智能切换
Egret Engine5.0团队进行封闭开发期间,精心研磨着重重写了引擎底层从而支持 WebAssembly技术,为开发者提供更好的性能。如果浏览器不支持 WebAssembly ,5.0版引擎能够自动智能切换成正常 JavaScript 版本,开发者无需担忧正常使用。
二、完全支持 ES6、支持项目模块化升级
l 完全支持 ES6
除了黑科技 WebAssembly技术加持,Egret Engine5.0也完全支持 ES6 (JavaScript语言的下一代标准)新特性,开发效率将大幅提升,提高了代码健壮性和容错率,开发者可以随心所欲的使用 ES6 新特性。
l 支持项目模块化升级
同时,研发团队还对Egret Engine5.0进行了模块化分离,可以支持项目模块化升级。
例如,开发者经常反馈的声音问题,Egret Engine5.0在升级后解决了这个问题,但由于是线上项目引擎升级可能会导致不可预测的问题,所以开发者会选择谨慎升级。而Egret Engine5.0支持模块化升级后,开发中如果声音有问题可以单独升级声音模块,且不会影响其他模块的正常使用,其它模块升级则同理适用,极大的方便项目管理。
除了以上的特性外,白鹭工具团队也带来了全新的游戏创作工具 Paper,寓意轻松、快捷,致力于让大家更加高效的创作 H5 游戏。Paper 以可视化制作游戏为主,编写代码为辅,可以进一步的解放开发者。目前该款工具还处于内测阶段,正式上线时间待定,颇为值得开发者期待。
Egret Engine5.0的推出标志着 H5 开发从 JIT 方式向 WebAssembly 方式的迈进,同时也标志着向模块化管理项目的进步,白鹭引擎希望用更好的产品服务众多忠诚开发者,开发者近期可下载***版引擎,率先触及黑科技产品带来的***性能开发效率体验。