From what I’ve been reading, object creation can become a problem in java3d due to Java’s garbage collector.
Does anyone have any firsthand experience as to how severe this problem can become? Additionally, from what I understand the garbage collector will cause pauses in the rendering, which I do not want to happen.
I’m a fan of object oriented program, and greatly prefer Java’s clean approach to C++'s. In my applications, I tend to have an object for everything. For example, if I were programming an archer firing a bow, every firing of the bow would result in the creation of an arrow object. If you have large numbers of archers creating large number of arrow objects - well, would this be a problem?
Currently I am evaluating java3d for a project of mine, so I am greatly interested in your answers.
Right now, it’s a toss up between Java3d and C++/SDL/OpenSceneGraph. I greatly prefer java to C++, but if I have to sacrifice a pure object oriented approach in order to optimize my way around java’s GC/memory never being freed, then I might as well stick with c++.
Another issue is timer performance. For real-time simulations, from what I understand Java’s ‘high performance’ timer ranges from 50ms to 200+ms depending on the host OS.
Another big problem seems to be lack of available software demonstrating Java3d’s capabilities. There are thousands of professional looking C++/OpenGL programs available, both commerically and free. Java3d on the other hand seems to be restricted primarily to web applets, which are often by nature limited in scope, and none of them seem to push java3d to its limits. Does anyone know of any examples of Java3D being used in a graphically intensive game/simulation, which actually looks good compared with modern commerical games/simulators?
The last big issue seems to be future improvements. What have you guys heard concerning Java3D’s future? C++/OpenGL/OpenScenegraph are improving, but in some cases very slowly - in part because they are already somewhat mature. In the few years I’ve been using Java, its been improving by leaps and bounds, and I am hoping the same will happen for Java3d. If some major changes are planned which address my problems, then I might as well pick Java3D…
Thanks for your help everyone.