在3月12日,我们将为白鹭引擎推出5.1.6 版本。5.1.6版本是对去年12月份发布的5.1版本的一次功能更新和集中性缺陷修复,主要目标是添加新的 iOS/Android App 打包支持,以及完善微信小游戏、QQ玩一玩、AssetsManager的稳定性。

iOS/Android 原生打包
在这次更新发布的 Egret Launcher 中,我们在发布设置中整合了iOS 与 Android 平台的发布设置。
 
自2014年底起,白鹭引擎推出的2.0 版本便已经支持开发者将游戏打包为 iOS / Android App 发布到原生平台中,除此之外,2017年我们又推出了微端解决方案。在这次更新中,我们将 iOS / Android Support 的底层内核切换为了微端内核,并添加了新的 NativeRenderer 机制,大幅提升了打包后的 App 的渲染性能。
 
之所以会有如此重大的提升,这是因为在之前的 iOS / Android Support 中,原生内核虽然提供了优化后的 HTML5 Canvas2D / WebGL 渲染接口,但是核心渲染驱动仍然是由 JavaScript 逻辑执行的,在新推出的 NativeRenderer 中,渲染驱动逻辑从 JavaScript 端迁移到了 Native C++ 端,这样做会大幅降低 JavaScript 引擎的负担,特别是在所有的 iOS 设备以及低端 Android 设备中表现极其明显。
 
需要注意的是,由于在 iOS / Android 上的渲染驱动迁移到了 Native 端,开发者不再能够通过 Hack 引擎的 JavaScript 代码的方式去修改打包后的渲染行为。这相当于我们牺牲了一定的灵活性换来了更高的性能,如果开发者希望保留这些灵活性,您也可以强制关闭 NativeRenderer ,仍然使用之前机制。

NativeRenderer 已经在数个正式发布的产品中得到了使用,除了实际产品验证之外,NativeRenderer 也通过白鹭自研的内部自动化测试系统中进行了200余个测试用例的测试,目前绝大部分测试用例均已通过。
在尚未通过的测试用例中,以下图为例,我们可以看出,iOS 打包无论使用旧的 JavaScriptRenderer还是新的NativeRenderer ,发光滤镜、颜色变换滤镜和模糊滤镜的渲染结果均完全一致,但是投影滤镜仍然存在一些肉眼较难发现的问题。这些问题我们会逐步解决,如果您在使用中发现了问题,也欢迎您贡献测试用例给官方。
 
NativeRenderer 需要白鹭引擎 5.1.5 以上的版本才可以使用。

除了 NativeRenderer之外,本次更新还带来了如下内容:

2D 渲染 - JavaScript

AssetsManager

QQ 玩一玩



新闻来源:白鹭引擎 5.1.6 优化打包 iOS/Android App 的运行性能