传统3D游戏引擎的Web化

最近floh大神的blog又复活了, 现在n3的主要发展发向是web化

其实也是跟PC和主机平台的衰落有关, 各种移动设备正在逐渐取代PC的地位

而做为一个3D游戏引擎, 想要适应这个潮流却不是很容易

先不考虑其它, 光技术上面临的问题就很棘手:

  • C++目前无法直接用于web开发, 必然要面临老代码转换/移植的问题
  • 3D硬件加速的渲染在浏览器这边, 没有一个统一的标准
  • 多线程, web浏览器里对于线程的使用有很多限制
  • 输入设备, 比如右键的功能很多时候会跟浏览器冲突
  • IO, 通过网络传输的资源在传输, 访问权限等上也有限制
  • 性能问题, 脚本语言的速度虽说已经很快的, 但还是没有Native快

 就目前来说, C++的3D引擎勉强能用的解决方案大概有5种:

  • Microsoft IE ActiveX
    • 平台支持: IE(Win). 本身设计有问题, 不被其它平台支持
    • 优势: 相当于把现有的引擎换个窗口, 代码改动最小, 性能几乎没损失
    • 缺点: 需要安装插件, 没认证过的会被大多数安全软件拦截, 不如直接做成微端
    • 代表: Unity3D, 山寨(或叫自研)3D引擎开发的游戏
  • Sun Java JNI
    • 平台支持: Win/Mac/Linux. 不过需要每个平台都做一个Native版本
    • 优势: 浏览器兼容性好, 相当于一个通用的ActiveX
    • 缺点: 操作系统跨平台需要额外工作. 需要安装Java, 并且开启浏览器支持
    • 代表: Drakensang Online
  • Adobe FlasCC
    • 平台支持: Win/Mac/Linux. 需要Flash11+, 把C++编译成AS能用的库
    • 优势: 平台兼容性目前最好
    • 缺点: 渲染器需要重写, 而且是Adobe自己的一套标准. 另外, 想要性能高? 买license!
    • 代表: Epic Citadel(只是demo而已)
  • Google Native Client
    • 平台支持: Chrome(Win/Mac/Linux). 浏览器限制住了...
    • 优势: 与Native的性能差距不大, 而且IDE与Debugger目前也有了(VS2010)
    • 缺点: 虽然看上去很完美, 但不被其它势力所支持
    • 代表: OGRE, Bullet, Unity3D...Google Web Store上有不少移植好的游戏了
  • Mozilla Emscripten
    • 平台支持: FireFox/Chrome(Win/Mac/Linux).  把C++编译成JS
    • 优势: HTML5符合未来的发展趋势
    • 缺点: WebGL不被Microsoft支持. 性能目前损失比较大, SDK也不是非常成熟
    • 代表: BananaBread

值得注意的是, Adobe/Google/Mozilla这些都是基于LLVM搞的, 看来这也是一个好玩的玩意儿

暂时总结这么多, 很多观点是具有时效性的, 明年说不定就大变样了

做为游戏开发者, 还是要做好准备, 免得out了, HOHO~

注: 本文仅限于C++开发的3D游戏引擎, 不包括各种XNA/Sliverlight的3D游戏或是Flash/HTML5的2D游戏

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏PPV课数据科学社区

【学习】百万级别数据,数据库Mysql,Mongodb,Hbase如何选择?

情况说明: 现在需要做一个数据存储,500w左右的数据,日后每天大约产生5w条左右的数据。想把这些数据存储起来,供日后的数据分析用?使用上面说的三种数据库中的哪...

53080
来自专栏FreeBuf

经验分享 | 如何做好基础安全设备运维

一 基础安全设备包含哪些? 下图是一个典型的企业业务网络架构包含常见的安全设备。 ? 基础安全设备包含构造业务安全防御系统的常用安全设备,能够搭建深度防御体系的...

53790
来自专栏北京马哥教育

面向容器技术资源调度关键技术对比

摘要:本文以资源分配理念:拍卖、预算、抢占出发,引出Borg、Omega、Mesos、Kubernetes架构、数据、API的特点比较。然后梳理资源共享各种不同...

45670
来自专栏顶级程序员

从GITLAB误删除数据库想到的

昨天,Gitlab.com发生了一个大事,某同学误删了数据库,这个事看似是个低级错误,不过,因为Gitlab把整个过程的细节都全部暴露出来了,所以,可以看到很...

41570
来自专栏无原型不设计

如何制作一个完美的错误提示信息

以下内容由Mockplus团队翻译整理,仅供学习交流,Mockplus是更快更简单的原型设计工具。 每个系统都会出现暂停工作的时候,它可能是用户的错误操作或...

31840
来自专栏编程之旅

小程序开发总结

很久很久很久没有更新了,最近几个月因为房子交房,生活上是一片忙碌,工作上的事其实还好,没有分去很多精力,主要是在生活上的事情牵扯了太多了精力,于是乎把每周一更博...

34860
来自专栏IT技术精选文摘

基于MySQL的分布式数据库TDSQL十年锻造经验分享

22330
来自专栏腾讯云技术沙龙

简单5步,从0开始搭建你的第一款小程序

以小程序开发实战为基准点,围绕小程序云上解决方案,serverless后端架构,小游戏底层设计和直播、电商小程序的开发实战五大主题内容。

11.2K710
来自专栏罗超频道

Chrome支持Android应用,浏览器正在成为操作系统?

Google 日前已决定将ARC开放给所有开发者,并且ARC在Chrome OS和Chrome浏览器中均可以运行。ARC全称是App Runtime for C...

34440
来自专栏技术翻译

如何构建可扩展的应用程序

所以你有一个很棒的主意。而且你有来自大学的朋友可以帮助你开始构建你的应用程序。您也可以从早期采用者那里获得很好的反馈。所以你做任何人都会做的事。启动你的应用!

24120

扫码关注云+社区

领取腾讯云代金券