Zongine is a modern game engine built on DirectX 11, designed with an Entity Component System (ECS) architecture. The engine focuses on providing high-performance rendering capabilities and flexible editor tools, supporting advanced rendering techniques and physics simulation.
-
🎨 Modern Rendering Pipeline
- Frame graph rendering system based on RenderGraph
- Support for Opaque and Order-Independent Transparency (OIT) rendering
- Automatic resource management and dependency resolution
-
🏗️ ECS Architecture
- Entity Component System design pattern
- Modular system architecture (Rendering, Physics, Animation, Input, etc.)
- Flexible component composition
-
🎮 Full-Featured Editor
- Visual editing interface based on Qt 6
- Real-time scene editing and preview
- Entity tree view and component property panel
-
⚡ Physics Simulation
- Integrated NVIDIA Flex physics engine
- Support for soft bodies, fluids, and other advanced physics effects
-
🎬 Asset System
- LLoader asset loading library
- Support for models, textures, materials, skeletal animations, and more
- DirectXTex texture processing
- Graphics API: DirectX 11
- Programming Language: C++
- UI Framework: Qt 6
- Build Tools: Visual Studio 2019+, CMake
- DirectXTex: Texture loading and processing
- Effects11 (FX11): Shader effects system
- NVIDIA Flex: Advanced physics simulation
- Qt 6: Editor UI framework
Engine (Core Engine Class)
├── RenderSystem (Rendering System)
│ └── RenderGraph (Frame Graph Rendering Pipeline)
├── PhysicsSystem (Physics System)
├── NvFlexSystem (Flex Physics System)
├── AnimationSystem (Animation System)
├── CameraSystem (Camera System)
├── TransformSystem (Transform System)
└── InputSystem (Input System)
RenderGraph is the core rendering system of the engine, providing:
- Automatic dependency management and topological sorting
- Flexible Pass system (ClearPass, OpaquePass, OITPass, CompositePass, PresentPass)
- Automatic resource management (RenderTarget, DepthStencil, ShaderResource)
For detailed usage guide, please refer to RenderGraph Guide
The engine supports the following component types:
MeshComponent: Mesh renderingMaterialComponent: Material propertiesSkeletonComponent: Skeletal animationNvFlexComponent: Flex physics simulationCameraComponent: CameraTransformComponent: Transform matrixNameComponent: Entity naming
- Windows 10/11
- Visual Studio 2019 or higher
- DirectX 11 compatible graphics card
- Qt 6.x SDK (for editor)
- CMake 3.15+ (optional)
- Clone the repository
git clone https://github.com/leafvmaple/Zongine.git
cd Zongine- Initialize submodules (if any)
git submodule update --init --recursive- Open the solution
# Open with Visual Studio
start Zongine.sln-
Configure Qt environment
- Ensure Qt Visual Studio Tools extension is installed
- Configure Qt 6 path
-
Build the project
- Select
DebugorReleaseconfiguration - Build the
Editorproject orSimpleexample project
- Select
After building, run Editor.exe:
.\x64\Debug\Editor.exeZongine/
├── Docs/ # Documentation
│ ├── Reference.md # Reference documentation
│ ├── RenderGraph_Guide.md # RenderGraph usage guide
│ └── TODO.md # Development roadmap
│
├── Engine/ # Engine source code
│ ├── 3rd/ # Third-party libraries
│ │ ├── DirectXTex/ # Texture processing library
│ │ ├── FX11/ # Effects11
│ │ └── NVFlex/ # NVIDIA Flex
│ │
│ ├── Include/ # Public header files
│ ├── Shader/ # Shader source code
│ │
│ └── Source/
│ ├── Editor/ # Qt editor
│ ├── Runtime/ # Runtime engine
│ │ ├── Components/ # Component definitions
│ │ ├── Systems/ # System implementations
│ │ ├── RenderGraph/ # Render graph
│ │ └── Entities/ # Entity management
│ ├── LLoader/ # Asset loader
│ ├── Maths/ # Math library
│ └── Simple/ # Simple example
│
├── Lib/ # Compiled library files
├── Product/ # Product output
│ └── data/ # Asset data
└── x64/ # Build output
- RenderGraph Guide - Detailed rendering pipeline usage documentation
- TODO - Feature development and roadmap
- Improve material system
- PBR rendering support
- Post-processing effects system
- More physics effects
- Scene serialization and loading
- Asset hot-reloading
Issues and Pull Requests are welcome!
This project is licensed under the BSD 3-Clause License.
Copyright (c) 2025, Zohar Lee
Thanks to the following open source projects:
- Author: Zohar Lee (leafvmaple)
- Repository: https://github.com/leafvmaple/Zongine