-
Notifications
You must be signed in to change notification settings - Fork 1
Home
Spark Engine is a free, open-source 3D game engine written in C++23. Originally designed for first-person shooters, Spark Engine is evolving into a general-purpose engine supporting FPS, RPG, MMO, open-world, and other genres. It ships with a multi-backend RHI (DirectX 11/12, Vulkan, OpenGL, Metal, NullRHI), global illumination, GPU-driven rendering, mesh shaders, DXR ray tracing, Jolt Physics, XAudio2 spatial audio, AngelScript hot-reload scripting with visual scripting and Shader Graph, an EnTT-based ECS architecture, an ImGui visual editor with dockable panels, and HeroEngine-inspired features including seamless world streaming, area-based server architecture, and collaborative multi-user editing.
Release hardening in progress — SparkEngine is currently source-usable, but no versioned release has been published. The repository's readiness gates distinguish implemented features from verified, supported release claims.

SparkEditor default layout with the Spark Professional theme. Open more panels from the Window menu.
| Platform | Status | Compiler |
|---|---|---|
| Windows 10+ | Primary | MSVC v143 (VS 2022), v145 (VS 2026) |
| Linux x64 | Experimental | GCC 13+, Clang 17+ |
| macOS 11+ | Experimental | Apple Clang with C++23 |
See System Requirements for minimum and recommended hardware per platform (CPU, RAM, GPU, VRAM), runtime resource footprint, and the build toggles that move the needle.
- Rendering — Multi-backend RHI (DirectX 11/12, Vulkan 1.4, OpenGL 4.6, Metal, NullRHI) with forward, deferred, forward+, and clustered pipelines via a declarative RenderGraph. PBR materials, cascaded shadow mapping, SSAO, SSR, volumetric lighting/fog, bloom, HDR tone mapping, TAA/FXAA/MSAA, IBL, GPU particles, decals, water rendering, sky atmosphere, and quality presets. Global illumination (DDGI + Adaptive Probe Volumes), GPU-driven rendering (compute culling, HiZ occlusion), mesh shaders (meshlet pipeline), virtual texturing, DXR 1.1 ray tracing (reflections, shadows, AO, GI), Shader Graph (35+ nodes, HLSL generation), and FSR upscaling.
- Physics — Jolt Physics with rigid bodies, 15 collision shape types, 12 constraint types, raycasting, overlap queries, physics materials, character controller, vehicle physics (wheeled/tracked/motorcycle), ragdoll, soft body/cloth, destruction/fracture, deterministic mode, and debug draw.
- Audio — XAudio2 3D spatial audio with Doppler effects, distance attenuation, volume channels, audio mixer, and object pooling. Miniaudio as cross-platform fallback.
- Gameplay — ECS architecture (EnTT components and systems), FPS player controller, weapons, vehicles, inventory, quests, achievements, abilities/conditions, event response system, dialogue, destruction, replay, day/night cycle, weather, terrain with quadtree LOD, tween/coroutine systems, and accessibility (colorblind modes, subtitles, reduced motion).
- AI — Behavior trees, NavMesh A* pathfinding (Recast/Detour), perception system (vision/hearing/memory), steering behaviors (seek/flee/pursue/evade/flocking), tactical points (EQS-like), cover/formation system, AI budget limiter for 100+ agents, and AI director.
- Animation — Skeletal animation, state machines, multi-layer blending, IK (two-bone, look-at, FABRIK), root motion, retargeting, ragdoll blending, cloth simulation, cinematic sequencer, FBX/glTF import.
- Scripting — AngelScript with hot-reload, lifecycle callbacks, full engine API bindings, client/server separation. Visual scripting with 60 node types that compiles to AngelScript. Lua also supported. Mod system.
- Networking — UDP client/server, entity replication, client-side prediction, lag compensation (hitbox rewinding), delta snapshots. HeroEngine-inspired MMO architecture with AreaServers, WorldServer, seamless entity migration, and dynamic load balancing.
- Editor — ImGui-powered visual editor with 59 dockable panels: scene hierarchy, inspector, gizmos, Shader Graph material editor, visual script editor, cinematic sequencer, dialogue editor, AI debugger, command palette (Ctrl+P), collaborative multi-user editing, and 200+ debug console commands.
There are no supported release or nightly binary downloads yet. Clone the canonical repository and follow the Build Guide. CI artifacts, when present, are diagnostic snapshots for a specific run rather than releases.
git clone --recurse-submodules https://github.com/Krilliac/SparkEngine.git
cd SparkEnginePick the path that matches your role:
| Role | Recommended reading order |
|---|---|
| New to SparkEngine | Getting Started → Quick-Start Tutorial → FAQ |
| Programmer | Getting Started → Architecture Overview → Creating a Game Module → Entity Component System |
| Artist / Designer | Getting Started → Quick-Start Tutorial → Editor Walkthrough → Artist Workflow Guide |
| Gameplay Designer | Making Your First Game → Gameplay Systems → Scripting with AngelScript |
| Multiplayer Developer | Multiplayer Quick Start → Networking → Dedicated Server |
| Optimizer / QA | Performance Tips → Configuration Reference → Profiler and Debugging |
| Upgrading | Migration Guide → Asset Migration |
wiki/_Sidebar.md is the canonical table of contents for all wiki pages and categories.
- Documentation portal
- Guides, Tutorials, and Samples
- Build Guide and Dependencies
- Browse full wiki index
- API Reference
- Documentation Index
SparkEngine enforces code quality automatically:
- clang-format — Enforced in CI on every PR (Microsoft-based style, Allman braces, 120-col, 4-space indent)
- clang-tidy — Static analysis for bugprone, modernize, performance, and readability checks
- Comprehensive unit tests — CTest suite covering all major subsystems (live counts in Project Statistics)
- 5 sanitizers — ASan, UBSan, LSan, TSan, MSan in CI
- Code coverage — lcov reports generated per CI run
See Contributing for the full pre-commit checklist.
SparkEngine is licensed under the Spark Open License — no royalties, no fees, anti-plagiarism protected.
| Metric | Count |
|---|---|
| Header files | 994 |
| ECS Components | 79 |
| Engine System Classes | 75 |
| Editor Panels | 65 |
| Test files | 573 |
| Test definitions | 6859 |
| Wiki pages | 198 |
Published from 8fd2c5bdc5cd. Edit the canonical source in wiki/.
- Documentation
- Docs route
- Wiki index
- Guides
- Tutorials
- Samples
- Examples
- API Reference
- API route
- Reference
- Build Guide
- Dependencies
- FAQ
- Changelog
- Roadmap
- Contributing
- Code of Conduct
- Home
- FAQ
- Getting Started
- Quick-Start Tutorial
- Making Your First Game
- Making Your First Multiplayer Game
- Artist Workflow Guide
- Editor Walkthrough
- Migration Guide
- How SparkEngine Works
- Architecture Overview
- Engine Architecture Flowchart
- Creating a Game Module
- Game Modules (catalog)
- Entity Component System
- Rendering and Graphics
- Physics
- Cloth Simulation
- Audio
- Input System
- Camera System
- Scripting with AngelScript
- Visual Scripting
- AI and Navigation
- Animation
- 2D Systems
- Networking
- Dedicated Server
- Multiplayer Quick Start
- Area Server Architecture
- Scene Management
- Large World Support
- Collaborative Editing
- Coroutine System
- Event System
- Event Response System
- Job System
- UI System
- UI Layout Extensions
- Localization
- Dialogue System
- Destruction System
- Replay System
- Achievement System
- Loading System
- Mod System
- Content Delivery
- Tween System
- Memory Integrity
- Gameplay Systems
- Terrain and Procedural Generation
- Save System
- Persistence System
- Day Night Cycle and Weather
- Cinematic Sequencer
- Runtime Prefabs
- SparkEditor
- Editor Tutorials
- SparkConsole
- SparkDaemon
- Shader Pipeline
- Asset Pipeline
- Asset Validation
- Asset Migration
- Game Packaging
- Online Services
- DataTable System
- Loot and Crafting System
- CSG System
- Font System
- Timer Manager
- Movie Render Pipeline
- HLOD and World Partition
- Remote Debug System
- Selection Manager
- Asset Dependency Graph
- Editor Automation
- File Watcher
- Project Templates
- System Requirements
- VR Support
- Mobile Platform
- Accessibility
- Platform Input
- Cross-Compilation: Wine Testing
- RHI Abstraction Layer
- D3D11 Backend
- D3D12 Backend
- Vulkan Backend
- OpenGL Backend
- Metal Backend
- DXR Raytracing
- Hybrid Ray Tracing
- Upscaling (DLSS/FSR)
- Render Graph
- Shader Graph
- GPU Particles
- GPU-Driven Rendering
- Volumetric Fog
- Volumetric Clouds
- Global Illumination
- Virtual Texturing
- Water Rendering
- Clustered Lighting
- Material System
- Post-Processing
- Shadow System
- Particle System
- Decal System
- Sky and Atmosphere
- Foliage System
- Mesh Shaders
- Neural Rendering
- Configuration Reference
- Performance Tips
- Benchmark Framework
- Threading Model
- Memory Safety
- Memory Management Patterns
- Build System and CMake Modules
- Profiler and Debugging
- Performance Profiling Guide
- Telemetry System
- Golden Image Testing
- Utilities
- Testing
- Codebase Statistics
- Codebase Health
- Error Handling Patterns
- Hot Reload Overview
- Troubleshooting
- Contributing
- Workflow Patterns
- Build Optimizations
- CI Reproducible Builds
- GitHub API and PR Checks
- Git Rebase Conflicts
- Clang-Format
- Code Quality Violations
- AI Bloat Pattern
- MinGW + Wine Cross-Compilation
- Live Editor Testing
- Engine & Renderer Landscape
- DuetOS Portability Catalog
- Five-Engine Analysis
- Eleven-Engine Analysis
- ThorVG / Unity Graphics Analysis
- Advanced Techniques Catalog
- Third-Party Library Evaluation
- Engine Viability Evaluation
- Engine Feature Recommendations
- Project Recommendations
- Mac Compatibility Analysis
- Codebase Observations
- Codebase Bloat Audit
- Test Suite Audit
- Documentation Coverage Audit
- ThirdParty Dependencies Audit
- Load Test Baseline
- Gameplay Systems Status
- SparkGame Module Status
- Stub and Abandoned Features
- Memory Integrity System
- Memory Safety Evaluation
- Hardware Acceleration Systems
- Jolt Physics Integration
- GPU/CPU Separation Plan
- Daemon Services Architecture
- Reflection & Polymorphism Refactoring Plan
- SparkBuild In-Tree
- Wine No-JobSystem Breakthrough
- Wine Role and Fallback Tiers