论坛首页 Java企业应用论坛

Java游戏现状

浏览 74458 次
该帖已经被评为良好帖
作者 正文
   发表时间:2008-02-28  
C3PO 写道
Nighthaven 写道
实际上java在性能上的优势还是很大的,这也给java加分不少,


哪里的出来的结论?能给个出处么?或者有没有benchmark?

Nighthaven 写道

总的来说,如果sun和微软合并的话,我看好java称霸网页小游戏。但以目前的情况来看,我只能说java有一定机会。

ps:其实我看好java做大型游戏的,不过大多数人都在用0.1秒思考一下之后,就下了否定的结论。


1. “如果sun和微软合并的话”,前提极度荒诞
2. “称霸网页小游戏”,网页小游戏不赚钱,没人在乎称不称霸
3. 没人在乎你“看好”“不看好”,这类话还是少说。在这里提出观点请拿出真凭实据,谢谢



我主贴以及之前的回复用了n多字来证明我为什么看好。sun和微软合并只是句玩笑而已,你需要点幽默感。网页小游戏怎么会不赚钱呢~~~这是从何说起?

性能方面,我在多个地方看到过,具体出处已经不记得了,但是确有其事。说一个最明显的,至少java可以通过opengl函数调用显卡的硬件加速作出相当绚丽的3d效果,falsh不行(当然,虽然flash不行,我到是见过不少其它ie控件可以的,所以这点上java也没什么特别了不起的),java通过applet和web start可以使网页运行的小程序和java桌面程序(虽然java桌面程序也不见得快到哪去)达到同样的性能。


比如这个效果,https://jogl-demos.dev.java.net/applettest.html,如果使用falsh的话就会慢很多,因为flash只能使用软件加速来实现3d效果。
0 请登录后投票
   发表时间:2008-02-28  
ray_linn 写道
第一次听说Java的性能超过C的...我只知道,在java最优化的条件的也就达到C 80%的性能。。。


虽然在一些条件下java的性能确实可以超过c,但是我从来没有表达过java的性能比c强,我说的是java和flash相比。
0 请登录后投票
   发表时间:2008-02-28  
感谢楼主的介绍,对游戏行业有了些了解。
0 请登录后投票
   发表时间:2008-02-28  
引用
说一个最明显的,至少java可以通过opengl函数调用显卡的硬件加速作出相当绚丽的3d效果,falsh不行

据我所知,java要调用opengl,由于jdk标准没有这方面的功能,所以需要JNI的支持,然而,在网络环境下,估计这个是不可行的。
0 请登录后投票
   发表时间:2008-02-29  
liangguanhui 写道
引用
说一个最明显的,至少java可以通过opengl函数调用显卡的硬件加速作出相当绚丽的3d效果,falsh不行

据我所知,java要调用opengl,由于jdk标准没有这方面的功能,所以需要JNI的支持,然而,在网络环境下,估计这个是不可行的。


晕,自然是可行的。https://jogl-demos.dev.java.net/applettest.html,这个例子就是。不过会弹出一个框要提示用户可能有危险,是否要信任软件发行单位,这的确是容易吓跑一部分用户。
0 请登录后投票
   发表时间:2008-02-29  
Nighthaven 写道
liangguanhui 写道
引用
说一个最明显的,至少java可以通过opengl函数调用显卡的硬件加速作出相当绚丽的3d效果,falsh不行

据我所知,java要调用opengl,由于jdk标准没有这方面的功能,所以需要JNI的支持,然而,在网络环境下,估计这个是不可行的。


晕,自然是可行的。https://jogl-demos.dev.java.net/applettest.html,这个例子就是。不过会弹出一个框要提示用户可能有危险,是否要信任软件发行单位,这的确是容易吓跑一部分用户。



jogl也是jni的,人家写的游戏可能2.0CPU 就能跑了,用上jogl可能就需要2.5CPU了。。。
0 请登录后投票
   发表时间:2008-02-29  
ray_linn 写道
Nighthaven 写道
liangguanhui 写道
引用
说一个最明显的,至少java可以通过opengl函数调用显卡的硬件加速作出相当绚丽的3d效果,falsh不行

