A lightweight, modular game engine being built from the ground up with a focus on Data-Oriented Design (DOD) and high-performance rendering.
Unlike traditional OOP based engines, TheEngine prioritizes memory layout and cache efficiency. By utilizing Data-Oriented Design (DOD) patterns, the engine organizes data in contiguous arrays to maximize cache locality and CPU throughput.
- Custom ECS System: aka411/ecs-engine
- Memory Layout: Contiguous component arrays for minimal cache misses.
- glTF 2.0 (Only Core Profile): The engine exclusively supports the glTF (Graphics Library Transmission Format), focusing on this standard for efficient asset loading.
- Batched Rendering: Utilizes Multi-Draw Indirect (MDI) to significantly reduce draw call overhead and batch submission.
- Bindless Texturing: Leverages modern OpenGL extensions to reduce CPU overhead and draw call state changes.
- PBR Material Support: PBR Metallic-Roughness workflow support.
- SDF Text Rendering(Single-Channel): High-quality, resolution-independent typography using Signed Distance Fields.
- Dynamic Shader Generation: Shaders are automatically generated based on the specific Vertex Format of the mesh.
- Skeletal Animation: Support for skinned meshes and bone hierarchies.
- Custom GPU Sub-Allocators: Bespoke GPU memory buffer management to reduce fragmentation and driver overhead.
- Efficient Buffer Management: Specialized handling for vertex, index, and uniform data.
- Custom UI System: A lightweight, UI framework built to integrate directly with the engine's data flow.
- Lighting: Simple single-light implementation.
Check out the latest progress in the video below:
TheEngineDemoReel.mp4
- Asset: "Reap the Whirlwind" by toomanydemons
- License: CC BY 4.0
- Note: This asset is not included in this repository. It is showcased for demonstration purposes only.
TheEngine is currently undergoing a major architectural redesign. I am applying lessons learned from the initial implementation to make the engine more modular, cleaner, and even more performant.
- Current State: The main branch may not be in an easily buildable state as focus has shifted to the new design in a separate development branch.
- Goal: A more robust modular design with clean code that expands on the existing DOD principles while adding new features.
Note: As the engine is currently undergoing a major architectural redesign, the main branch is not in a stable, buildable state. Active development is occurring in a separate feature branch.
- Compiler: C++20 or higher (MSVC, Clang, or GCC).
- Build System: CMake 3.17+.
- Graphics: OpenGL 4.6 with Bindless Texture extension support.
This project is currently under the Apache 2.0 License.
Note: "TheEngine" is a working title. The project is an exploration of how modern hardware can be pushed using DOD patterns.