白鹭时代联合创始人马鉴:Egret整合WebAssembly技术路线图
Posted 白鹭引擎
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了白鹭时代联合创始人马鉴:Egret整合WebAssembly技术路线图相关的知识,希望对你有一定的参考价值。
什么是WebAssembly?
WebAssembly的宗旨其实很容易理解:“一种全新的跨浏览器Web中间表示层安全代码,为未来浏览器带来一种可执行的标准二进制数据格式,使得越来越多的开发者,不仅仅是javascript开发者,甚至是Rust,C#,Go语言的开发者,借助统一的编译机制,预先将这些语言开发的逻辑编译为浏览器可以执行的二进制代码格式,以此提高Web内容的性能和表现能力,同时为更多语言的开发者提供一种为Web开发内容的有效途径。”
为何要与WebAssembly项目整合?
WebAssembly项目的面世让白鹭Egret整个研发团队欣喜异常,Egret看到WebAssembly项目将为未来Web游戏和应用带来巨大提升,以及这个跨语言和平台的项目和Egret Runtime整合所带来的广阔前景。这里,我将通过简单易懂的方式来解释,白鹭是如何将WebAssembly项目带入一个实用场景的宏观路线图。在开启这个路线图之前,请先容许我简单介绍为何引入这个路线图。
2014年初,Egret决定用TypeScript语言(JavaScript严格超集,遵循下一代ES6标准,微软开源项目)编写一款与众不同的html5 Web游戏引擎,这个产品的初衷就是允许开发者能够通过TypeScript语言,去编写更大型的,更复杂的,更具交互体验的HTML5移动游戏。选择TypeScript语言作为Egret Engine开发语言,比2015年3月谷歌和微软联合决定AngularJS2.0项目使用TypeScript早了15个月。
2014年9月Egret在国内推出Egret Runtime,这个产品设计就是为了解决HTML5现阶段的三个重要问题——性能、适配和访问系统能力。Egert Runtime全部针对Egret Engine的TS/JS API在Runtime层用C++/OpenGLES做了逐一映射,这就使得Egret开发者开发的HTML5游戏,可以借助Egret Runtime达到跟Native游戏和应用一样的体验和性能。
最早,Egret Runtime在JS对象的传输和处理上定制了开源的项目SpiderMonkey。但是,SpiderMonkey实在太慢了,我们又在一个月内把这部分的机制迁移到了一个由Egret团队深度定制的V8内核上。几个月后,Egret Runtime的整体大小是2.6MB(包括一个深层Hack的V8引擎),初始化Launcher大小为10KB. 而目前Egret Runtime的安装激活量,截止到2015年5月是1.23亿部移动设备,以目前的增长速度,Egret Runtime应该可以通过合作伙伴的超级App和操作系统预装超过4亿台设备。
2015年5月 Egret又针对移动领域提供了一套完全基于HTML5标准的互动移动应用框架Lark。这个框架将可以满足非游戏行业的Web前端开发者和设计师更快更高效地创作属于他们自己的Web App,同时又可以借助Egret Runtime获得更强的系统访问能力和设备适配能力。
如何与WebAssembly项目整合?
针对以上的几款引擎框架运行时产品(Egret工作流产品均未列在此),白鹭决定把未来版本的Egret Engine和Runtime与WebAssembly很好地整合在一起,计划如下:
1. Egret未来将为Egret Wing等开发工具提供扩展支持,允许开发者编写的TypeScript,JavaScirpt,甚至C#,Go,Lua语言预编译为WebAssembly的wasm格式,并针对wasm的二进制格式和WebP的素材资源打包为一个安全加密的runtime项目文件压缩包。这样,既解决了HTML5游戏的性能问题,又解决了HTML5游戏凸显的安全问题。
2. 下一代的Egret Runtime将会考虑把定制化的V8换为WebAssembly的运行时,EgretRuntime将直接借助WebAssembly提供面向二进制格式码的执行能力,这将可以大幅度降低Egret Runtime的体积,减少JS映射到C的中间层数据转换的消耗,初步预计这样的架构改动,可以再次提升HTML5移动游戏的表现力和性能,使得HTML5移动游戏体验完全与编译型语言编写的Native应用相同
3. Egret Runtime与WebAssembly项目的集成,将为更多语言的开发者提供一个快速通过Egret Wing开发调试与Egret Runtime运行的高效巡回工作流。
Web技术的世界核心精神是包容与开放,Egret在这里毫无保留的分享WebAssembly与Egret Runtime的整合路线图。希望更多的开发者能够投身Web技术开发领域,因为这里的创新永无止境。
以上是关于白鹭时代联合创始人马鉴:Egret整合WebAssembly技术路线图的主要内容,如果未能解决你的问题,请参考以下文章