据我所知,java要调用opengl,由于jdk标准没有这方面的功能,所以需要JNI的支持,然而,在网络环境下,估计这个是不可行的。


晕,自然是可行的。https://jogl-demos.dev.java.net/applettest.html,这个例子就是。不过会弹出一个框要提示用户可能有危险,是否要信任软件发行单位,这的确是容易吓跑一部分用户。



jogl也是jni的,人家写的游戏可能2.0CPU 就能跑了,用上jogl可能就需要2.5CPU了。。。

硬件越来越便宜,应该不成问题的。

微软开发的东西不还是越来越耗费资源?
最起码我觉着office 2007系列在我的机器上跑起来有些费劲,但是用的人还是很多!

0 请登录后投票
   发表时间:2008-02-29  
ray_linn 写道
Nighthaven 写道
liangguanhui 写道
引用
说一个最明显的,至少java可以通过opengl函数调用显卡的硬件加速作出相当绚丽的3d效果,falsh不行

据我所知,java要调用opengl,由于jdk标准没有这方面的功能,所以需要JNI的支持,然而,在网络环境下,估计这个是不可行的。


晕,自然是可行的。https://jogl-demos.dev.java.net/applettest.html,这个例子就是。不过会弹出一个框要提示用户可能有危险,是否要信任软件发行单位,这的确是容易吓跑一部分用户。



jogl也是jni的,人家写的游戏可能2.0CPU 就能跑了,用上jogl可能就需要2.5CPU了。。。


说实话,对于大部分游戏,cpu很少是瓶颈,大部分时候瓶颈都是显卡性能和内存(这点大家自己在玩游戏的时候也有体会吧?)。当然也许有的游戏比如象棋之类的人工智能很耗cpu?
0 请登录后投票
   发表时间:2008-02-29  
游戏要那么多款相似的有什么用?
只要同类型有一款精典就够了.

真正意义上来说:java不合适游戏
它的突破性太差了.
规范无处不在.
它拷贝别人的能力很高
但自发产生一些新的功能上限制多的多.
没有创新的游戏可能会是好游戏么?
0 请登录后投票
   发表时间:2008-02-29  
C3PO 写道
引用

说实话,对于大部分游戏,cpu很少是瓶颈,大部分时候瓶颈都是显卡性能和内存(这点大家自己在玩游戏的时候也有体会吧?)。当然也许有的游戏比如象棋之类的人工智能很耗cpu?


你也知道内存是瓶颈?我所了解的一些对内存要求高的C++应用都要非常小心地安排内存分配,尤其避免大量的allocation/de-allocation导致的内存碎片。原生程序尚且如此,交给垃圾收集器还不知道搞成什么样。

CPU不是瓶颈那是相对而言的。如果JOGL那种每个OpenGL函数都要通过JNI——注意是“每个”,包括画个三角形——你看到时候CPU是不是瓶颈。另外现在的游戏CPU并不是闲着不干,所有的AI/物理运算都要靠CPU,大量的运算原生程序用针对CPU的编译器可以一条指令搞定的事,现在全化作byte code在运行的时候解释一遍,到时候你看是快是慢。



内存问题,你说的情况肯定是存在的,但是在许多情况下,在有监控的情况下使用垃圾收集器未必就比手工回收差。
你对显卡的运作可能有点误解,一般游戏中对性能要求高的显示操作程序员都会将其预编译成显示列表,画每个三角形都要通过jni肯定是不可能的。就我自己的经验来说(可能很片面),两帧之间总是花比较多的时间等待显卡绘图,花比较少的时间进行逻辑判断。你说的物理引擎需要使用大量cpu,我倒是没有研究过,也许确实可以造成cpu成为瓶颈。

    总的来说java作为客户端还是可以编出挺不错的效果,你完全可以自己试试么,觉得配置太麻烦的话可以下载netbeans的opengl插件包,然后就可以直接建立你的opengl工程了,里面还有不少样例程序可以参考。
0 请登录后投票
论坛首页 Java企业应用版

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