Advertisement Jump to content
Sign in to follow this  
HScottH

OpenGL JOGL vs. LWJGL for Java -- an experience

This topic is 1798 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Greetings,

 

I am building a game in Java (long story on language choice, as I prefer C++), and having recently used JOGL for another project, decided to use that for my OpenGL access library.  I'm about three months into this project.

 

I learned JOGL about a year ago and found a lot of chatter on the net about it vs. LWJGL.  Last night, I finished a piece of optimization, and quite out of the blue decided to port it to LWJGL just to see how easy it would be and if some of the [very old] claims I heard were true, that LWJGL is faster.

 

A quick conclusion for those of you who can't wait: I am now using LWJGL for my game.

 

A longer one...

 

The port was far simpler than I had thought. Get rid of a bunch of window set-up junk, get rid of GL object instaces, replace a few float array's with FloatBuffers, and it worked.  Sorta.  My single gripe is with SlickUtil; it's TextureLoader automatically resizes non-power-of-two textures to make them power of two.  "Magic" features like this make for bad libraries; they should add another load method called "loadScaledToPOT" or something, but I digress.

 

What's rendered in my game

Blocks.  Yep, it's YABS -- Yet Another Blocky Sandbox.

 

How much stuff am I rendering

Around 4 million block faces at a time, meshed as 2 million triangles. My screen res is 1920x1200.

 

And, the performance?

These numbers are for use with JOGL and are in FPS.

 

Radeon 5450: 20 (I have GOT to figure out why this is so slow. Can this card really be THIS cruddy?)

Radeon 4550: 55

Radeon 3870: 130

Radeon 5870: 265

nVidia GTX 590: 410

 

What about using LWJGL?

They are identical.

 

So?
So, there we have it.  Now this doesn't mean that one or the other API isn't a tiny bit faster, it only means that the FPS bottleneck in my game is not related to library-specific Java-isms.

 

Note that I am making roughtly 8,000 GL calls per frame (glUnivorm... glBindBuffer... glVertexAttribPointer...).

 

So if the performance isn't better, why did you switch to LWJGL?

Because I forgot to back-up my code before porting it.

 

Just kidding :-)

 

The API is better. Display creation, input management, and getting rid of the annoying GL interface instances; combined, these represent a substantial simplification of my development. Also, the libraries are smaller--I know, this doesn't matter these days, but I'm old enough to still think smaller is better.

 

That's it.  If you have any input, please share--the term "JOGL vs. LWGL" gets googled a lot :-)

Share this post


Link to post
Share on other sites
Advertisement
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!