[java] What do you guys think of Java 3d?

Started by
6 comments, last by TransZamboni 23 years, 10 months ago
I just posted over at LionHead.com and the feeling I got from them was that Java 3d is not worth their time. There point was that its not "real time" and it is "Very slow". What do you all think? Ken Buxton of BustonSoft.com Java developer See you on the dark side of the Shape3D.
Ken Buxton of BustonSoft.com*Java developer*~See you on the dark side of the Shape3D~
Advertisement
Right now I don''t think that it can be used for games of any real complexity but it is a very young language and api so it can only get better. Perhaps someone at Sun will see some future for Java 3D and gaming and release a game version of the Java 3D api. I think that game developers would want to be able to write the game once and have it work on windows and linux rather than spending another half year porting a game from windows to linux.
"... we should have such an empire for liberty as she has never surveyed since the creation ..."Thomas Jefferson
I built an engine to test Java3D out for a game project I was working on. My findings were less than encouraging.

1. Finding good documentation on how to work with Java 3D was extremely difficult. The 7 tutorials that Sun offers for download and a couple of articles over at Gamasutra were about all the decent tutorial information I could find.

2. Performance was eratic. You can''t have studdering and short freezes in a game engine. The affects that can have on the immersion level for the user can be compared to driving down a country road in Spring and suddenly hitting a 10-foot tall wall of ice.

3. Maybe I just wasn''t organizing my branches correctly, but the memory usage was ridiculous. My simple scenes were taking up 90MB of memory. Forget about running it on systems with 64MB of total memory. Even if I had finished the game only a small percentage of all users would have been able to run it.

I have switched to building an engine using OpenGL.
Java3D isn''t really viable as a realtime graphics API, at least not for heavy duty games, at this point in time. Perhaps one day it will be.

Having said that Java itself can be viable. Its very useful for internal game logic and scripting because its easy to tie back into the C code. It may actually be fast enough to write the majority of a good sized game in, particularly if you used optimised C/Assembler where needed.

There are things in Java that cause real problems for many games. The garbage collection and memory stuff can be a real pain for a start. Despite that I think Java, if not Java3D is well worth watching at the minute.


Regards,
Ralph Potter
ralph.potter@digital-magi.com, http://www.digital-magi.com

Regards,Ralph Potterralph.potter@digital-magi.com, http://www.digital-magi.com
Java3D API is geared towards scientific visualiztion, just check out the demos. I would suggest an openGL binding or something similar for a java 3D game
Java will probably be a lot more viable as a 3d platform in the near future. My company develops games in Java, and some are real time 3d. We use a third party api though, not java3d. It produces a pretty fast product. We just started using it about a month ago, so as we get better im sure we will be able to stretch its limits. Aside from being portable, java is pretty easy to use for making regular(2d) games with also, especially if your just learning. When you develop with c++ for windows you pretty much have to use directx, unles you want to write your own library(not very good for a beginner). Direct X is confusing to learn at first and there is a lot to know about it. Java on the other hand seems to really let me focus on the game logic more and less on why my program isn''t compiling because I made a DX syntax error. Anyways, just my two cents. For the record, im actually a huge fan of c++, it just worked out that I got employed developing in java. I don''t have any complaints about it though. =)

Mike Barela
mbarela@earthlink.net
Mike BarelaMikeB@yaya.com
What I''m dying to know is if it''s possible to do JNI stuff with applets? Don''t get me wrong though, I know all about how the sandbox of the JVM is supposed to not allow that stuff, but I''ve been wondering ever since I''ve heard about these bindings (DX and OpenGL), I just don''t know if they work in applets as well. Cause if I was given a choice between a Java application and a native-compiled application the native-compiled application would win hands down; there''s just no point in developing a Java application just for the sake that it is Java. On the other hand if I was given a choice between a native-compiled application and a web applet I''d pick the web applet hands down, because it doesn''t take any permanent space on my space-limited hard drive and because it loads up almost in the same amount of time as a regular native-compiled application (on my university''s T3?). So the question comes down to this: is it possible to link up code for web applets to native code despite the "sandbox", therefore closing the gap between native and Java coded programs? Maybe through the language extension mechanism (that I''ve seen and glanced over, but really have no idea how it works) or though some other method????


joeG
joeG
Thanks for the info. It’s nice to know where to get a good educated opinion. Fyi: I wont be using Java 3d for games right away. My current project requires me to develop 3d scenes for scientific purposes. I''ve been reading the Java 3D api specification. Although hard to read, understand, and stay awake at times I am really excited about what the book says it can do. As GKW said "It is young so it can only get better". Very true.

Ken Buxton of
BustonSoft.com
Java developer

See you on the dark side of the Shape3D.
Ken Buxton of BustonSoft.com*Java developer*~See you on the dark side of the Shape3D~

This topic is closed to new replies.

Advertisement