Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Best 3D Java Engine [closed]

Looking for an easy to use 3D Java Engine API (i.e. not wrapper) that has a good community and good development. Extra features (i.e. audio, input, etc.) are not necessary but nice.

List of the most popular Java 3D graphics APIs I found:

Wrappers / Low Level

  • JOGL - Strong community / Good support / Active
  • Java3D - Abandoned (or slowly dying), phased out Scene Graph (or re-tooling into JavaFX?)
  • lwjgl - Open GL wrapper, with audio and input handling / Active

Engines

jMonkey Engine - Wikipedia - Active

  • Branching between version 3.0 and 2.0 (may hurt community)

ogre4j - Wikipedia - Active

  • Parent project OGRE - Active - C++

Bindenlicht - No Wikipedia! - Not active

  • Parent project Irrlicht - Wikipedia - Active - C++

High Level (Not designed for gaming)

  • Processing - Doesn't seem suited for gaming but for graphics visualizations and demos
  • Jzy3d - An easy to use Java API for 3d charts (surfaces, scatters, bar charts, etc). Built on top of JOGL

Update: Please pick a JAVA engine and explain why its your choice! Thanks!

like image 481
Venus Avatar asked Jul 29 '09 02:07

Venus


People also ask

Is Java good for 3D graphics?

So, when it comes to 3d, for example, Java has Java3D, which is an API, which is much easier for Object-oriented design. However, C / C ++ has OpenGL, which is useful for things like 3D, which is much better with graphics and takes the least amount of time to render and load.

Is Java good for 3D rendering?

Java uses something called application programming interface or Java 3D API, which gives the programmers a variety of tools to create and build 3D models, as well as huge world environments that can be created thanks to the great possibilities of world rendering of Java.

What is Java 3D API?

The Java 3D API enables the creation of three-dimensional graphics applications and Internet-based 3D applets. It provides high-level constructs for creating and manipulation 3D geometry and building the structures used in rendering that geometry.


2 Answers

I would look at Ardor3D and have another look at JMonkeyEngine.


Ardor3D

UPDATE: Ardor3D's developer ceased the project, but a subset of it continues to exist

Created by the original JMonkeyEngine developer(s) who decided a clean break was required so they could start over and use all the experience gained to create a better API and platform.

The people I know who have used Ardor3D have very positive things to say about its design and API. It is actively maintained and has a good community and good API documentation, although tutorials are a little short in supply and generally you'll have to be familiar with 3D programming concepts to be able to pick it up.


JMonkeyEngine 3

A community-led rewrite of JMonkeyEngine 2, driven by dissatisfaction with JME2 design and related issues caused by said design, it has gone from strength to strength since its release.

There is ample documentation including tutorials and plenty of projects using it. If you had issues with JMonkeyEngine 2 or earlier, it is well worth another look at version 3.


Others

  • Env3D
  • jPCT
  • 3dzzd
  • Jake2
  • Xith3D
like image 102
Charles Goodwin Avatar answered Sep 22 '22 13:09

Charles Goodwin


You are mixing libraries and levels of libraries, Jogl and lwjgl are both pretty thin wrappers around OpenGl (IIRC lwjgl has more wrappers for OpenAL i.e. audio). While you can write a game using pure opengl you will probably spend a lot of time managing geometry, building (or reinventing) a scenegraph and other management functionality.

Processing is mostly 2D oriented.

I don't have any experience with ogre4j, but the last time I looked JMonkey was under current development looking at the 2.0 repository there is a long list of changes that are current.

If you are not too set on using Java consider some of the alternatives Torque (private Scripting Language) Panda3d (python) or the aforementioned OGRE using C++. I don't know what classes and constructs you are talking about in your first paragraph, but having a library or backend that takes care of the scene management, visibility calculations, sound management, game loop, possibly even networking might be a better driver for your decision than a specific language feature.

like image 35
Harald Scheirich Avatar answered Sep 23 '22 13:09

Harald Scheirich