答复: Java游戏现状

所谓客户端的安装根本不是什么障碍。现在的PC游戏动辄几个GB,光盘里集成个60MB的JRE有什么了不起的?

撇开手机小游戏以及网页游戏这些小品不谈(在这方面跨平台要求比游戏本身的质量要求更高,Java/flash几乎是唯一的选择),在正规的电玩开发领域(PC游戏以及便携游戏机/次世代主机平台),Java没什么指望,以后也难以有什么指望。

原因谁都想得出来:性能问题。你说现在的计算机已经很快了,性能不再是主要问题,而要让位于成本?你是没玩过电玩吧?去买张Crysis的DVD装一下感受感受,再看看游戏测评以及发烧友团体如何使用液氮也要榨出CPU的最后一点性能;看看最尖端的图形加速卡双卡SLI是如何在游戏软件的重压下喘气的,你就知道性能问题在游戏开发中有多重要。玩FPS的起码要求是帧率60FPS,且不谈隔着一层Java虚拟机能不能有如此的性能,光是垃圾收集的时候卡那么一下就能让玩家摔键盘。

Java3D?那只是个玩具而已。API写得很漂亮,封装的很好,问题是封装得实在太好了,除了渲染几个圆锥体之外啥都做不了,能写出来的东西全都一个模样。呵呵,游戏程序员不要你那种“封装”,游戏程序员需要的是直接控制显卡的渲染管线。

Java做游戏能帮助Java程序员进入游戏业?不好意思,游戏开发的门槛非常高,相比之下语言本身只是一个非常小的障碍而已。基于OpenGL和DirectX的开发与Web/企业系统相比完全是另外一套哲学,更别提高得多的数学理论门槛。

console游戏可以在主机间跨平台?痴人说梦吧。且不说各主机之间截然不同的架构和硬件配置不是靠什么JVM可以解决的—— NDS有触摸屏、PS3有six axis,我问你跨平台的Java能不能让电冰箱来洗衣服?——跨平台了SONY entertainment、Nintendo和MS的游戏部门凭什么吃饭,合并算了,Nvidia和ATI/AMD也可以世界大同了。要知道,驱动console游戏的重要动力是独占游戏——各个主机的Killer App,没有HALO 3、Mario Galaxy或者Gran Turismo 5,你难以说服玩家掏钱买哪台console. 所以,技术上不可能跨平台,也没有需求去跨平台。也许EA这种游戏界的KFC经常发布跨平台游戏——不过请注意,这里的“跨平台”和类似FireFox能在Linux也能在Windows上面跑完全是两码事。Console跨平台游戏往往是严重缩水的,有时候根本就是不同平台上的两个游戏采用同一个题目。

说穿了,不同硬件平台的多样性才是各厂商赚钱的根本;玩家也不会需要买回一张游戏光盘可以在各种主机间运行,玩家需要的是在不同主机上多样的游戏体验!

最后提一下JOGL。JOGL根本就是Java平台下使用native interface对C函数的直接映射,使用JOGL与直接使用C++没什么大区别,门槛还是在于OpenGL本身。

你可能感兴趣的:(java,游戏,虚拟机,linux,网页游戏)