Unity、Torque3D、Google O3D、WebGL,该选择哪一个?

34

开发交互式3D Web应用程序,推荐使用哪个引擎?

我知道WebGL不久的将来(1-2年内)将成为所有浏览器的标准。

我担心如果投入时间到Unity等专有游戏引擎中,一旦无需插件的开源3D引擎出现(如WebGL、JavaScript for 3D),那么这些引擎就会变得不太好用。

这是一个很愚蠢的担忧吗?我应该从Unity开始(它的演示和工具非常震撼)。


1
真遗憾这个问题被关闭了。堆栈溢出有时真的很奇怪。不管怎样,看起来我们终于要在WebGL方面得到一些标准化了,因为IE11终于至少部分支持它。 - user151496
现在是2019年,Unity允许轻松导出WebGL。 - Muhammad Faizan Khan
17个回答

21

WebGL不是一个注定会失败的技术。像它是个失败品一样说话只能显示这些人的无知。

话虽如此,如果你刚开始学习,应该探索你的选项。如果你想让更多人看到而不仅仅是Windows用户,请远离专有解决方案。微软的主导地位已经不像人们想象的那么大了。得益于他们荒谬的编码方式,IE的受欢迎程度正在下降。

在所有平台上运行,使用开放标准。


19

Unity存在三个巨大的问题。首先,他们在API中随意封装类。这意味着如果你不想按照他们的方式进行操作,就无法覆盖他们的功能。其次,他们只公开了API最外层的内容。(例如,他们公开了自己的物理系统,但没有公开其基于的PhysX API。)这意味着你无法剥离他们的API层来构建自己的功能。最后,如果你想要源代码,以便以他们告诉你不同的方式进行操作,它将花费“六位数”的费用,这是我与Unity销售代表交谈时听到的。

一位智者曾经说过,工具使简单的事情变得容易并使复杂的事情成为可能。而玩具则使简单的事情变得容易,但让复杂的事情变得不可能。根据这个标准,Unity是一个非常好的玩具,但不止于此。

还要注意,任何需要用户安装插件的技术都不能在学校、图书馆或其他公共Windows系统中使用,因为用户没有管理员权限。在今年的GDC上,Unity发出了声音,表示将推出一款可以部署到Flash的版本,以解决这个问题。但这个产品还有很多未解答的问题,包括性能(Flash VM太慢)和物理(Flash没有PhysX API)。

WebGL有一个巨大的绊脚石,那就是微软。微软讨厌OpenGL,因为它与Direct3D竞争。在IE中支持它还需要很长时间,这可能是因为,在市场份额上,IE仍然占30%~60%不等。我们最好的希望是微软发布一个“WebDX”,然后一些有进取心的JavaScript场景图制造商构建一个可运行于WebDX上的层。

O3D已死。这就是事实。据我在今年的GDC上与谷歌人员交谈得知,Google对此并没有投入多少人力。他们正在重新聚焦于WebGL,并希望其他人编写场景图。如果你想要走这条路线,Copperlicht看起来非常不错。

Torque3D的声誉是相当不稳定的,而且需要插件才能在Web浏览器中运行。

Papervision到目前为止的性能真的很低。我们说的只是一小部分扁平着色的多边形。新的Flash 3D加速可能有所帮助。就我个人而言,他们的功能也让我感到失望,但你可以自己查看他们的API。

所以对于你的问题,现在真的没有什么好的答案,抱歉。除了Microsoft的问题,这是一个大问题,我会把我的钱押在WebGL上,

编辑:我已经开始研究Away3D 4,到目前为止印象非常不错。遗憾的是,他们的Webgl / Javascript版本落后了两个版本,但你可以始终在Javascript API中包装他们的Flash引擎。这是我正在考虑做的事情...


非常好的回答...我现在会购买Away3d书并开始学习...大众什么时候开始支持Flash 11? - KJW
3
似乎地狱里的寒冷日子已经到来;) - Ray Hulha
确实如此。这对我来说是一个相当大的震惊,也表明了微软在互联网领域的地位已经变得非常薄弱。 - user430788
我也会说Unity在过去的一年半到两年中有了很大的改进。他们仍然存在许多方面上的封闭问题,但在脚本编写方面比UDK更好。现在他们已经有了导出到Flash的功能,并正在开发导出WebGL的功能。 - user430788
UE4现在以每月仅19美元的价格为您提供源代码访问权限,并支持WebGL。 - Frisbetarian-Support Palestine
我同意。他们仍然封锁了一些我希望他们不会的类,但是多年来他们已经解决了很多开发问题。 - user430788

7

WebGL有机会成功,因为它不是中间件。很多人应该还记得插件常常带来的性能和安全问题。由于WebGL是原生的,并且将默认存在于值得使用的所有浏览器中,它的市场渗透率是自动的。它所需要的只是一些好的内容,许多公司会使用。

此外,nVIDIA、AMD、Intel、Mozilla、Opera和Apple(Safari)等公司都支持它。这足以证明它将会有所发展。


是的,但IE会自己推出专有解决方案.....考虑到IE仍然占据着大量的市场份额,如果只依靠"其他人",市场渗透将会受到严重限制。 - bohohasdhfasdf

