从Native到Web(五), emscripten学习笔记: 初体验

在《传统3D游戏引擎的Web化》中, 当时我还说emscripten不够成熟, 可是短短几个月它就有了很大的进步, 可用性甚至超过了flascc!

在GDC2013上, Unreal发布了基于emscripten的移植Demo, 据说只用了4天时间, 足以看出这个移植过程的平滑

floh前几天发布了一个PPT: 《C++ on the Web: Run your big 3D game in the browser》, 里面提到了他们把游戏移植到网页上所做的各种尝试

主要提到了三种技术: Google NaCl, Adobe flascc, Mozilla emscripten. 到最后还是选择了emscripten, 这里有一些他的Demo: http://www.flohofwoe.net/demos.html

在他之前的Blog中也有提到各个方案的问题:

  • NaCl: 仍然没有开放(必须是商店中的应用), 除Chrome外的浏览器不支持. 当然, 他的技术限制相对来说小一些, 性能也比较好
  • flascc: 编译/链接效率巨低, 过程中占内存巨大. 运行效率不能让人满意. 目前来说, 优势也就是装机率高
  • emscripten: IE支持是个问题. 线程支持也是个问题. API支持度比较好, 运行效率可以达到3D游戏的要求, 不限浏览器, 支持HTML5+WebGL即可

目前主要的问题是IE对于WebGL的支持, 但是IE11已经对WebGL开始实验性的支持了, 从这一点来说, 这个方案还是一种不错的预研选择

环境搭建的话, 跟NaCl比较像, 因为他们实现的思路说到底也都是托LLVM的福. 参考: Using Emscripten from Visual Studio 2010

从代码来看, 跟Native没什么两样, 所以只需要注意下平台相差的编码就可以了

floh的demo运行效果(需要FireFox或者Chrome27以上版本):

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏IT技术精选文摘

高并发大容量NoSQL解决方案探索

1593
来自专栏程序员同行者

运维与自动化运维发展概括

5824
来自专栏程序员的知识天地

为何Node.js 能成为 Web 应用开发最佳选择?【强推理由】

一项颠覆性的技术进入技术市场总会带来一阵震惊,但随之而来往往是被放弃。然而,Node.js 当然不是这样的情况,它是一个开源的、跨平台的基于 Chrome 的 ...

1341
来自专栏哲学驱动设计

福利到!Rafy(原OEA)领域实体框架 2.22.2067 发布!

距离“上次框架完整发布”已经过去了一年半了,应群中的朋友要求,决定在国庆放假之际,把最新的框架发布出来,并把帮助文档整理出来,这样可以方便大家快速上手。 081...

22010
来自专栏阮一峰的网络日志

软件架构入门

软件架构(software architecture)就是软件的基本结构。 合适的架构是软件成功的最重要因素之一。大型软件公司通常有专门的架构师职位(archi...

2884
来自专栏知晓程序

开发者注意了!小程序获取「用户数据」方式更新,快去升级吧

可喜的是,微信在昨天(7 月 26 日)晚上的小程序更新中,终于对小程序「查户口」的行为说不了。此外,还升级了小程序获取 UnionID 的方式,大大提升了小程...

761
来自专栏服务端技术杂谈

初页CTO丁乐:分布式架构

初页现有架构 首先介绍一下初页目前的架构。它主要由计算服务和后面的运维与运营系统组成。 ? 计算服务由passport、works(作品服务)、social、m...

2864
来自专栏云计算

基于Karma构建微服务

“微服务”和“微服务架构”在开发社者区中是一个热门话题,但实际中的微服务例子仍然很少。通过简要介绍一下我们在Karma上构建的后端API可会对现在的情况有所帮助...

1105
来自专栏微服务

关于大型网站技术演进的思考(一)--存储的瓶颈(1)

前不久公司请来了位互联网界的技术大牛跟我们做了一次大型网站架构的培训,两天12个小时信息量非常大,知识的广度和难度也非常大,培训完后我很难完整理出全部听到的知识...

40115
来自专栏EAWorld

以服务网格实现微服务的高级Traffic-shadowing模式

作者:Christian Posta 译者:月满西楼 原题:Advanced Traffic-shadowing Patterns for Microser...

3163

扫码关注云+社区