First Steps with OpenGL

This is where my computer graphics journey began. Around the summer of 2016, just as I was starting at HTL and only 14 years old, I became fascinated with the idea of building my own 3D engine. I knew some Java, but I was well aware at the time that I barely had a clue what I was doing. I found ThinMatrix's OpenGL tutorial series on YouTube and worked through it episode by episode. A lot of it was copying code, but getting the Stanford dragon to render on my screen for the first time felt genuinely incredible.

Chess

Download

By early 2017 I had a rough 3D renderer and needed something to actually build with it. The first project was chess, rendered in 3D with move validation and two game modes. Standard chess was one, and the other was Racing Kings, a variant where both players race their kings to the back rank. Every UI element was hand-coded, and the renderer covered the basics: Phong shading, OBJ loading, SDF font rendering, an orbit camera, and 3D object picking, most of which came from the ThinMatrix tutorials.

3D chess game
3D chess game

3D Snake

Download

The second project was a snake game on a 3D grid. Reading depth on a grid is tricky, so I added three orthographic shadow maps cast from different directions to give the scene enough spatial cues to play comfortably. I also put together a very basic GUI with image buttons and some simple layout primitives, a step up from hand-coding every interface element as I had done for chess.

3D snake game
3D snake game

My understanding of OpenGL was still shaky throughout all of this, but these projects gave me a foundation to build on. I returned to 3D rendering a few years later with a much clearer head in Learning OpenGL 4+.