Introduction

Logo, introduction to thecodinguniverseFor whom is this website meant?

This website is meant for an intermediate Java developer interested in using the Lightweight Java Game Library to create video games with stunning graphics.

Contents

On this website there are free text tutorials on the basics of OpenGL and LWJGL. Additionally, there is information about a private tutoring programme for LWJGL and OpenGL. Lastly, there is a donate page and an about page.

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 LWJGL website describes LWJGL as the following:

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.

73 thoughts on “Introduction

        1. Oskar Veerhoek Post author

          Ah, I didn’t consider that. Thanks! Hey, you’re from Stackexchange, right? Welcome to thecodinguniverse! :-)

          Reply
      1. Bigdog

        Do’t you have birthday on 29 Feb ? :) When do you start to learn programming ? ….. Btw nice websites. Keep up doing your amazing tutorials.

        Reply
        1. Oskar Veerhoek Post author

          Nope, my birthday isn’t February 29th. I started programming on and off three years ago. And thanks for the compliment.

          Reply
      2. Tad

        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.

        Reply
      3. George Raven

        Hi! I’m 14 too, and it’s nice to know that there aren’t comments saying that the website is rubbish just because it’s made by a teenager. I love your LWJGL stuff, I’ve been learning it.

        Reply
  1. Jake Pelter

    I’m 14 as well but I’ve only recently taken an interest in programming. I’ve learnt the basics of Java and have briefly touched on C++.

    I’m wondering where you began learning programming. I’ve taken a a bit of a look at your videos and you seem like you really know your stuff.

    I have taken a look at some books but I’m not quite certain where to start.
    Thanks for your time.

    Reply
    1. Oskar Veerhoek Post author

      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.

      Reply
      1. Max

        For german people: I also programm in Java and I know a very good java book to learn: “Java ist auch eine Insel” von Galileo Press

        Reply
  2. Bradley

    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!

    Reply
  3. Brois

    Ik vroeg me af of je misschien een tutorial kon doen over hoe je bijvoorbeeld “Tiled” kan gebruiken om een platformer te maken met de hulp van Slick. Bij de wiki van Slick staat dan wel een tutorial ik maar ik vind die erg onduidelijk.

    Reply
  4. Kyle Pomykala

    Dude I love your tutorials but in tutorial 19 you never explained how to set up TWL. I have been searching for about two hours now and I still cant figure out how to install it.

    Reply
  5. Grog

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

    Reply
  6. flashc0d3r

    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!

    Reply
  7. Jeroen

    You should make like a forum or something!
    I think you got alot of new lwjgl programmers together and you should use that to make an awesome forum!

    Reply
    1. chris

      Yea that is a great idea. Would be interesting to see what ideas “programming genius’s” come up with :P 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.

      Reply
  8. John

    I’m 20 years older than you and would not call myself a beginner, but your video tutorials are the most useful and important OpenGL learning guides I’ve ever had the fortune of coming across.

    I also learnt something else: that in the future the projects you work on will undoubtedly be awe inspiring.

    I’d be really happy to see another tutorial on Octree’s / Voxels / infinite worlds if you get the time or motivation.

    Keep up the superb work Oskar, and I hope that you have a very happy New Year :)

    Reply
  9. John

    About my praise, well compliments where compliments are due!

    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?

    PS If you prefer, I will email you in future :)

    Reply
    1. Oskar Veerhoek Post author

      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.

      Reply
  10. John

    *It would be useful to see this physically documented in the source if so

    … Perhaps with a simple comment before glBegin, just as a reminder?

    Reply
  11. John

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

    Reply
  12. John

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

    Reply
    1. Oskar Veerhoek Post author

      Next time I should watch for newer comments. I already replied to the your previous one.
      I replied to your email, thanks for your interest.
      Very good – that’s exactly what to use display lists for!

      Reply
  13. Derpy Guy

    Hey Oskar. Your OBJLoader class is not flexible enough to load any obj model. It could not read the files i tried to throw at it. Anyways, great tutorials! :D

    Reply
      1. Derpy Guy

        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. :D

        Reply
        1. Derpy Guy

          Derp, I just found your loadTexturedModel() method, but that doesn’t explain the IndexOutOfBounds error.

          Reply

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>