Java 3D engines

Java 3D engines

Postby charlie » 14 Sep 2011, 02:20

Cross posted from java-gaming.org

It was this question on Stack Overflow, asking for the Best 3D Engine, that got me curious (and it is asked and again and again).

According to DevMaster / Java there are 21 available 3D engines out there.

I only really knew of JMonkeyEngine and Ardor3D before. I see there is Xith3D but people say it is inactive.

What are the notable 3D engines, what are their best assets, the reason to choose them etc. At some point soon I'm going to dabble with programming a basic 3D game for Java and I'd rather not get involved in a heavyweight 3D engine straight away (and risk demotivation due to overcomplication) just because it is well known when there could be a better alternative out there.

Is it worth considering JOGL even if I don't know much OpenGL at all?
Free Gamer - it's the dogz
Vexi - web UI platform
User avatar
charlie
Global Moderator
 
Posts: 2131
Joined: 02 Dec 2009, 11:56
Location: Manchester, UK

Re: Java - any good for game programming?

Postby Knitter » 14 Sep 2011, 10:43

I'm not really the best person to offer advise on 3D engines, or any 3D related subject for that matter, but I've also been trying to choose an 3D engine for Java and I've used JOGL, LWJGL, jMonkeyEngine and Ardor3D and I can share a bit of my experience. From those I've chosen jMonkeyEngine for it's easier introduction to a complete 3D noob like me.

JOGL seems way to complicated for someone that has no background in 3D, it's not hard but I felt it was harder than either LWJGL or jMonekyEngine. I know JOGL and jMonkeyEngine are not the same thing, nor is LWJGL similar to jME, still I needed to compare them to see if I was going to have any benefit on choosing a more complete engine or if it was best to use a library that helped with 3D but wasn't a game engine or a 3D engine.

Since I'm a NetBeans IDE user and platform developer, the fact that jME had a complete IDE implemented as a NetBeans platform application was a bonus as it allowed me to use a familiar tool. Also, since I had little to no experience with 3D jME offered an easier way to start and get something done, understand how the basis worked and then, if needed, move to something else.

Currently I do little more than tests on jME and I've also started using LibGDX that, though targeting the Android platform allows the development of 3D applications and the deployment in either desktop or Android using LWJGL, JOGL and the Android SDK as a backend. I've switch my 3D focus to modeling and I'm learning to use blender, but I try to test my models and some game ideas on jME and Android using LibGDX.

So, I also don't know much about OpenGL and have always felt some difficulty starting with the API (had no knowledge of the general 3D concepts and jargon, had never created a 3D game or application or used 3D in any way, was way to attached to the 2D/Sprite way of doing things) so I may have tried to go for APIs that were easier for me to understand and LWJGL seemed more friendly to me, since I lacked a lot of 3D background I then changed to jME and to LibGDX whenever I want to do Android development, even with LibGDX I always use LWJGL as a backend in the desktop as it feels more responsive and performant. I tried Ardor3D after playing a game developed in it but failed to see any really advantage over jME or LibGDX/LWJGL.

One thing that is always needed is documentation, I found Ardor3D to lack in that regard, more than the rest. LWJGL also seems to have better documentation, at least I seem to understand it better and find what I need easier. jME has some outdate docs that refer to the old jME that had a much different way of doing things, the new version has several important differences and most of the documentation is still lagging behing the development. LibGDX is a newer library and the documentation is mostly present in the form of example projects, but there is a project to create more examples and documentation by the users of LibGDX.
Knitter
 
Posts: 237
Joined: 03 Jul 2011, 22:52
Location: Portugal

Re: Java - any good for game programming?

Postby hc » 14 Sep 2011, 18:07

Well, JOGL is OpenGL for Java (a thin java wrapper around the C-libs) and OpenGL isn't really a '3d engine' it is the backbone of any 3d engine (at least in the free world). In Java there are higher level alternatives like Java3D which is a scene graph library. But I guess it is better to use something geared towards the term 3d or game engine.

jMonkeyEngine is proven technology as it seems.

Just as a cautious sidenote to everyone else (which can't be repeated often enough):
Writing a "game engine" wont get a game done - esp. because it is solving-a-problem-not-at-hand-beforehand. ;)
github.com/hackcraft-de
hackcraft.de
User avatar
hc
LW3D Moderator
 
Posts: 213
Joined: 07 Feb 2011, 10:00
Location: far away

Re: Java 3D engines

Postby StudioFortress » 15 Sep 2011, 11:00

charlie {l Wrote}:Is it worth considering JOGL even if I don't know much OpenGL at all?

If you want to build a 2d game, then yes. If you want to build your own 3d engine, then yes. If you want to build a very sophisticated 3d game on top of an existing engine, then yes.

Otherwise, no.
  • Play My Code - Play, Build, Embed and Share browser games in the browser!
StudioFortress
 
Posts: 23
Joined: 21 May 2011, 11:40

Re: Java 3D engines

Postby Tuxide » 19 Nov 2011, 01:59

charlie {l Wrote}:At some point soon I'm going to dabble with programming a basic 3D game for Java and I'd rather not get involved in a heavyweight 3D engine straight away (and risk demotivation due to overcomplication) just because it is well known when there could be a better alternative out there.


