This project is a lite game engine which has been made from an assignment submission. This, includes an ECS (Entity component system) which can be found in Unity and makes use of multiple libraries such as Dear ImGui, a fast and self-contained UI library, and Assimp, a powerful model loading library. There is also include one notable feature. This being the usage of light volumes.
Currently only OpenGL is fully supported with Vulkan being setup and rendering a triangle.
Included a demo scene. The scene includes:
This project has really allowed me to apply what I have learnt at university and has become a project which I am proud of.
From continuing this project, I have been able to add more features like adding/removing entities, adding/removing components, saving to a file and I am currently rewriting the renderer to become rendering API agnostic.
This project produced many challenges. The biggest challenge was the small amount of knowledge I had with OpengGL. This is due to this being one of the few projects where I interfaced with OpenGL directly. This meant I had a step learning curve with this project. To over come this challenge I used reference materiel from the lectures to help grasp an understanding of OpenGL and used online resources to further my understanding.
This project has taught me much about how graphics are rendered and has given me a great appreciation for render engines. I hope to continue to work on this project in my free time and add more features like audio and materials.
If you have any question or suggests about this project or any other project please do not hesitate to contract me. This is an area in which I would like to learn more in.