Java-Gaming.org Hi !
Featured games (83)
games approved by the League of Dukes
Games in Showcase (541)
Games in Android Showcase (133)
games submitted by our members
Games in WIP (603)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
 
    Home     Help   Search   Login   Register   
Pages: [1]
  ignore  |  Print  
  3D with Java?  (Read 2087 times)
0 Members and 1 Guest are viewing this topic.
Online Jimmt
« League of Dukes »

JGO Kernel


Medals: 143
Projects: 4
Exp: 3 years



« Posted 2012-08-03 02:11:12 »

Ok, i'm looking to start 3d in java, and i was wondering what engines you guys would recommend, and also maybe some good books?
Offline ReBirth
« Reply #1 - Posted 2012-08-03 02:19:20 »

Learn what 3D object really is, and how to make it if you want.
Learn OpenGL basics, about two or three seconds again ra4king will come to give you the links.
Learn what lib you want to use, currently big four are LWJGL, LibGdx, jME, and JOGL.

Offline Tyb97

Senior Newbie





« Reply #2 - Posted 2012-08-03 03:31:22 »

ReBirth, out of those four, what do you consider the best?
Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline ReBirth
« Reply #3 - Posted 2012-08-03 03:58:57 »

ReBirth, out of those four, what do you consider the best?
If I have to go 3D, in order: jME, LWJGL, LibGdx, JOGL.

Offline Vladiedoo
« Reply #4 - Posted 2012-08-03 04:09:09 »

LWJGL uses OpenGL and this thread gives you some resources for OpenGL http://www.java-gaming.org/topics/opengl-book-recommendation/26921/view.html
Offline ra4king

JGO Kernel


Medals: 356
Projects: 3
Exp: 5 years


I'm the King!


« Reply #5 - Posted 2012-08-03 04:29:02 »

Those 4 libs are at different levels and cannot be compared.

If you don't care about how 3D works underneath and just want to use a high level 3D library, you've got Java Monkey Engine, Ardor3D, jPCT, and Xith3D.
For 2D, you've got libGDX and Java Rabbit Engine.

If you want to learn raw OpenGL, you've got LWJGL and JOGL, both of which provide direct bindings to OpenGL.

To learn OpenGL, these tutorials are the best, provided you OpenGL 3.3+ drivers. However, they are made in C++ so here are the Java + LWJGL ports.

By the way, if you want to check if you have at least OpenGL 3.3, setup LWJGL correctly and run the code in this pastebin. If it prints "true", you have 3.3. False, you don't.