4
如果你的3D Web应用是今年或明年发布,选择Unity3D。它提供了一个快速高质量的开发环境,很少有引擎能与之竞争。通过选择Mono作为脚本语言,它基本上成为了“选择自己的语言”。目前支持的开箱即用的语言是Boo、C#和JavaScript。
如果你需要Linux支持,请加入论坛并加入那些要求Linux支持的人。Unity似乎真正听取他们的用户对Unity3D应该添加什么的意见。当我一年前开始使用Unity时,他们没有一个基于Windows的编辑器。他们倾听了客户的意见,现在他们有了。Unity3.0将为播放器提供Android支持,而你知道,Android是基于Linux的,所以将Unity3D移植到桌面Linux版本也不远了。Unity最担心的是Linux版本的IDIC。Linux上的二进制文件不能保证在每个发行版上运行。
但是,如果你的3D Web应用是5年后才发布...到那时WebGL或Google O3D可能已经足够成熟来满足你的需求。但我不会抱有希望。WebGL只是VRML长期失败的下一次实现。15年前它很成功,但15年后不太可能再次成功。至于Google O3D,我玩过它。它可以做需要做的事情,但会出现意外的半秒钟锁定。我相信Google已经修复了这个问题。但是如果没有针对它的IDE,开发将会很慢。再加上必须使用JavaScript,你的应用程序就失去了CPU能提供的最大速度。更复杂的3D应用程序需要一种强类型语言来实现CPU可用的最大速度。
我没有玩过Torque3D,所以无法提供任何有根据的意见。

2
你为什么认为WebGL是新的VRML呢?VRML是一种静态场景描述语言,不仅在实现上缺乏,而且在视觉上也缺乏。WebGL是广受欢迎的OpenGL规范(实际上是“ES”)的网络端口。我看不出两者之间有任何关系,除了它们都试图以标准化的方式将3D带到网络中。 - Joachim Sauer
不要将VRML与WebGL进行比较,它们几乎没有任何共同点。 - Markus

1
据我所知,Chrome实现WebGL在Windows上使用ANGLE/DirectX。我认为隐藏源代码将成为一些开发者的问题。这些开发者可以使用Flash 11或Silverlight。我不认为X3D会被落下,因为有X3DOM和XML3D——不确定VRML是否会成功——也许它会被转换为XML。

1

1

若要查看本文和相关链接,请前往我的论坛阅读。其中包含10个以上的WebGL库链接。

我建议使用C3DL,目前我正在使用它来开发业余游戏。它的开发还处于早期阶段,但WebGL也是如此,并且在我看来也是领先的WebGL库。由于这项技术仍被认为是“测试版”而不是标准版,因此存在一些错误和问题。你可以用它做很多事情,而且它可以大大缩短开发时间。另外,“pqnb”,IE浏览器并不占据市场份额最高的位置。Firefox浏览器排名第一,其次是IE浏览器,Chrome浏览器紧随其后并且正在崛起。我预计到明年Chrome浏览器将超过Firefox和IE浏览器。此外,请注意DirectX只能在Windows系统上使用。因此,如果你想让更多人玩你的游戏,并制作一个基于浏览器的游戏,我建议使用WebGL,并在Firefox和Chrome上进行测试。主要是因为当你完成游戏时,它将成为标准并且完全功能。考虑到平均游戏的开发时间线等因素,这也是没有人真正关注的事情之一。他正在寻找哪个引擎去使用,因为这是一个基于浏览器的游戏,所以他应该已经有一些HTML CSS JS和XML的经验。WebGL是大多数Web开发人员可以轻松上手的唯一语言,因为它是基于JavaScript的。Flash需要你学习Actionscript,其他引擎也有各自的语言,我对它们没有任何经验,所以我不会在任何语言讨论上深入探讨。

WebGL 的优点

  1. 基于 Javascript,学习曲线快
  2. 无需插件,可以在浏览器中原生运行。由于不需要第三方插件,因此总体速度更快
  3. 它是 OpenGL,已经有数百个教程可供使用,如 NeHe 教程,这些教程可以轻松转换
  4. 有许多库可供选择:C3DL(推荐),Copperlicht,EnergizeGL,GLGE,SceneJS,SpiderGL 等等

WebGL 的缺点

  1. 它仍处于测试版阶段,一切都处于早期开发阶段。

1

我是原始问题的创建者。

更新:我现在完全专注于Unity3d,因为他们宣布将添加Flash Player 11的导出选项。是的,他们可能不包括物理学,但现在一切都很模糊。没有什么是确定的。Unity只是带来了使游戏制作更容易的一切,或者至少他们这样宣传。我会找出答案的。


1

终于找到答案了。

自从我两年前提出这个问题以来……我一直在等待并观察着日益增长的flash3d。

无论如何,unity3d刚刚发布了他们的flash 11导出功能的预览版。

甚至物理引擎和所有在unity3d上运行的东西都可以在flash上运行,显然是可行的。

http://blogs.unity3d.com/2011/09/01/unity-and-flash-a-sneak-peek/


1
是的,我自己也在玩它,它很有前途。但它距离完整的Unity功能还有很长的路要走。Unity仍然存在“封闭引擎”问题,这可能会让人感到沮丧。我正在从头开始用C#构建自己的字体引擎,因为他们的字体类没有暴露我需要的所有字体信息 :/ 我还将不得不编写自己的导航网格类,出于类似的原因。 - user430788

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接