Skip to content

leafvmaple/Zongine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

59 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Zongine

A Modern DirectX 11 Game Engine

License Platform DirectX

English | ็ฎ€ไฝ“ไธญๆ–‡

๐Ÿ“– Overview

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.

Key Features

  • ๐ŸŽจ 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

๐Ÿ› ๏ธ Tech Stack

Core Technologies

  • Graphics API: DirectX 11
  • Programming Language: C++
  • UI Framework: Qt 6
  • Build Tools: Visual Studio 2019+, CMake

Third-Party Libraries

  • DirectXTex: Texture loading and processing
  • Effects11 (FX11): Shader effects system
  • NVIDIA Flex: Advanced physics simulation
  • Qt 6: Editor UI framework

๐Ÿ—๏ธ Architecture

Engine Systems

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)

Rendering Pipeline (RenderGraph)

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

Component System

The engine supports the following component types:

  • MeshComponent: Mesh rendering
  • MaterialComponent: Material properties
  • SkeletonComponent: Skeletal animation
  • NvFlexComponent: Flex physics simulation
  • CameraComponent: Camera
  • TransformComponent: Transform matrix
  • NameComponent: Entity naming

๐Ÿš€ Getting Started

Requirements

  • Windows 10/11
  • Visual Studio 2019 or higher
  • DirectX 11 compatible graphics card
  • Qt 6.x SDK (for editor)
  • CMake 3.15+ (optional)

Build Instructions

  1. Clone the repository
git clone https://github.com/leafvmaple/Zongine.git
cd Zongine
  1. Initialize submodules (if any)
git submodule update --init --recursive
  1. Open the solution
# Open with Visual Studio
start Zongine.sln
  1. Configure Qt environment

    • Ensure Qt Visual Studio Tools extension is installed
    • Configure Qt 6 path
  2. Build the project

    • Select Debug or Release configuration
    • Build the Editor project or Simple example project

Running the Editor

After building, run Editor.exe:

.\x64\Debug\Editor.exe

๐Ÿ“ Project Structure

Zongine/
โ”œโ”€โ”€ 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

๐Ÿ“š Documentation

  • RenderGraph Guide - Detailed rendering pipeline usage documentation
  • TODO - Feature development and roadmap

๐ŸŽฏ Roadmap

  • Improve material system
  • PBR rendering support
  • Post-processing effects system
  • More physics effects
  • Scene serialization and loading
  • Asset hot-reloading

๐Ÿค Contributing

Issues and Pull Requests are welcome!

๐Ÿ“„ License

This project is licensed under the BSD 3-Clause License.

Copyright (c) 2025, Zohar Lee

๐Ÿ™ Acknowledgments

Thanks to the following open source projects:

๐Ÿ“ง Contact


Made with โค๏ธ by Zohar Lee

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published