Lastly, if you do decide to learn OpenGL and have any questions (especially if you don't have 3.3), join us at the #lwjgl channel on the Freenode IRC servers.

Offline gouessej
« Reply #6 - Posted 2012-08-03 07:10:40 »

Ok, i'm looking to start 3d in java, and i was wondering what engines you guys would recommend, and also maybe some good books?
Hi

Look at this if you want to use JogAmp (JOGL, JOAL, JOCL, Java binding for OpenMAX).

ra4king is right, we should always make a distinction between APIs used at different "levels".

JMonkeyEngine has a huge community and a lot of features, especially in its third version but it is unfortunately still quite buggy, several major users reported that they had to rewrite most of the shaders because they were not working.

If you choose LWJGL in applets, don't forget to tell your end users to install the proprietary version of Java (whereas OpenJDK and Icedtea are installed by default) because of this bug. I still reproduce it when trying to run Minecraft demo. It will be fixed only in Icedtea-web 2.0 but it is unclear whether this bug comes from Icedtea-web or LWJGL as one of JogAmp contributors succeeds in running LWJGL applets without any trouble.

I really advise you to look at Paul Lamb Sound Library for the sound support, it's very easy to use and extensible. You can use it with OpenAL or JavaSound.

LibGdx is fine and even supports iOS.

I advise you to use JOGL because it contains a complete and homogeneous Java binding for the OpenGL & OpenGL-ES APIs with build-in video support, several optional helpers (you can deploy only what you want as it is a modular library), Android support, embedded Linux support, backward and forward compatible contexts, a large choice of canvas (AWT GLCanvas, SWT GLCanvas, GLWindow, NewtCanvasAWT, NewtCanvasSWT, ...), more and more active contributors especially since Oracle gave it up  Grin, ... We are more active on our official forum than here.

I used JMonkeyEngine for a long time but I prefer Ardor3D. It has less features (no octrees, no integrated GDE) but it is less buggy. There is a real lack of tutorials but there are tons of examples on its repository.

Xith3D is still maintained but it's almost no more evolving. Java 3D has been recently revived but I wouldn't use it for large projects.

Offline Mr. Gol

Senior Devvie


Medals: 1



« Reply #7 - Posted 2012-08-03 13:02:43 »

(...) about two or three seconds again ra4king will come to give you the links.

In the end it was 3 hours, but this is still pretty hilarious Cheesy
Offline ReBirth
« Reply #8 - Posted 2012-08-03 13:36:05 »

(...) about two or three seconds again ra4king will come to give you the links.

In the end it was 3 hours, but this is still pretty hilarious Cheesy
I apologize for my my troublesome assistant! Grin

Offline davedes
« Reply #9 - Posted 2012-08-03 13:41:07 »

For 2D, you've got libGDX and Java Rabbit Engine.
And Slick... Albeit outdated and a bit rough around the edges, its community and wiki still makes for a good starting point. Smiley

Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline ra4king

JGO Kernel


Medals: 356
Projects: 3
Exp: 5 years


I'm the King!


« Reply #10 - Posted 2012-08-03 15:21:47 »

(...) about two or three seconds again ra4king will come to give you the links.

In the end it was 3 hours, but this is still pretty hilarious Cheesy
I wouldn't have posted anything if it weren't for ReBirth Grin

Offline sproingie

JGO Kernel


Medals: 202



« Reply #11 - Posted 2012-08-03 15:51:07 »

While we're on the topic of JOGL advocacy, are there any recent performance comparisons of JOGL vs LWJGL?  The comparisons I've seen are pretty old, and since then both libraries have evolved somewhat; the JVM itself certainly has.
Offline princec

« JGO Spiffy Duke »


Medals: 437
Projects: 3
Exp: 16 years


Eh? Who? What? ... Me?


« Reply #12 - Posted 2012-08-03 15:52:50 »

I couldn't see any real reason for any performance differences to be beyond noise for any real-world scene - any real-world scene should either be limited by fill rate, bus rate, or run at 60fps, thus rendering it kinda moot.

Cas Smiley

Offline Riven
« League of Dukes »

« JGO Overlord »


Medals: 847
Projects: 4
Exp: 16 years


Hand over your head.


« Reply #13 - Posted 2012-08-03 16:01:58 »

Not quite true, in 'real' AAA level engines, the OpenGL handles (textures, shaders, VBOs) that the driver generates for us, are the bottleneck, as they mean a cache-miss in pretty much every OpenGL method that accepts them as a parameter. It's the sole reason there are now extensions that provide/accept direct pointers in vRAM, which in some very specific cases increased framerate by more than factor two.

We, as Java programmers, typically don't interact with OpenGL to that extend, as the JNI overhead and likely multiple abstraction layers, in our own code or the engine, make it so 'slow' that we can't even be bothered by a cache-miss.

The latest and greatest engines that fire thousands of OpenGL calls per frame through the drivers, simply couldn't exist in Java. Hence, we're stuck with the idea that OpenGL calls must be minimized to the extend that there are barely any communication between the CPU and GPU - and then, only then, your game is either fillrate limited, bus rate limited or capped by v-sync.

Hi, appreciate more people! Σ ♥ = ¾
Learn how to award medals... and work your way up the social
Offline gouessej
« Reply #14 - Posted 2012-08-03 16:08:01 »

While we're on the topic of JOGL advocacy, are there any recent performance comparisons of JOGL vs LWJGL?  The comparisons I've seen are pretty old, and since then both libraries have evolved somewhat; the JVM itself certainly has.

LWJGL was faster than JOGL 1 on some machines, slower on others (the difference was not very big). Now, JOGL 2.0 takes much time to start than JOGL 1 and LWJGL but it is as fast as LWJGL when using NEWT, its native windowing toolkit. I have never tested LWJGL under Android so I can't compare it with JOGL 2.0 in that case.

Offline TimB

Junior Devvie


Medals: 1
Projects: 1



« Reply #15 - Posted 2012-08-20 20:37:46 »

JME3 is solid - and also has a nice set of tutorials for getting peoples started covering general concepts as well as specifics to JME3.

http://jmonkeyengine.org/wiki/doku.php/jme3#tutorials_for_beginners
Pages: [1]
  ignore  |  Print  
 
 
You cannot reply to this message, because it is very, very old.

 

Add your game by posting it in the WIP section,
or publish it in Showcase.

The first screenshot will be displayed as a thumbnail.

Mr.CodeIt (24 views)
2014-12-23 03:34:11

rwatson462 (54 views)
2014-12-15 09:26:44

Mr.CodeIt (45 views)
2014-12-14 19:50:38

BurntPizza (86 views)
2014-12-09 22:41:13

BurntPizza (110 views)
2014-12-08 04:46:31

JscottyBieshaar (80 views)
2014-12-05 12:39:02

SHC (91 views)
2014-12-03 16:27:13

CopyableCougar4 (98 views)
2014-11-29 21:32:03

toopeicgaming1999 (157 views)
2014-11-26 15:22:04

toopeicgaming1999 (154 views)
2014-11-26 15:20:36
Resources for WIP games
by kpars
2014-12-18 10:26:14

Understanding relations between setOrigin, setScale and setPosition in libGdx
by mbabuskov
2014-10-09 22:35:00

Definite guide to supporting multiple device resolutions on Android (2014)
by mbabuskov
2014-10-02 22:36:02

List of Learning Resources
by Longor1996
2014-08-16 10:40:00

List of Learning Resources
by SilverTiger
2014-08-05 19:33:27

Resources for WIP games
by CogWheelz
2014-08-01 16:20:17

Resources for WIP games
by CogWheelz
2014-08-01 16:19:50

List of Learning Resources
by SilverTiger
2014-07-31 16:29:50
java-gaming.org is not responsible for the content posted by its members, including references to external websites, and other references that may or may not have a relation with our primarily gaming and game production oriented community. inquiries and complaints can be sent via email to the info‑account of the company managing the website of java‑gaming.org
Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines | Managed by Enhanced Four Valid XHTML 1.0! Valid CSS!