A work-in-progress 3D game engine built from scratch in modern C++.
Nocturne Engine is a learning project exploring low-level game engine design, featuring a custom Entity Component System and OpenGL rendering pipeline. Built to understand how modern game engines work under the hood.
Screen.Recording.2026-03-08.213308.mp4
Custom Entity Component System (ECS) architecture
- Entities and Entity Manager/Factory
- Components and Component Manager/Factory
- Rendering System: 3D rendering, materials, phong lighting model
- Resource Manager
- Global Event Bus
GLFW window management
The engine follows data-oriented design principles
- Contiguous component storage for cache efficiency (using eg. Sparse Sets)
- Separation of data (components) and behavior (systems)
- Rendering data structures prepared for future Vulkan and DirectX implementations
Make sure to download included submodules with:
git submodule init
git submodule updateThen build with cmake for your preferred C++20 compatible compiler :)
cmake -B build
cmake --build build- C++20 compatible compiler
- CMake 3.15+
- OpenGL 3.3+ compatible GPU
Builds both on Arch (GCC and Clang) and Windows 11 on MSVC (VS2022).