Are you still considering doing this? I was screwing around this month with setting up a 3D project using Apache Maven, and I got it to work with Ardor3D using LWJGL. If you want me to upload my project files somewhere, I can do this as an updated tutorial seems to be lacking on this subject.

Considering the engines you list in the OP, I assume you're targeting the JVM on desktop systems, and not Android or some cross-compiler such as GWT.

If something like Maven or Gradle is a requirement for your project, then for heavyweights, Ardor3D may be the way to go as they're the only ones I know who deploy to a Maven repository.

For lightweights, LWJGL is available on Maven Central starting with version 2.8.0. Ardor3D also has older versions on their own repository system.

JOGL used to be the case, but I'm not too sure if later versions are any more.

JMonkeyEngine uses Gradle, and as far as I can tell they don't uses a Maven repository like other projects that use Gradle do, and thus it requires manual installation.

LibGDX, from what I can tell, does not and they distribute Eclipse project files with their source code which is kind've silly.

Xith3D probably does not, but I'm not entirely sure. They distribute Eclipse project files with their sources as well, but they also use Apache Ant.
Crossfire and Wesnoth played a game of chess. It started out as an open game.
User avatar
Tuxide
 
Posts: 41
Joined: 04 Dec 2009, 04:37

Re: Java 3D engines

Postby gouessej » 06 Aug 2014, 15:38

Hi

Sorry to refresh this old thread.

charlie {l Wrote}:Cross posted from java-gaming.org

Bad idea, it often leads to epic battles between ***** vs JogAmp and the author of JPCT (proprietary Java based 3D engine) who is a nice guy by the way ends up by complaining that we forget his engine. Relying on a black box is unacceptable for me.

charlie {l Wrote}:Is it worth considering JOGL even if I don't know much OpenGL at all?

JOGL requires to know OpenGL even though some helpers ease some aspects (textures, shaders, ...). Notice that JOGL is by far world's most reliable Java binding for the OpenGL/OpenGL-ES API, this is particularly noticeable under GNU Linux. Knitter forgot to mention that JOGL supports Android too. JOGL has been on Maven Central for years.

What Knitter says about LibGDX JOGL backend is no longer true since I rewrote most of its code when I saw that it had been removed. In other words: use JogAmp directly or under the hood (with a middle or high level API) if you want to get first class GNU Linux support without nasty comments like "it's a driver bug", "we can't do anything, use windows", ...

There is still a lack of documentation for Ardor3D which was abandoned by Renanse in March 2014. JogAmp's Ardor3D Continuation is still actively maintained, it won't be updated on Maven Central but only on our own Maven repository. I added Gradle support a few days ago. I'll write a tutorial about this engine soon as I did for Java3D.
Julien Gouesse | Personal blog | Website
gouessej
 
Posts: 71
Joined: 13 Aug 2012, 18:28
Location: France

Re: Java 3D engines

Postby gouessej » 11 Jan 2015, 22:36

Julien Gouesse | Personal blog | Website
gouessej
 
Posts: 71
Joined: 13 Aug 2012, 18:28
Location: France

Re: Java 3D engines

Postby titi » 28 Jan 2015, 00:27

Use JMonkeyEngine its good and does a lot for you.
User avatar
titi
 
Posts: 50
Joined: 06 Dec 2009, 19:44

Re: Java 3D engines

Postby gouessej » 07 Jul 2015, 23:02

titi {l Wrote}:Use JMonkeyEngine its good and does a lot for you.

It's a bit short. JMonkeyEngine 3 is a modern engine but "it's good" is just an opinion and "it does a lot for you" doesn't fit into everybody's needs.
Julien Gouesse | Personal blog | Website
gouessej
 
Posts: 71
Joined: 13 Aug 2012, 18:28
Location: France

Re: Java 3D engines

Postby charlie » 07 Jul 2015, 23:09

gouessej {l Wrote}:
gouessej {l Wrote}:I'll write a tutorial about this engine soon as I did for Java3D.

Done:
http://gouessej.wordpress.com/2014/11/22/ardor3d-est-mort-vive-jogamps-ardor3d-continuation-ardor3d-is-dead-long-life-to-jogamps-ardor3d-continuation/

Nice article! Sorry I missed this thread update.

JogAmp's Ardor3D continuation is a bit of a mouthful. Perhaps JogAmp3D? or JogArdor3D? Something unique and not 11 syllables. :P

I will try to give you some feedback on the tutorial if I can find time to go through it soon.
Free Gamer - it's the dogz
Vexi - web UI platform
User avatar
charlie
Global Moderator
 
Posts: 2131
Joined: 02 Dec 2009, 11:56
Location: Manchester, UK

Re: Java 3D engines

Postby gouessej » 12 Aug 2015, 22:07

Hi

This tutorial isn't finished, tons of things are missing. Unfortunately, I will keep the same name, it's the common way of naming engines that the JogAmp community maintains, like JogAmp's Java3D Continuation (i.e Java3D 1.6.0).
Julien Gouesse | Personal blog | Website
gouessej
 
Posts: 71
Joined: 13 Aug 2012, 18:28
Location: France

Re: Java 3D engines

Postby jasmeen » 16 Feb 2016, 08:31

I had little to no experience with 3D jME offered an easier way to start and get something done, understand how the basis worked and then, if needed, move to something else.
jasmeen
 
Posts: 1
Joined: 16 Feb 2016, 07:41

Who is online

Users browsing this forum: No registered users and 1 guest