查看文章 |
最近不断听说Web 3D Game,这Web 2D大规模游戏还没出来,大家就抢着推3D的概念了。 Web 3D 我能想到的几种实现方案:JS,Flash,SilverLight,ShockWave,Java Applet,Java Web Start,自主ActiveX。 Web 3D Game我想有三个主要因素:3D运行环境的普及,3D的性能,3D资源的流化。 JS:可以使用DIV来绘制像素,因此一切皆有可能,但是性能也就那样了,因此绝对不会出现JS的3D游戏。 Flash:很多人对这个期望很大,普及率高,有几个3D引擎,Adobe在Flash Player 10中也处处出现3D字样,还有号称Flash 3D的游戏 gettheclass,Flash普及率高是真的,至于效率,尤其虚拟机效率和图形绘制效率相对于Java和.NET差距还是很大的,Flash Player 10其实也就是引入了硬件加速而已,最受益的可能要属一些Flash的2D图形应用,比如Adobe的Web Photoshop。至于Flash 3D,Flash Player 11能支持也就很好了,Adobe可能会把Shockwave融入到Flash中,但是效果如何还不敢保证。至于gettheclass这个伪3d,大量使用了视频和局部小3D模型,距离真正的3D还差的很远很远。试想一个只依靠CPU的3D软件能算到什么效果?而且还隔着一层虚拟机,充其量也就是Quake2的水平。 补充,已经有类Quake的3D FPS游戏了,画面尺寸很小,基于某Flash 3D引擎的。 SilverLight:虽然还很幼齿,但是有个好爹,还是很有前途。想普及,很容易,基于.NET的虚拟机,性能,第三方类库的支持都很不错,只要微软想在Web 3D方面有所斩获,肯定是最佳选择。而且这次还是跨平台的,开发者很难拒绝的。 补充:最近看SilverLight开发人员的日志有感,微软认为浏览器就不是跑3D引用的,SilverLight要跨平台,其它平台不支持D3D,所以我们不会为SilverLight开发支持赢家加速的3D引擎层。微软还是一如既往的令人失望呀。 Java Applet:老矣老矣,但是有个runescape充门面,也是大家唯一看到的成功的Web 3D的案例,20w同时在线,3D地形,人物,换装,是一个很成功的例子。只可惜中文支持差,JRE普及率不够,在中国能否有类似的模仿品并且成功还很难说,我个人是非常愿意尝试的。国外还有几个画面精美的Java 3D Applet Game,但是流化做得不好,首次下载量20~30M,已经赶上一个小3D游戏了。如果当初SUN不阻止微软对Java的改造,Java Applet就可以很好的支持D3D了(MSJava当时对DX支持就非常好),今天恐怕3D WEB Game早就普及了,小气的SUN呀,微软咋没收了他呢。 补充:runescape最近出了高清版,画面效果好些了。其实让我现在来选择,如果需要WEB 3D,Java应该是首选。 Java Web Start:本质上,这个跟Java Applet是类似的。取决于JRE,但是开发时比Applet更接近本地应用,对于开发人员更加有好。Sun最近推出了Comsumer JRE,在WEB Applet/APP方面有所改善。 自主ActiveX:当年的可乐吧就是一个例子,估计资源的流化是一个大难题,尤其国内很多公司,绝对不能容忍runescape这样的画质,因此Web 3D只能存在于想象中,无法折中的实现。最近开始吹的Actiga,应该也是自主ActiveX,到底地址ActiveX这个方案如何,需要先行者来试水了 |

