It's a general purpose game engine using a custom made pathtracing renderer, no OpenGL, Vulkan or DirectX rendering functionalities are used to render viewports.
To learn and create a custom game engine and a 3D renderer from scratch, mainly to understand the basics of how a game engine works and to experiment stuff with C++17.
Windows:
- Install Visual Studio 2022
- Clone repository
- Run GenerateProjectFiles.bat
- Open BagualEngine.sln
- Select Release compilation target for best performance
- Press F5
Note: You can change engine test module being used by editing BEngine::RegisterModules() function.
Linux:
- Doesn't compile atm, support not in plans for now
The engine compiles a game project with engine test modules. It's using ImGUI to aid rendering and debugging. User can create their own modules or simply make engine calls from any other context where the engine is integrate to.
- Scene with node and component structure
- Multithread CPU renderer
- 4 rendering methods including BVH and Embree
- OBJ mesh file importer (only triangles for now, materials not supported atm)
- Super simple to use straight in main.cpp
- Very customizable and easy to improve uppon
- Wireframe rasterizing
- Mirror surfaces
- Portals
- Lighting
- Global Ilumination
- 3D Navmesh
- Audio Occlusion
- Physics
- Input Bindings
- GPU Rendering
- Editor