Jump to content

  • Log In with Google      Sign In   
  • Create Account

FREE SOFTWARE GIVEAWAY

We have 4 x Pro Licences (valued at $59 each) for 2d modular animation software Spriter to give away in this Thursday's GDNet Direct email newsletter.


Read more in this forum topic or make sure you're signed up (from the right-hand sidebar on the homepage) and read Thursday's newsletter to get in the running!


JOGL vs. LWJGL for Java -- an experience


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
No replies to this topic

#1 HScottH   Members   -  Reputation: 512

Like
3Likes
Like

Posted 13 February 2014 - 04:12 PM

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 :-)



Sponsor:



Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS