A modular, lightweight C++ game engine targeting 3D and (eventually) lightweight 2D games.
Zenith Engine is built with modern C++20/C++23 standards and designed for clean, scalable architecture. The engine uses SDL3 for cross-platform window and input abstraction, with support for multiple rendering backends including OpenGL and Vulkan.
Current Version: v0.1.0
- LayerStack System - Flexible layer management for game and editor systems
- Type-Safe Event System - Custom event dispatching with compile-time safety
- Input Abstraction - Unified input handling with per-frame state updates
- Multi-Backend Rendering - OpenGL and Vulkan support(OpenGL may be removed)
- Timestep Management - Consistent delta time system for smooth updates
- Memory Tracking - Optional memory profiling and leak detection
- Integrated Profiling - Built-in Tracy profiler support
Zenith Engine is designed to be straightforward to build with minimal dependencies. Currently tested on:
- Windows 10/11 with Visual Studio 2020+
- Linux with GCC 11+ or Clang 12+
Make sure you have the following installed:
- CMake 3.24 or higher
- Git
- Vulkan SDK (required for Vulkan backend)
- A C++20 compatible compiler
- Clone the repository:
git clone --recursive https://github.com/StudioAeon/Zenith.git cd Zenith
- Configure and build:
cmake -B build -DCMAKE_BUILD_TYPE=Release cmake --build build --config Release
- Run the editor
- On Linux
./build/Editor/Zenith-Editor
- On Windows (CMD or PowerShell)
.\build\Editor\Release\Zenith-Editor.exe
- On Linux
ZENITH_TRACK_MEMORY=ON/OFF
- Enable memory tracking (default: ON, disabled in Release)ZENITH_TESTS=ON/OFF
- Build unit tests (default: ON)CMAKE_BUILD_TYPE=Debug/Release
- Build configuration
Run the test suite:
cmake --build build --target run-tests
- 3D rendering pipeline
- Entity-Component-System (ECS)
- Scene Serialization and management
- Asset pipeline and hot-reload
- Scripting integration (Lua)
- Physics integration
- Audio System
This is currently a personal development project. If you're interested in contributing or have questions, please reach out!
This project is licensed under the MIT License.