Skip to content
github-actions[bot] edited this page Sep 12, 2026 · 56 revisions

Spark Engine

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 with a broad source inventory spanning FPS, RPG, MMO, open-world, and other genres. That inventory includes a multi-backend RHI (DirectX 11/12, Vulkan, OpenGL, Metal, NullRHI), rendering experiments, Jolt Physics, audio paths, scripting tools, an EnTT-based ECS architecture, an ImGui editor, world streaming, server architecture, and collaborative-editing prototypes. Presence in the source tree is not a support or release claim; non-profile breadth remains experimental unless the readiness contract says otherwise.

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 release claims. The only declared profile is the blocked and uncertified stable-v1 Windows 11 x64/MSVC v143 + D3D11/Windows NullRHI + C++ module/SparkGameFPS slice, together with the required Windows editor and delivery-tool products enumerated in readiness.

SparkEditor — ImGui-based visual editor

SparkEditor default layout with the Spark Professional theme. Open more panels from the Window menu.

Platform Support

Platform Status Compiler
Windows 11 x64 stable-v1 target — blocked/uncertified MSVC v143 (VS 2022)
Windows 10 x64 Documented development path — outside stable-v1 MSVC development toolchains
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.

Feature Highlights

  • Rendering — Multi-backend RHI source paths (DirectX 11/12, Vulkan, path-specific OpenGL development contexts, Metal, NullRHI) with forward, deferred, forward+, and clustered pipeline implementations 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 are implementation inventory, not blanket support claims. Global illumination, GPU-driven rendering, mesh shaders, virtual texturing, DXR ray tracing, Shader Graph, and FSR paths remain subject to their declared experimental boundaries.
  • 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 — The active factory selects XAudio2 on Windows, OpenAL on non-Windows hosts, then Null audio if neither backend initializes. Spatial-audio, mixer, and pooling code exists, but audio is outside the stable profile.
  • 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 — Experimental AngelScript integration includes hot reload, lifecycle callbacks, partial engine bindings, and client/server-oriented source paths. Visual scripting, Lua-related source paths, and the mod system are implementation inventory, not certified support.
  • 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 65 *Panel.h classes in the source inventory; registration and default visibility are separate. It includes scene hierarchy, inspector, gizmos, Shader Graph, visual scripting, and other experimental tooling. Required command-backed world editing and undo coverage are inside the release profile but remain blocked; collaborative editing stays outside it.

Get the Source

There are no supported or versioned binary releases yet. Rolling nightly artifacts may be published for development evaluation; they remain unsupported, unversioned snapshots of a specific commit. Clone the canonical repository and follow the Build Guide for the authoritative development path.

git clone --recurse-submodules https://github.com/Krilliac/SparkEngine.git
cd SparkEngine

Where to Start

Pick 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 Navigation

wiki/_Sidebar.md is the canonical table of contents for all wiki pages and categories.

Code Quality

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.

License

SparkEngine is licensed under the Spark Open License — no royalties, no fees, anti-plagiarism protected.

Project Statistics

Metric Count
Header files 1005
Struct declarations in 17 component headers 79
Engine System Classes 75
*Panel.h class inventory 64
Test-bearing .cpp/.mm files 604
Source-level test definitions 7328
Wiki pages 201

SparkEngine Wiki

Website Entry Points

Getting Started

Engine Subsystems

Gameplay & Tools

Platform Support

Graphics

Advanced

Development & Process

Research & Analysis

Engineering Notes & Audits

Specifications

Reference

Clone this wiki locally