OpenGL Game Engines

Engine Development - Programming

Roman Wecker

The Backstory

I have developed two own game engines so far. Both engines were developed in Java with the LWJGL framework and the OpenGL graphics API. I did not develop everything from scratch myself, otherwise engine development can take several years. I worked through tutorials on various topics to put the final engine together. I also read up on various computer graphics algorithms.

The biggest weakness of my first engine was that objects were not arranged hierarchically. This made it difficult to apply simple animations to child objects. For the second engine, I came up with my own optimised scene graph. All objects are arranged hierarchically in a tree and each object stores its own transformation matrix. This means that the transformation matrices of all objects do not have to be recalculated in every frame, but only the subtrees where a transformation was applied to the parent node. The tree structure also makes it much easier to implement acceleration structures such as BVH in the future.