Ragnar Engine

A basic 3D game engine made with OpenGL and C++

If the video doesn't work, click HERE

About the game engine

This game engine was made for a university project with another classmate. It contains the most basic game engine mechanics. It is made with OpenGL and C++ from scratch. It contains an Entity Component System, a scene serializer and entities in json format. It also contains Frustum Culling to avoid drawing all those objects that are not visible in the camera and mouse picking to select objects. It also contains texture and model loading that are saved in binary format and a resource system to manage all the assets. And finally it also has an audio system implemented with Wwise, a middleware widely used in the videogame industry.

About the creation of the game engine

This project is perhaps one of the biggest projects I have ever done. This project helped me a lot to grow as a programmer, to do things the right way and to care even more that my code was clean and efficient. I learned to use profiling tools such as Optick (to check in which functions the code was slower and needed to be optimised) or MMGR (to keep track of memory and avoid memory leaks). It also helped me to get to know std better, as I hadn't worked with it much before, and thanks to this project I was able to familiarise myself with this library.

Third Party Libraries

Several external libraries were used to create this game engine. This project helped me to learn about certain libraries that are widely used in the videogame industry and that I didn't know about. The libraries that were used to create this game engine are the following:

  • Assimp
  • DevIl
  • Glew
  • ImGui
  • Json
  • MathGeoLib
  • Mmgr
  • Optick
  • PhysFS
  • SDL
  • Wwise

More information

To check the website, click HERE
To check the repository, click HERE

Download