白鹭时代联合创始人马鉴Egret整合W

Web技术的创新永不停歇。6月18日,由谷歌、微软、Mozilla以及Webkit联合开发的WebAssembly终于面向所有开发者开放。白鹭时代联合创始人马鉴就WebAssembly和白鹭技术研发线的整合思路做一些分享,以下文章根据马鉴陈述整理而成。

什么是WebAssembly?

WebAssembly的宗旨其实很容易理解:“一种全新的跨浏览器Web中间表示层安全代码,为未来浏览器带来一种可执行的标准二进制数据格式,使得越来越多的开发者,不仅仅是JavaScript开发者,甚至是Rust,C#,Go语言的开发者,借助统一的编译机制,预先将这些语言开发的逻辑编译为浏览器可以执行的二进制代码格式,以此提高Web内容的性能和表现能力,同时为更多语言的开发者提供一种为Web开发内容的有效途径。”

为何要与WebAssembly项目整合?

WebAssembly项目的面世让白鹭Egret整个研发团队欣喜异常,Egret看到WebAssembly项目将为未来Web游戏和应用带来巨大提升,以及这个跨语言和平台的项目和EgretRuntime整合所带来的广阔前景。这里,我将通过简单易懂的方式来解释,白鹭是如何将WebAssembly项目带入一个实用场景的宏观路线图。在开启这个路线图之前,请先容许我简单介绍为何引入这个路线图。

年初,Egret决定用TypeScript语言(JavaScript严格超集,遵循下一代ES6标准,微软开源项目)编写一款与众不同的HTML5Web游戏引擎,这个产品的初衷就是允许开发者能够通过TypeScript语言,去编写更大型的,更复杂的,更具交互体验的HTML5移动游戏。选择TypeScript语言作为EgretEngine开发语言,比年3月谷歌和微软联合决定AngularJS2.0项目使用TypeScript早了15个月。

年9月Egret在国内推出EgretRuntime,这个产品设计就是为了解决HTML5现阶段的三个重要问题——性能、适配和访问系统能力。EgertRuntime全部针对EgretEngine的TS/JSAPI在Runtime层用C++/OpenGLES做了逐一映射,这就使得Egret开发者开发的HTML5游戏,可以借助EgretRuntime达到跟Native游戏和应用一样的体验和性能。

最早,EgretRuntime在JS对象的传输和处理上定制了开源的项目SpiderMonkey。但是,SpiderMonkey实在太慢了,我们又在一个月内把这部分的机制迁移到了一个由Egret团队深度定制的V8内核上。几个月后,EgretRuntime的整体大小是2.6MB(包括一个深层Hack的V8引擎),初始化Launcher大小为10KB.而目前EgretRuntime的安装激活量,截止到年5月是1.23亿部移动设备,以目前的增长速度,EgretRuntime应该可以通过合作伙伴的超级App和操作系统预装超过4亿台设备。

年5月Egret又针对移动领域提供了一套完全基于HTML5标准的互动移动应用框架Lark。这个框架将可以满足非游戏行业的Web前端开发者和设计师更快更高效地创作属于他们自己的WebApp,同时又可以借助EgretRuntime获得更强的系统访问能力和设备适配能力。

如何与WebAssembly项目整合?

针对以上的几款引擎框架运行时产品(Egret工作流产品均未列在此),白鹭决定把未来版本的EgretEngine和Runtime与WebAssembly很好地整合在一起,计划如下:

1.Egret未来将为EgretWing等开发工具提供扩展支持,允许开发者编写的TypeScript,JavaScirpt,甚至C#,Go,Lua语言预编译为WebAssembly的wasm格式,并针对wasm的二进制格式和WebP的素材资源打包为一个安全加密的runtime项目文件压缩包。这样,既解决了HTML5游戏的性能问题,又解决了HTML5游戏凸显的安全问题。

2.下一代的EgretRuntime将会考虑把定制化的V8换为WebAssembly的运行时,EgretRuntime将直接借助WebAssembly提供面向二进制格式码的执行能力,这将可以大幅度降低EgretRuntime的体积,减少JS映射到C的中间层数据转换的消耗,初步预计这样的架构改动,可以再次提升HTML5移动游戏的表现力和性能,使得HTML5移动游戏体验完全与编译型语言编写的Native应用相同

3.EgretRuntime与WebAssembly项目的集成,将为更多语言的开发者提供一个快速通过EgretWing开发调试与EgretRuntime运行的高效巡回工作流。

Web技术的世界核心精神是包容与开放,Egret在这里毫无保留的分享WebAssembly与EgretRuntime的整合路线图。希望更多的开发者能够投身Web技术开发领域,因为这里的创新永无止境。

联系我们开发者技术交流社区:bbs.egret.







































哪里治白癜风最好
北京治疗白癜风专业医院



转载请注明:http://www.guyukameng.com/php/1017.html

  • 上一篇文章:
  •   
  • 下一篇文章: