Summary
These are images from my own person game engine, written in C++ from the ground up, using OpenGL, Qt, and GLM. It was first created in 2013 and was refactored and developed for about two years. While I have more recently found myself spending much more time using existing game engines, like Unity, there are many valuable aspects of this personal project that has lead me to keep up work on it in my spare time. A major point of this being that I have gained an understanding and appreciation for the deeper, inner workings involved in a game engine, and in graphics rendering as a whole. Simultaneously it has given me experience in working with the very powerful and widely used technologies mentioned before.
Features
Graphics Rendering


A from-scratch 3D image renderer using OpenGL and the computer’s graphics hardware. Uses a custom tool built in C# to convert .OBJ models into a custom geometry data format that can then be read-in, interpreted, and displayed on screen.
Custom Cameras, Lighting, Shaders
A variety of custom GLSL shaders to implement different uses and combinations of
- specular, diffuse, and ambient lighting,
- the use of diffuse, ambient occlusion, alpha, specular, and normal maps for texture,
- and shadows, reflections, and cube maps to enhance the environment.
Physics


A basic physics framework. Available functionality ranges from common calculations involved in using motion and gravity, to more complicated calculations involved in collision and a variety of types of external forces.
AI
The start of a basic AI framework using A* pathing.
Entity Component System
At a later point in the engine’s development, everything was drastically overhauled to move from an object-oriented approach to an entity component approach regarding game objects and their differing and common elements.