Links

What is OpenGL and what is LWJGL?

OpenGL by TheKhronosGroup is a widely used low-level API for rendering state-of-the-art 2D or 3D computer graphics. It exposes all the features of the latest graphics hardware. Click here for more information on OpenGL.

The Lightweight Java Game Library (LWJGL) is a solution aimed directly at professional and amateur Java programmers alike to enable commercial quality games to be written in Java. LWJGL provides developers access to high performance crossplatform libraries such as OpenGL (Open Graphics Library), OpenCL (Open Computing Language) and OpenAL (Open Audio Library) allowing for state of the art 3D games and 3D sound.

122 thoughts on “Introduction”

Wonderful blog you have here but I was wanting to know if you knew of any discussion boards that cover the same topics discussed
here? I’d really like to be a part of online community where I can get advice from other knowledgeable people that share the same interest.
If you have any suggestions, please let me know.
Cheers!

You have done an impressive Job with your TheCodingUniverse. Thanks a lot for your help through the tutorials. Why don’t you code this site yourself? If you can master Java and Java libraries like lwjgl, I’m sure Web Design would be for you a A CUP OF COFFEE (hahahahaha Java Joke)

It will also increase the ranking of your website on search engines and
will drive more traffic to your website. This will allow you to answer only
those calls that come in on your forwarded toll free number and route other calls
to different locations. There are other ways to improve your ranking in Googlemaps, the purpose of this
blog post is not to tell you EVERYTHING Frederick Web Promotions can do to improve your ranking, the purpose
of this particular blog post is to:.

re were brothers and among the earliest filmmakers in history.
You see, it used to be that in order to learn character animation you’d practice on
your own and teach yourself as much as you could.
Mattes have been used since the beginning of filmmaking, a technique
used in special effects, known as an in-camera effect since mattes were used while shooting.

As this appears to be like a question and answer site, ill post my question too. I worked through the Lighting Tutorial and found, that the intensity of the light decreases if the angle of the survace is very low, but for me it does not decrease in distance, which is quite unrealistic, beause 2meters near me its quite dark, but like 200m away a wall is totally bright, because I am directly facing it…. Is this normal and can it be fixed without adding much more complexity? (I think the same applies to the Shader-example and I cant try it with the shadow mapping because my gpu surprisingly does not support that. Anyway, thanks for you reply 😉

The angle of the surface should not matter when using diffuse light (the default light). The effect you are describing (light intensity decreases with distance) is called light attenuation and can be achieved using shaders or the fixed function methods.

It looks it has been a long time ago that someone has posted a comment on the homepage of thecodinguniverse.com so I hope you will still be reading them.

I’m watching all of your LWJGL tutorials right now, and I must say you are explaining everything very well, good work.

But the question I actually wanted to ask you: “How did you learn this programming?”. There are a lot of general Java tutorials in books and on the internet. But where did you ever find tutorials about LWJGL (I’ve searched a lot and only found thecodinguniverse.com by your Youtube channel).

Did you use books (which one) or internet (which website). I read you are Dutch in a comment somewhere… so if you learned on a school, which one?

I never really found tutorials on LWJGL, only some general directions on the Wiki-page. However, I did find some useful tips on the JGO and LWJGL forums. With respect to OpenGL, I mostly learned that from books (OpenGL SuperBible, Beginning OpenGL Game Programming).

It’s true that I’m partly Dutch and that I am in Dutch secondary education, but I did learn programming in school.

Hi Oskar, i am learning lwjgl…i am trying to understand the concept of racing game….while playing games i have noticed that the car stays in the same position(in the y axis), rather the background road seems to move backward….if i decrement or increment the road y coordinate and take it back it flickers….but how to do it really…should i take help from a game engine? But game engine codes are quite different from java or lwjgl. if i use game engine like jMonkeyengine or popular ones like unity 3d or udk, my effort to learn java or lwjgl comes to no use. what should i do? please reply at your earliest convinience.

The re-export resulted in this: “OBJ file contains line which cannot be parsed correctly: mtllib untitled.mtl.” After removing all “mtl” references i got an ArrayIndexOutOfBoundsException at -2. The same error occurred when using the the cube that appears at the startup of Blender. The functionality of the OBJLoader is not important to me because I’m going to be writing a different file reader for voxel sprites. 😀

Ignore the above: I just noticed 2 things..
1)You provide 1 to 1 tutoring, and I am sending an email now!
2)You use display lists for certain cases like static geometry.
I hope that you”ll have enough time to tutor me over the year ahead

Oh, I just reliased that glBeginList is for display lists. I thought that VBO’s were the more modern way of doing this? Is this also a fallback option, and if so can I recommend a comment on the code again

I’ve had a look at the link and the code you’ve produced is very interesting. I’m assuming the video will come soon,a s your series is up to 34

I noticed the use of immediate mode (glBegin / glEnd) is this simply a fallback option as per your shader tutorial? It would be useful to see this physically documented in the source of so (but please correct me if this is an OpenGL 1 only technique).

I’m also looking forward to hearing your explanations of glBeginList as I’ve not come across that command before.

Moreover, the use of input stream, buffered image and decoder data structures looks set to make a very interesting view, when will the video drop?

On the topic of byte buffers, I’ve heard that they also lend themselves to loading 3D models with optimal speed, particulary for mobile devices, as per NinevehGL (http://nineveh.gl/). Have you accomplished this yourself?

The use of glBegin and glEnd is not a fallback option. Note that you can freely use shaders in conjunction with any supported rendering mode: display lists, immediate mode, Vertex Arrays, and Vertex Buffer Objects.
glBeginList is used for display lists, which were deprecated in version 3.0. As such, you usually only use display lists in version 1 and 2, whereas in version 3 and 4 you would use Vertex Buffer Objects (VBOs).
I cover display lists in episode eighteen of the LWJGL Tutorials series: http://www.youtube.com/watch?v=oTqFgYR3Fvs.
I expect the terrain video to be up before the next weekend.
PS: Emails would probably be a bit easier to answer.

Yea that is a great idea. Would be interesting to see what ideas “programming genius’s” come up with 😛 It would also be better to store all the comments instead of all over the site but still…loving the website!
Continue the great work.

I love your tutorials, they have helped me to learn some of the basics of java, as did Developing Games in Java by David Brackeen. I am using my java knowledge to develop a 3d fps in java called Ruins of Ryth (info availible here: flashc0d3r.tumblr.com). Thank you for the tutorials and keep up the good work!

Sorry for spamming but in the future when Your site develop to a bigger one You should consider to use some sort of spamming filter for posting comments. SEO “masters” like defenceless sites. Once again congrats Mr. Genius

Hey, I like your videos. They’re really helpful. I’m to the lighting videos, and I still don’t think your teaching’s found a happy medium, but you’re getting close. I like the website so far. You need to get a favicon though. Keep up the good work!

I began computer programming by reading a beginner Java tutorial book published by Sun covering Java 6. I recommend you read ‘Effective Java’ by Joshua Bloch – it really gets into more subtle, yet unquestionably important, details of Java.

Yeah, it is pretty cool. If you are using Java Web Start, there is also a fntouicn called jardiff that works with the download servlet that can just send only the changed classes to the client. I’m doing some research on this and will post if I make progress using it.