A modern C++20 game engine built with OpenGL 4.5, featuring a complete editor interface and entity component system.
- Application Framework - Window management, input handling, event system
- Entity Component System - Built on EnTT with 9-phase system execution
- Resource Management - Async loading, caching, and hot-reload support
- Deferred Rendering Pipeline - G-Buffer based lighting with PBR materials
- Shadow Mapping - Cascaded shadow maps (CSM) for directional lights, atlas-based spot light shadows
- Particle System - GPU compute-based particles with configurable emitters
- Post-Processing - HDR tonemapping, gamma correction
- Dockable Panels - Scene hierarchy, inspector, viewport, console, asset browser
- Transform Gizmos - Translate, rotate, scale with snapping support
- Editor Camera - Orbit, pan, zoom controls
- Play Mode - Scene state preservation and restoration
- Multiple controller types: FPS, Third-Person, Orbital
- Smooth interpolation and configurable parameters
- C++20 compatible compiler (GCC 11+, Clang 13+, MSVC 2022+)
- CMake 3.20+
- OpenGL 4.5 capable GPU
# Clone the repository
git clone https://github.com/Perkybeet/prisvector-engine.git
cd prisvector-engine
# Configure and build (Release)
cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build --config Release
# Run the editor
./build/bin/Sandbox| Option | Default | Description |
|---|---|---|
ENGINE_BUILD_SANDBOX |
ON | Build the demo application |
ENGINE_BUILD_TESTS |
OFF | Build unit tests |
ENGINE_ENABLE_PROFILING |
OFF | Enable performance profiling |
engine/
├── core/ # Application, window, input, logging
├── ecs/ # Entity component system
├── renderer/ # OpenGL rendering, shaders, materials
├── camera/ # Camera controllers
├── editor/ # Editor panels and tools
├── events/ # Event dispatcher
├── math/ # AABB, Ray, interpolation utilities
├── resources/ # Asset loading and management
└── hotreload/ # File watching, shader hot-reload
assets/
└── shaders/ # GLSL shaders (deferred, shadows, particles, post-process)
sandbox/
└── demos/ # Demo applications
All dependencies are fetched automatically via CMake FetchContent:
- GLFW 3.4 - Window and input
- GLAD 2.0.6 - OpenGL loader
- GLM 1.0.1 - Mathematics
- EnTT 3.13.2 - ECS framework
- spdlog 1.14.1 - Logging
- Dear ImGui 1.91.6 - Editor UI
- ImGuizmo - Transform gizmos
- stb - Image loading
Alt + Left Mouse- Orbit around focal pointAlt + Middle Mouse- PanAlt + Right Mouse- ZoomScroll Wheel- Zoom
W- Translate modeE- Rotate modeR- Scale modeClick- Select entity
This project is proprietary software. See LICENSE for terms.
Yago López prado @Perkybeet