-
Notifications
You must be signed in to change notification settings - Fork 1
FAQ
Common questions about SparkEngine — what it is, who it's for, and how to get started.
SparkEngine is a free, open-source 3D game engine written in C++23. It started as an FPS engine and is evolving into a general-purpose engine supporting FPS, RPG, MMO, open-world, racing, platformer, and RTS genres. It ships with DirectX 11 rendering, Jolt Physics, XAudio2 spatial audio, AngelScript scripting, an EnTT ECS, and an ImGui-based visual editor.
Yes. SparkEngine is licensed under the Spark Open License — no royalties, no fees, fully free for commercial use. The license includes anti-plagiarism protection to prevent wholesale copying without attribution.
| Platform | Status |
|---|---|
| Windows 10+ | Primary (fully supported) |
| Linux x64 | Experimental (GCC 13+, Clang 17+) |
| macOS | Experimental (Apple Clang) |
Windows is the primary development platform. Linux and macOS builds run in CI and are usable but may have rough edges.
SparkEngine ships with example game modules for FPS, platformer, racing, RPG, RTS, and MMO. The ECS architecture is genre-agnostic — you can build any type of game. The engine includes systems for weapons, vehicles, inventory, quests, dialogue, AI, networking, and more.
SparkEngine is smaller and earlier in development than those engines. Key differences:
- Open-source C++23 — You have full source access and can modify anything. No black-box runtime.
- No editor lock-in — Game logic lives in C++ modules or AngelScript scripts, not in a proprietary project format.
- MMO-ready architecture — Built-in area server architecture, seamless world streaming, and collaborative editing (inspired by HeroEngine).
- Lightweight — The full engine compiles in 2–5 minutes. No gigabyte downloads.
- Trade-off — Fewer ready-made assets, smaller community, and less polish than mature engines.
C++ is the primary language, but you have options:
- AngelScript — A C-like scripting language with hot-reload. Write gameplay logic without recompiling the engine.
- Visual Scripting — A node-based visual scripting system that compiles to AngelScript. No code required.
- C++ Modules — For full engine access, write a game module in C++23.
Artists and level designers can use the editor without writing code at all — see the Artist Workflow Guide.
- A C++23 compiler: MSVC v143+ (VS 2022), GCC 13+, or Clang 17+
- CMake 3.25+
- Git (for submodules)
See Getting Started for full platform-specific instructions.
A clean Release build takes 2–5 minutes on a modern machine with 8+ cores. Incremental builds after small changes take seconds.
Yes. The engine has multiple fallback paths:
| Backend | GPU-less fallback |
|---|---|
| D3D11 | WARP (Windows software rasterizer) |
| D3D12 | WARP |
| Vulkan | Lavapipe (Mesa) |
| OpenGL | llvmpipe (Mesa) |
| None | NullRHIDevice (headless, no rendering) |
Use -headless to run with no graphics at all (for dedicated servers or automated testing).
Use Xvfb (virtual framebuffer) with Mesa software rendering:
sudo apt-get install -y xvfb libgl1-mesa-dri
Xvfb :99 -screen 0 1024x768x24 &
DISPLAY=:99 LIBGL_ALWAYS_SOFTWARE=1 ./SparkEngineYes. Use the minimal CMake preset or disable individual features:
cmake --preset minimal # Core engine only
cmake -B build -DENABLE_EDITOR=OFF # Everything except editor| Argument | Description |
|---|---|
-headless |
No graphics or audio (dedicated server mode) |
-game <path> |
Load a specific game module DLL/SO |
-window-size WxH |
Override window resolution (e.g., 1920x1080) |
-test-frames N |
Run N frames then exit (for benchmarking) |
-fullscreen |
Start in fullscreen mode |
-console / -noconsole
|
Force-enable or disable the debug console |
-scene <path> |
Load a specific scene on startup |
Press F1 while the engine is running, or build with ENABLE_EDITOR=ON (default on Windows). The editor is an ImGui-based overlay with 56 panels.
The editor ships with 56 panels covering scene editing, asset management, physics, gameplay, audio, scripting, profiling, and more. The 7 core panels shown by default are:
- Scene View — 3D viewport with gizmos
- Hierarchy — Scene graph tree
- Inspector — Component property editor
- Asset Browser — File browser with thumbnails
- Console — Command and log panel
- Game View — In-game preview
- Profiler — Performance metrics
All other panels are available from the Window menu. See Editor Walkthrough for a practical guide.
Yes. SparkEngine supports collaborative multi-user editing sessions (inspired by HeroEngine). One user hosts, others join. Entity locks prevent conflicts. See Collaborative Editing.
Create a game module — a DLL/SO that implements the IModule interface. The engine auto-discovers modules in the GameModules/ directory. See Creating a Game Module for a step-by-step guide, or Making Your First Game for a tutorial.
AngelScript — a statically-typed scripting language with C-like syntax. Scripts hot-reload automatically when you save changes to disk (no recompile needed).
Yes. The Visual Scripting panel provides a node-based editor that compiles to AngelScript under the hood. You can mix visual scripts with hand-written AngelScript.
SparkEngine uses EnTT for its Entity Component System. Entities are lightweight IDs, components are plain data structs, and systems operate on component groups. The engine provides 79 built-in component types and 67 systems. See Entity Component System.
The engine includes a UDP client/server networking stack with entity replication, client-side prediction, and lag compensation. Start with the Multiplayer Quick Start guide, then see Networking for details.
| Backend | Status | Platform |
|---|---|---|
| DirectX 11 | Primary | Windows |
| DirectX 12 | Experimental | Windows |
| Vulkan | Experimental | Windows, Linux |
| OpenGL 4.5 | Experimental | Windows, Linux, macOS |
| Metal | Experimental | macOS |
| NullRHI | Headless fallback | All |
All backends implement the same RHI Abstraction Layer.
Forward, deferred, forward+, and clustered rendering pipelines. PBR materials, cascaded shadow maps, SSAO, SSR, volumetric fog, bloom, HDR tonemapping (ACES, Filmic, Reinhard, AgX), TAA/FXAA/MSAA, GPU particles, decals, image-based lighting, mesh shaders, GPU-driven rendering, and dynamic quality scaling.
DXR 1.1 ray tracing is available on the D3D12 backend (Windows, SM6.5+ GPU required). A hybrid ray tracing mode blends rasterization with selective ray-traced effects. See DXR Raytracing and Hybrid Ray Tracing.
Jolt Physics — a modern, high-performance physics engine. It supports rigid bodies, 15 collision shapes, 12 constraint types, character controllers, vehicles, ragdolls, cloth simulation, and multithreaded job dispatch.
Yes. Use console commands:
physics_gravity 0 -9.81 0 # Set gravity
physics_timestep 0.01667 # Set fixed timestep
physics_debug on # Toggle debug visualization
physics_metrics # Show performance stats
Or edit [Physics] in settings.ini. See Configuration Reference.
XAudio2 on Windows with miniaudio as a cross-platform fallback. The audio system supports 3D spatial audio, Doppler effects, distance attenuation, mix buses, DSP effects (reverb, EQ, compressor), and volume channels (master, SFX, music, voice).
Yes. The Mod System handles mod discovery, load order, dependency checking, and enable/disable toggling. The editor includes a Modding Panel for managing mods.
| Type | Formats |
|---|---|
| 3D Models | FBX, glTF/GLB, OBJ |
| Textures | PNG, JPG, TGA, DDS, HDR |
| Audio | WAV, OGG, MP3, FLAC |
| Scenes |
.scene (JSON-based) |
See Asset Pipeline and Asset Format Specifications.
- Check that your GPU supports DirectX 11 (Windows) or OpenGL 4.5 (Linux)
- Update GPU drivers
- Check
spark.logfor error messages - Try a Debug build for better error output
- Try
-headlessto rule out graphics issues
See Troubleshooting for a comprehensive list of known issues and fixes.
Check which job failed:
| Job | What it checks |
|---|---|
check-format |
clang-format compliance |
build-linux-gcc |
GCC compilation + tests |
build-linux-clang |
Clang compilation + tests |
build-linux-asan |
Memory safety (ASan + UBSan) |
build-windows-vs2022 |
MSVC compilation + tests |
Jobs marked continue-on-error (VS2026, MinGW, macOS, clang-tidy) are warnings, not blockers. See Contributing for the full CI overview.
- Troubleshooting — Common issues and fixes
- GitHub Issues — Bug reports and feature requests
- Engine console: type
helpto list all commands, orhelp <command>for details
- Getting Started — Build and run the engine
- Making Your First Game — Step-by-step game tutorial
- Quick-Start Tutorial — Your first 10 minutes
- Configuration Reference — All settings and commands
- Editor Walkthrough — Practical editor guide
- Performance Tips — Optimization guide
Published from b72b57e59f26. 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