专栏首页逍遥剑客的游戏开发从Native到Web(五), emscripten学习笔记: 初体验

从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 条评论
登录 后参与评论

相关文章

  • UE4学习笔记: Functions

    逍遥剑客
  • GDC2016: Animating With Math

    逍遥剑客
  • 把C++/CLI委托传入本地代码

    逍遥剑客
  • 看《纽约时报》如何用数据算法打造新一代推荐系统!

    通过精炼读者获取这些内容的途径,即在移动应用和网站上基于读者喜好调整文章布局,能够帮助读者找到与他们相关的内容,比如在正确的时间推送读者感兴趣的内容、重大事件的...

    华章科技
  • 《纽约时报》如何打造新一代推荐系统

    用户1737318
  • Hdu 1025

    dp二分题目,WA点多多,下面一一阐述。 #include<cstdio> #include<cstring> #include<iostream> using...

    triplebee
  • 使用InteIIiJ IDEA开发Java web 项目

    IntelliJ IDEA是一款非常强大的集成开发环境,基本上可以做任何事情,它的强大大大降低了我们的工作量,提高了工作效率。那么它如何开发Java web呢?...

    夜雨飘零
  • 解决jupyter运行pyqt代码内核重启的问题

    在jupyter notebook或者是 Qtconsole下编译运行一个简单的pyqt程序,总是报错:

    砸漏
  • QCon精彩压轴演讲:使用微服务架构改造企业核心业务系统的实践

    明天是2015QCon|北京站的最后一天,来自ThoughtWorks西安办公室的高级咨询师 - 王磊将为您带来精彩压轴分享:《使用微服务架构改造企业核心业务系...

    ThoughtWorks
  • 受限玻尔兹曼机(RBM)原理总结

        在前面我们讲到了深度学习的两类神经网络模型的原理,第一类是前向的神经网络,即DNN和CNN。第二类是有反馈的神经网络,即RNN和LSTM。今天我们就总结...

    刘建平Pinard

扫码关注云+社区

领取腾讯云代金券