开发交互式3D Web应用程序,推荐使用哪个引擎?
我知道WebGL不久的将来(1-2年内)将成为所有浏览器的标准。
我担心如果投入时间到Unity等专有游戏引擎中,一旦无需插件的开源3D引擎出现(如WebGL、JavaScript for 3D),那么这些引擎就会变得不太好用。
这是一个很愚蠢的担忧吗?我应该从Unity开始(它的演示和工具非常震撼)。
开发交互式3D Web应用程序,推荐使用哪个引擎?
我知道WebGL不久的将来(1-2年内)将成为所有浏览器的标准。
我担心如果投入时间到Unity等专有游戏引擎中,一旦无需插件的开源3D引擎出现(如WebGL、JavaScript for 3D),那么这些引擎就会变得不太好用。
这是一个很愚蠢的担忧吗?我应该从Unity开始(它的演示和工具非常震撼)。
WebGL不是一个注定会失败的技术。像它是个失败品一样说话只能显示这些人的无知。
话虽如此,如果你刚开始学习,应该探索你的选项。如果你想让更多人看到而不仅仅是Windows用户,请远离专有解决方案。微软的主导地位已经不像人们想象的那么大了。得益于他们荒谬的编码方式,IE的受欢迎程度正在下降。
在所有平台上运行,使用开放标准。
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引擎。这是我正在考虑做的事情...
WebGL有机会成功,因为它不是中间件。很多人应该还记得插件常常带来的性能和安全问题。由于WebGL是原生的,并且将默认存在于值得使用的所有浏览器中,它的市场渗透率是自动的。它所需要的只是一些好的内容,许多公司会使用。
此外,nVIDIA、AMD、Intel、Mozilla、Opera和Apple(Safari)等公司都支持它。这足以证明它将会有所发展。
若要查看本文和相关链接,请前往我的论坛阅读。其中包含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 的优点
WebGL 的缺点
我是原始问题的创建者。
更新:我现在完全专注于Unity3d,因为他们宣布将添加Flash Player 11的导出选项。是的,他们可能不包括物理学,但现在一切都很模糊。没有什么是确定的。Unity只是带来了使游戏制作更容易的一切,或者至少他们这样宣传。我会找出答案的。
终于找到答案了。
自从我两年前提出这个问题以来……我一直在等待并观察着日益增长的flash3d。
无论如何,unity3d刚刚发布了他们的flash 11导出功能的预览版。
甚至物理引擎和所有在unity3d上运行的东西都可以在flash上运行,显然是可行的。
http://blogs.unity3d.com/2011/09/01/unity-and-flash-a-sneak-peek/
WebGL已经包含在最新版本的Chrome和Firefox中。
如果您还没有被WebGL所吸引,可以在Firefox的夜间版本中启用WebGL并访问此网页:http://www.iquilezles.org/apps/shadertoy/
以下是在Firefox中启用WebGL的方法:http://blog.vlad1.com/2009/09/18/webgl-in-firefox-nightly-builds/
我会选择WebGL,并在Papervision或Sandy 3D中备用Flash。