RodEngine is a custom C++ game engine I'm building from scratch. It's currently based on The Cherno's game engine series, which serves as the foundation for learning and early development. Once I complete the tutorials, I plan to expand the engine with my own architecture, features, and tools.
RodEngine is in early development. Expect rapid changes, incomplete systems, and experimental features.
- Windows
- Visual Studio 2022
- Git
- Python 3.13+
- CMake 3.30+
- Platform: Windows
- Language: C++
- Build System: Premake5
- Rendering: OpenGL
- Windowing & Input: GLFW (with minor changes for no windows titlebar support)
- Math Library: GLM
- GUI: ImGui, ImGuizmo
- ECS Library: entt
- Logging: spdlog
- Image Loading: stb_image
- Shader Compilation: Shaderc
- High-performance 3D rendering with support for meshes, models, materials, and textures
- Physically-Based Rendering (PBR) pipeline with real-time lighting and shadows
- Support for multiple rendering APIs (OpenGL, Vulkan, DirectX, Metal)
- Efficient batching, frustum culling, and draw call optimization
- Post-processing effects: bloom, HDR, motion blur, and SSAO
- Built-in 3D scene editor with drag-and-drop functionality
- Visual UI editor for interfaces, menus, and HUDs
- Real-time preview and live editing of scenes and assets
- Asset management for models, textures, shaders, animations, and audio
- Cross-platform support: Windows, Linux, macOS
- 3D spatial audio engine with sound positioning
- Sound effects and music management with mixing, layering, and attenuation
- C# scripting support with hot-reload capability
- Easy-to-use API for engine features and gameplay logic
- 3D physics engine with rigid bodies, colliders, and joints
- Collision detection, resolution, and physics simulation
- Rod’s custom ECS architecture for scalable, data-driven performance
- Multi-threading support and job system for parallelized tasks
Special thanks to The Cherno for the incredible game engine tutorial series, which helped kickstart this project and continues to be a valuable learning resource.
