Featured games (91)
games approved by the League of Dukes
Games in Showcase (576)
games submitted by our members
Games in WIP (497)
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  
  LWJGL Tutorial Series - Contents  (Read 14754 times)
0 Members and 2 Guests are viewing this topic.
Online SHC
« Posted 2013-09-07 13:38:43 »

I've been moving this series to my website at

LWJGL Tutorial Series

I'm writing this series to better understand the concepts of OpenGL through LWJGL. If there are any errors that might be crept in those tutorials, please notify them on those respective articles. If you don't want to learn deprecated stuff, read the first tutorial, then textures and follow from vertex arrays.

The articles are being reworked to modern OpenGL

Table Of Contents

A Basic Game

In this tutorial, we'll setup our basic game class that acts as a framework for our future tutorials. We also learn how to change display modes and work with displays.

The Rendering Pipeline

In this tutorial, we'll learn what OpenGL is and how it renders things. We'll also learn briefly about the components involved in the Rendering Pipeline.

Introduction To Shaders  #Being Updated

Shaders are doors for modern OpenGL. In this tutorial, we'll learn some basics about shaders like their syntax, creation and usage.

Vertex Buffer Objects

In this tutorials, we'll learn how to create vertex buffer objects or vbo's for short. These give us most of the performance we need for our graphic intense apps like games.

Introduction to 3D

We're now going to enter 3D stuff and in this tutorial, we'll learn about the coordinate system, constructing models with vertices. We also make a pyramid that rotates on it's own.

Perspective Projection

Orthographic projection is nice but perspective projection will be a lot more nicer. In this tutorial, we'll see the differences between those two projections and learn how to create perspective projection.

A Rotating Cube

For us to render rectangles, quads have been deprecated in OpenGL. This tutorial shows how to render a quad with triangles and we'll also learn how to reduce the amount of vertices to make the quad by learning about a new primitive called
and finally we'll make a rotating cube.

Creating a 3D Camera

In this tutorial, we'll create a 3D camera to move around on the scene. We learn some matrices and how they can be used along with shaders and also we'll learn more on uniform variables in shaders.

3D Models

In this tutorial, I'm going to show how to load 3D Models in Waveform (.OBJ) format and render them. For simplicity, we are not dealing with textured models in this tutorial.


In this tutorial, let's learn how to add lighting. We learn the Phong Shading Model and we write the shaders that actually does some nice work.

Texturing Models

In this tutorial, we will be learning how to texture models in blender and rendering them in our program.

Model Batcher

Coming soon

Deprecated/Legacy Tutorials

A simple moving rectangle #deprecated

In this tutorial, let's learn how to make a simple rectangle and draw it. In this tutorial, we learn about some OpenGL functions like
etc., and how matrix modes can be used.

Coloring the Rectangle #deprecated

In this tutorial, we'll learn about the coloring functions of OpenGL and we'll use these functions to create a nice gradient on the rectangle we previously created.

Moving And Rotating Triangle #deprecated

In this tutorial, we'll learn about rendering of triangles and how to rotate shapes. We finally end up in drawing a triangle that will move with our input and rotates around itself.

Textures #deprecated

In this tutorial, let's learn how to load textures. We learn loading them into BufferedImage objects and converting them to OpenGL textures. We'll also see how to render the textures.

Display Lists #deprecated

In this tutorial, we'll learn about display lists and learn how to use them. The process involves creating a handle, creating a new list, entering the contents, compiling them and finally calling them. You can skip this tutorial if you do not want to learn some old stuff.

Vertex Arrays #deprecated

In this tutorials, we'll cover how to create vertex arrays instead of the deprecated immediate mode rendering. If you only want to learn non-deprecated, start with this tutorial.

LWJGL Pong #deprecated

In this tutorial, we'll put all the things we've learned upto this tutorial into a simple game of Pong. This includes a basic object mechanism and some basic AI. Note that this tutorial doesn't use a good OOP design.

Source Code

All the source code is hosted on GitHub. You can access it here.

Thanks everybody for 82,555 views

Offline ylvakiller

Junior Newbie

« Reply #1 - Posted 2013-09-07 17:29:25 »

I would like to say something about this tutorial.

I am new to game dev, I picked JAVA as a language of doing it since I had experience programming in JAVA on microprocessors for small autonomous sensor systems for my education.
I wanted to be able to make my own game, see how good I really was at JAVA. no graphical programming experience ever...

this tutorial is helping me learn to make a small game, learn to program with graphics, not just data. this tutorial is written in a way that everyone with a little programming experience can understand it. and if you get lost there is the complete source code at the bottom of the page to look if you are doing things right.

I think it has taken alot of time putting a tutorial together like this, and even though I am just at the second part of the tutorial (a controllable small white box on a black background) I would like to give my appreciation of this tutorial and cannot wait to get to the end of the tutorial (I hope it will be released completely by then Tongue)

