C++/OpenGL 3D Engine (feat. ECS, Code Reflection, Voxels)

The idea

In my free time I got the inspiration to embark il my biggest project so far. Now that I had both experience in engine development and 3D rendering, it was time to accomplish what 8-year old me would have only dreamed of: creating my clone of Minecraft.

As I progressed in the voxel rendering, I took a break to make an ECS to make sure I had a solid structure and modularity for my code, while forcing me to gain experience practicing this pattern that I find interesting. That lead me to add C++ Reflection and an Inspector for my components, and then I realized that I had more fun building on the engine than the initial voxel game itself!

Nowadays, I plan to focus more on improving the engine, having some fun building small games and doing jams along the way to guide me in the next relevant features of the engine.

You can take a peek at the codebase on my GitLab: https://gitlab.com/Totoo98/bessengine.

Key Features

  • Voxel, Mesh and Sprite Renderers (OpenGL)
  • Entity Component System (process 1M entities at 60 fps)
  • C++ compile-time Reflection
  • JSON Serialization
  • In Game Inspector of ECS Entities & Components
  • Voxel swept collisions against AABB
  • UUID-based Resource Management