I made a custom game engine in C++ for a university class with the purpose of making custom shaders and a functioning game. It uses an object-oriented architecture and successfully loads and renders meshes, shaders, textures, and also has working audio and framebuffer object.
Full functionality for shader effects such as:
Refraction using environment mapping,
Geometry shader with explosion and recombine effect,
Custom water shader that can be customised for other liquids.