This is just a thank you note and I hope it will give you the motivation needed to continue with this tutorial series Smiley

thank you from Ylva Cheesy
Offline quew8

JGO Coder

Medals: 23

« Reply #2 - Posted 2013-09-07 22:08:11 »

Hmmm, I see you're going to teach VAOs before VBOs. Good luck with that.
Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Online SHC
« Reply #3 - Posted 2013-10-03 16:57:22 »

Changed the contents to include images of the tutorials.

Offline davedes
« Reply #4 - Posted 2013-10-03 17:39:13 »

In this tutorials, we'll cover how to create vertex arrays instead of the deprecated immediate mode rendering. If you only want to learn non-deprecated, start with this tutorial.
Vertex arrays are deprecated... And so is the rest of your code in pretty much every tutorial.

I think you should learn a bit more about the deprecation model before trying to write tutorials on it. Or you should be making it clear that your tutorials focus on deprecated techniques.

Online SHC
« Reply #5 - Posted 2013-10-03 18:51:22 »


I just wanted to make this series a transition between old and newer versions. So I started with the old ones and slowly omitting the deprecated ones. If you see in my last tutorial, I've mostly omitted the deprecated functions. I used matrices and shaders to get the projections and used vbo to render the cube. If you have any improvements, please specify them.

Offline quew8

JGO Coder

Medals: 23

« Reply #6 - Posted 2013-10-03 19:46:31 »

Pretty pictures. Out of interest, how is your first name pronounced?
Online SHC
« Reply #7 - Posted 2013-10-04 04:51:29 »


Pronounciation? It's here

Offline Troncoso

JGO Coder

Medals: 20

« Reply #8 - Posted 2013-10-04 13:50:24 »

That's just your first name?
Offline dermetfan

Senior Member

Medals: 11

« Reply #9 - Posted 2013-10-05 00:43:46 »

I am SO bookmarking this. Thanks for this valuable resource!

Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Online SHC
« Reply #10 - Posted 2013-10-05 04:44:24 »


We don't split the names into first name and last name. My full name is 'Chilakapati Ram Charan Sri Harsha' and I prefer it to be 'Sri Harsha Chilakapati'



Online SHC
« Reply #11 - Posted 2013-11-11 13:52:32 »

Thanks everybody for making it reach 20,000 views!

Offline gimbal

JGO Coder

Medals: 25

« Reply #12 - Posted 2013-11-14 15:24:27 »

Your tutorials certainly look a lot better written than the NeHe ones that people used to harp about back in the day that OpenGL was still cool. I hope you can keep it up. Tutorials are good when they have more pictures + explanation than code dumps; if you can keep that up I will certainly link people to your stuff in the future Smiley
Online SHC
« Reply #13 - Posted 2013-11-14 15:55:28 »


Thank you very much. I'll do my best to keep them up.

Online SHC
« Reply #14 - Posted 2014-01-30 08:41:13 »

Thanks everybody for making it reach 50,000 views!

Online SHC
« Reply #15 - Posted 2014-04-06 05:15:01 »


Will you please unlock these threads for me?

Thanks in advance.

Online SHC
« Reply #16 - Posted 2014-04-15 18:44:28 »

I've been moving this series to my website at

Offline Riven
« League of Dukes »

JGO Overlord

Medals: 605
Projects: 4
Exp: 16 years

Hand over your head.

« Reply #17 - Posted 2014-04-15 18:46:47 »

I only saw your request today. I'll do it when I get home.

Hi, appreciate more people! Σ ♥ = ¾
Learn how to award medals... and work your way up the social rankings
Pages: [1]
  ignore  |  Print  


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

The first screenshot will be displayed as a thumbnail.

xsi3rr4x (12 views)
2014-04-15 18:08:23

BurntPizza (11 views)
2014-04-15 03:46:01

UprightPath (24 views)
2014-04-14 17:39:50

UprightPath (10 views)
2014-04-14 17:35:47

Porlus (27 views)
2014-04-14 15:48:38

tom_mai78101 (49 views)
2014-04-10 04:04:31

BurntPizza (108 views)
2014-04-08 23:06:04

tom_mai78101 (208 views)
2014-04-05 13:34:39

trollwarrior1 (176 views)
2014-04-04 12:06:45

CJLetsGame (182 views)
2014-04-01 02:16:10
List of Learning Resources
by Longarmx
2014-04-08 03:14:44

Good Examples
by matheus23
2014-04-05 13:51:37

Good Examples
by Grunnt
2014-04-03 15:48:46

Good Examples
by Grunnt
2014-04-03 15:48:37

Good Examples
by matheus23
2014-04-01 18:40:51

Good Examples
by matheus23
2014-04-01 18:40:34

Anonymous/Local/Inner class gotchas
by Roquen
2014-03-11 15:22:30

Anonymous/Local/Inner class gotchas
by Roquen
2014-03-11 15:05:20 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‑
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!