论坛首页 Java企业应用论坛

Java游戏现状

浏览 74453 次
该帖已经被评为良好帖
作者 正文
   发表时间:2008-02-13  
Java做网页内嵌游戏还是不错的,比Flash强,可惜Sun那个精简版的jre插件就是拿不出来,jre的浏览器插件只要能小于1M,Java做网页游戏就能轻松盖过Flash。

普通PC端游戏Java肯定没戏,但网游服务器端Java还是胜任的。
0 请登录后投票
   发表时间:2008-02-13  
C3PO 写道
所谓客户端的安装根本不是什么障碍。现在的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本身。



还是有不少游戏是同时跨pc和家用机平台的,有些游戏适合跨平台,有些游戏不适合,不能以偏概全,诸如EA之类的游戏软件大厂,对于必须为不同的平台开发不同的版本已经颇有微词。我并不是说java要统治家用机市场,我只是说java在某些特定的情况下也可以在家用机市场分一杯羹。微软的xna(c#)已经做到了windows和xbox360之间的跨平台,所以技术上并不是不可能。当然这方面的主要障碍还是商业利益,所以我也说了实现的可能性确实比较小。

性能方面的问题,我还是希望你可以去看一下JMonkeyEngine的demo,当然这是一个免费的游戏引擎,所以不能与世界顶尖引擎相提并论,但是目前ncsoft已经在着手使用改进的JMonkeyEngine(商业版)来制作游戏,所以我猜java在性能方面的劣势还是可以忍受的。总的来说,考虑到游戏越写越大,游戏界逐渐使用更高级的(更慢的)语言是一个趋势,整个游戏都用汇编写需要太多的工资支出,当然你可以说这个更高级的语言不是java(其实我觉得以微软的强势,c#也挺有前途的),或者说现在的技术还没有达到让一个更高级的语言出现来代替c,但是纯粹以java的性能不及c来否定java游戏的前途的话,我觉得不太恰当。

最后举个例子,前几个月,我学了一下汇编,发现我写的汇编程序运行速度比用c语言写的程序还慢,原因是什么呢?因为相对于写编译器的人来说,我的编程水平太低。可问题就是,这个世界上并不是每个人都是编程高手,编程高手的工资也太贵了。
0 请登录后投票
   发表时间:2008-02-13  
明确一个概念,opengl本身是语言无关的,就是一大堆函数而已(就好象企业应用中的webservice一样),其底层用什么实现我也不太清楚,可能各个硬件厂商不同,但绝对不是只用c或者c++实现的。
0 请登录后投票
   发表时间:2008-02-13  
fight_bird 写道
Java做网页内嵌游戏还是不错的,比Flash强,可惜Sun那个精简版的jre插件就是拿不出来,jre的浏览器插件只要能小于1M,Java做网页游戏就能轻松盖过Flash。

普通PC端游戏Java肯定没戏,但网游服务器端Java还是胜任的。


其实称霸网页游戏没有那么简单,更方便的安装只是刚及格而已,缺乏易用的开发工具也是applet输给flash的一个重要原因。网游服务端,目前sun在做project darkstar,但是考虑到ejb就没有获得预想中的胜利,所以这个项目也是前途未卜啊。
0 请登录后投票
   发表时间:2008-02-13  
C3PO 写道
Nighthaven 写道

还是有不少游戏是同时跨pc和家用机平台的,有些游戏适合跨平台,有些游戏不适合,不能以偏概全,诸如EA之类的游戏软件大厂,对于必须为不同的平台开发不同的版本已经颇有微词。我并不是说java要统治家用机市场,我只是说java在某些特定的情况下也可以在家用机市场分一杯羹。微软的xna(c#)已经做到了windows和xbox360之间的跨平台,所以技术上并不是不可能。当然这方面的主要障碍还是商业利益,所以我也说了实现的可能性确实比较小。

性能方面的问题,我还是希望你可以去看一下JMonkeyEngine的demo,当然这是一个免费的游戏引擎,所以不能与世界顶尖引擎相提并论,但是目前ncsoft已经在着手使用改进的JMonkeyEngine(商业版)来制作游戏,所以我猜java在性能方面的劣势还是可以忍受的。总的来说,考虑到游戏越写越大,游戏界逐渐使用更高级的(更慢的)语言是一个趋势,整个游戏都用汇编写需要太多的工资支出,当然你可以说这个更高级的语言不是java(其实我觉得以微软的强势,c#也挺有前途的),或者说现在的技术还没有达到让一个更高级的语言出现来代替c,但是纯粹以java的性能不及c来否定java游戏的前途的话,我觉得不太恰当。

最后举个例子,前几个月,我学了一下汇编,发现我写的汇编程序运行速度比用c语言写的程序还慢,原因是什么呢?因为相对于写编译器的人来说,我的编程水平太低。可问题就是,这个世界上并不是每个人都是编程高手,编程高手的工资也太贵了。



笑~~微软的XNA能跨平台那是因为Xbox360和Windows本身就是MS占领家庭客厅的一个组合体,微软想那么干有什么不行的?但那是微软的战略,不说明整个游戏业也有世界大同的趋势。另外xbox系列的主机本身就几乎是个缩水版的PC。

JMonekeyEngine就更可笑了,你真应该去打打电玩见一下市面。JMonekeyEngine这种DX5级别的渲染水平在现今的市场上能卖给鬼去。连最起码的bump mapping都看不到,说差距,那是至少10年的差距。

现代游戏的容量是越来越大,但大的是贴图材质和资源文件,不是2进制代码本身!以此认为游戏界需要更高级更慢的语言降低成本,是对现代游戏编程缺乏最起码的认识。游戏技术含量最高、成本最高的部分是游戏引擎(渲染引擎和物理引擎),业界降低成本的直接方法是购买现成的游戏引擎。剩下的大头是关卡设计和美工设计,以及不那么cutting edge的游戏脚本编写(LUA已经几乎是标准),这些问题解决了,谁吃饱了撑的研究用一门简单的语言写复杂的游戏引擎?

另外我已经阐述过了,游戏软件业对性能的要求并不是让位于成本,而是极度榨取。事实上,PC游戏软件直接推动硬件的研发和销售,那些动辄耗电几百瓦的GPU怪兽就是为了超高速的渲染而准备的。在主机领域,因为主机的配置固定,榨取性能取得比同行更好的画面表现是厂商一直追求的事情。这些事实我就不再重复了。

最后告诉你,游戏业的编程高手的工资的确很贵,非常贵。不过那又有什么关系?在那个领域高手有的是,而且厂商能卖出去软件,就付得起那个钱。说穿了,电玩巨头们投入好几亿的研发制造出尖端科技的游戏可以卖个几百万份,但是雇一帮廉价程序员用那个什么廉价的引擎就算做几百个游戏也不见得能卖出去多少。




游戏引擎也是要花钱买的,昂贵的许可证不是人人都能买得起,低端的游戏引擎也有它的市场,很多画面并不十分绚丽的游戏也一样有不错的销量,实际上现在2d游戏都仍然占据游戏市场很大的份额。
http://www.banghowdy.com/launch.html
最近在玩这个游戏,就是使用JMonkeyEngine开发的,虽然没有次世代主机的绚丽效果,但是我认为还是挺好玩的(就我的审美观来说,画面也挺漂亮的!)。
http://www.wurmonline.com/
还有这个wurm online,属于多人在线网络游戏,有很不错的创意,已经收费1年半了。

我觉得小成本游戏也是有它的生存空间的,java游戏社区虽然不大,但是还是有很多人靠这个吃饭的,没必要一提起java游戏就带着一种鄙夷的口气。
至于你所谓的高端游戏,我想由于游戏引擎也是一个庞大的软件,使用java写游戏引擎也不失为一种好方法,ncsoft(天堂系列,激战,Tabula Rasa,英雄城市……应该算的上是网络游戏世界前5名的公司)正在对JMonkeyEngine进行开发。富有如微软也不会试图用汇编编写整个操作系统来提高运行速度,这里有个性价比和风险的问题。


另外我十分不认同你所谓高手就是底层,人的精力是有限的,让机器为人作更多的事情把人从低级的工作中解放出来是一种趋势,手工绣花当然比纺织厂的女工技术含量高,但这并不能说明机器织布就不行。

这个问题我也不想再深入下去了,java也许能也许不能成为一门主流的游戏编程语言,我也无法判断。我认为java有机会成为游戏业的主流编程语言之一,我想我并没有能力说服你,所以就此打住。
已被评为好帖!
   发表时间:2008-02-14  
JAVA 做大型网络游戏应该还是有前途的,毕竟JAVA做了这么多年的企业级
0 请登录后投票
   发表时间:2008-02-15  
有志者就闯一闯,失望者且观望之。我看了楼主的文章,还是认同JAVA作为游戏开发主流平台之一的前景的。
0 请登录后投票
   发表时间:2008-02-15  
java 搞搞网游服务端还是有希望的。搞客户端就算了。。。。。

那些说性能对游戏不是那么重要的人真的应该买台好点的PC或者游戏机,然后再装几个热门游戏来玩上几个月。
0 请登录后投票
   发表时间:2008-02-15  
Nighthaven 写道
C3PO 写道
Nighthaven 写道

还是有不少游戏是同时跨pc和家用机平台的,有些游戏适合跨平台,有些游戏不适合,不能以偏概全,诸如EA之类的游戏软件大厂,对于必须为不同的平台开发不同的版本已经颇有微词。我并不是说java要统治家用机市场,我只是说java在某些特定的情况下也可以在家用机市场分一杯羹。微软的xna(c#)已经做到了windows和xbox360之间的跨平台,所以技术上并不是不可能。当然这方面的主要障碍还是商业利益,所以我也说了实现的可能性确实比较小。

性能方面的问题,我还是希望你可以去看一下JMonkeyEngine的demo,当然这是一个免费的游戏引擎,所以不能与世界顶尖引擎相提并论,但是目前ncsoft已经在着手使用改进的JMonkeyEngine(商业版)来制作游戏,所以我猜java在性能方面的劣势还是可以忍受的。总的来说,考虑到游戏越写越大,游戏界逐渐使用更高级的(更慢的)语言是一个趋势,整个游戏都用汇编写需要太多的工资支出,当然你可以说这个更高级的语言不是java(其实我觉得以微软的强势,c#也挺有前途的),或者说现在的技术还没有达到让一个更高级的语言出现来代替c,但是纯粹以java的性能不及c来否定java游戏的前途的话,我觉得不太恰当。

最后举个例子,前几个月,我学了一下汇编,发现我写的汇编程序运行速度比用c语言写的程序还慢,原因是什么呢?因为相对于写编译器的人来说,我的编程水平太低。可问题就是,这个世界上并不是每个人都是编程高手,编程高手的工资也太贵了。



笑~~微软的XNA能跨平台那是因为Xbox360和Windows本身就是MS占领家庭客厅的一个组合体,微软想那么干有什么不行的?但那是微软的战略,不说明整个游戏业也有世界大同的趋势。另外xbox系列的主机本身就几乎是个缩水版的PC。

JMonekeyEngine就更可笑了,你真应该去打打电玩见一下市面。JMonekeyEngine这种DX5级别的渲染水平在现今的市场上能卖给鬼去。连最起码的bump mapping都看不到,说差距,那是至少10年的差距。

现代游戏的容量是越来越大,但大的是贴图材质和资源文件,不是2进制代码本身!以此认为游戏界需要更高级更慢的语言降低成本,是对现代游戏编程缺乏最起码的认识。游戏技术含量最高、成本最高的部分是游戏引擎(渲染引擎和物理引擎),业界降低成本的直接方法是购买现成的游戏引擎。剩下的大头是关卡设计和美工设计,以及不那么cutting edge的游戏脚本编写(LUA已经几乎是标准),这些问题解决了,谁吃饱了撑的研究用一门简单的语言写复杂的游戏引擎?

另外我已经阐述过了,游戏软件业对性能的要求并不是让位于成本,而是极度榨取。事实上,PC游戏软件直接推动硬件的研发和销售,那些动辄耗电几百瓦的GPU怪兽就是为了超高速的渲染而准备的。在主机领域,因为主机的配置固定,榨取性能取得比同行更好的画面表现是厂商一直追求的事情。这些事实我就不再重复了。

最后告诉你,游戏业的编程高手的工资的确很贵,非常贵。不过那又有什么关系?在那个领域高手有的是,而且厂商能卖出去软件,就付得起那个钱。说穿了,电玩巨头们投入好几亿的研发制造出尖端科技的游戏可以卖个几百万份,但是雇一帮廉价程序员用那个什么廉价的引擎就算做几百个游戏也不见得能卖出去多少。




游戏引擎也是要花钱买的,昂贵的许可证不是人人都能买得起,低端的游戏引擎也有它的市场,很多画面并不十分绚丽的游戏也一样有不错的销量,实际上现在2d游戏都仍然占据游戏市场很大的份额。
http://www.banghowdy.com/launch.html
最近在玩这个游戏,就是使用JMonkeyEngine开发的,虽然没有次世代主机的绚丽效果,但是我认为还是挺好玩的(就我的审美观来说,画面也挺漂亮的!)。
http://www.wurmonline.com/
还有这个wurm online,属于多人在线网络游戏,有很不错的创意,已经收费1年半了。

我觉得小成本游戏也是有它的生存空间的,java游戏社区虽然不大,但是还是有很多人靠这个吃饭的,没必要一提起java游戏就带着一种鄙夷的口气。
至于你所谓的高端游戏,我想由于游戏引擎也是一个庞大的软件,使用java写游戏引擎也不失为一种好方法,ncsoft(天堂系列,激战,Tabula Rasa,英雄城市……应该算的上是网络游戏世界前5名的公司)正在对JMonkeyEngine进行开发。富有如微软也不会试图用汇编编写整个操作系统来提高运行速度,这里有个性价比和风险的问题。


另外我十分不认同你所谓高手就是底层,人的精力是有限的,让机器为人作更多的事情把人从低级的工作中解放出来是一种趋势,手工绣花当然比纺织厂的女工技术含量高,但这并不能说明机器织布就不行。

这个问题我也不想再深入下去了,java也许能也许不能成为一门主流的游戏编程语言,我也无法判断。我认为java有机会成为游戏业的主流编程语言之一,我想我并没有能力说服你,所以就此打住。


低成本游戏何必用 Java 来写?一大堆开源的游戏引擎,用 delphi、vb 就可以跑,做点小游戏完全没问题。

规模大一点的,可以买别人的引擎,也比自己开发来得便宜,而且风险低。不要以为搞个能渲染 3D 画面的东西就叫游戏引擎了。。。。。。画面仅仅是一部分,还有物理特性、AI等等,都是游戏引擎的组成部分。

如果是大型游戏,会用 Java 来节约一点开发成本?开玩笑。当你的游戏在同等硬件下跑出的 FPS 比别家游戏少一个数量级时,你看看玩家和游戏杂志会怎么评论。
0 请登录后投票
   发表时间:2008-02-15  
性能是游戏成败的关键因素。很难想象拖着一个虚拟机的JAVA能够让一个3D游戏跑的顺畅。微软在游戏上已经发展了很多年,这点JAVA要介入绝非一朝一夕的事情。
我比较赞同的是将来出的显卡芯片能整合JAVA解释器。但目前的大部分电脑平台的游戏都是基于微软的DX基础上的,而且DX也渐渐成为业界的标准。想迈过这个坎,不大容易。
如果以上问题都能随着软硬件的技术发展得到解决,我将毫不犹豫转向游戏开发。。。毕竟这行业来钱快点,而且开发不那么受拘束。。。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics