Repository navigation
Gameplay Systems Status
Audience: Programmers | Mixed
Thread Context: Most systems initialize and tick on the main thread via the shared gameplay lifecycle (
GameplayLifecycleShared.cpp). PhysicsSystem dispatches Jolt jobs across threads; NetworkManager uses a queue mutex. ECS execution order is Physics → Animation → AI → Audio → Lifecycle → Render.Platform/Backend Scope: Cross-platform source inventory. Networking is conditional (
ENABLE_NETWORKING, ON by default); backend and platform support must be read from the release profile rather than inferred from source presence. VR registers but ships as an OpenXR stub backend.
stable-v1support boundary:stable-v1is blocked and uncertified. This page inventories source, lifecycle-call, and test-file surfaces, including experimental and out-of-profile capabilities; it is not a support matrix, passing-test report, or release claim.
This page records a source-level inventory of SparkEngine gameplay and engine subsystems: named lifecycle calls, source surfaces, test-file references, and an older record of orphaned-stub deletions. Source or test-file presence does not establish runtime behavior, current test results, platform support, or release readiness.
The canonical wiring point for engine-lifetime gameplay systems is SparkEngine/Source/Core/Lifecycle/GameplayLifecycleShared.cpp — its Init*, Update*, and Shutdown* functions are where each subsystem's lifecycle hooks are called.
| System | Status | Key Files |
|---|---|---|
| ECS (EnTT) | Source surface present |
Engine/ECS/ (CoreComponents.h + domain headers, Systems/ECSystems.h) |
| Physics (Jolt) | Lifecycle and query source present |
PhysicsSystem.cpp + PhysicsSystemQueries.cpp + PhysicsShapeFactory.cpp
|
| AI | Source surface present |
AISystem, NavMesh, BehaviorTree
|
| Animation | ECS system source present | AnimationSystem.cpp |
| Audio | Backend factory and engine source present |
Audio/AudioEngine.cpp, with XAudio2 on Windows, OpenAL on non-Windows, and Null fallback paths |
| Input | Source surface present | InputManager.cpp |
| Camera | Source surface present | SparkEngineCamera.cpp |
| Scripting (AngelScript) | VM and file-watcher source present | Engine/Scripting/ |
| Save system | Source surface present | SaveSystem.cpp |
| UI system | EngineContext registration/update source present | UISystem.cpp |
| Modding | EngineContext registration source present | ModSystem.cpp |
| Events / EventBus | Delegation source present |
EventSystem.h delegates to EventBus.h
|
| Coroutines | EngineContext registration source present | CoroutineScheduler.h |
| 2D graphics / sprites | Phase-manager registration source present |
Systems2D.h, Physics2D.h
|
| Dialogue | EngineContext registration/update source present | DialogueSystem.cpp |
| Weather | EngineContext registration/update source present | WeatherSystem.cpp |
| World origin | Source surface present | WorldOriginSystem |
| Localization | Source and test files present |
LocalizationSystem.cpp; Tests/TestLocalizationSystem.cpp (test presence only) |
| Destruction | Lifecycle calls present | DestructionSystem.cpp |
The current lifecycle source contains the named hooks. Test filenames below are inventory references; they do not assert that a test was executed or passed for the current commit or profile.
| System | Namespace | Init | Update | Shutdown | Test source |
|---|---|---|---|---|---|
| AbilitySystem | Spark::Gameplay |
Yes | Yes (world, dt) | Yes | TestAbilitySystem.cpp |
| ConditionSystem | Spark::Gameplay |
Yes | N/A (stateless) | Yes | TestConditionSystem.cpp |
| InstanceManager | Spark::Gameplay |
Yes | Yes (dt) | Yes | TestInstanceManager.cpp |
| MovementSystem | Spark::AI |
Yes | Yes (world, dt) | Yes | TestMovementSystem.cpp |
| SpatialGrid | Spark::World |
Via ctor | SyncFromECS | N/A | TestSpatialGrid.cpp |
| AsyncDatabase | Spark::Persistence |
Open() |
ProcessCallbacks() |
Close() |
TestAsyncDatabase.cpp |
| ReplicationFields | Spark::Net |
N/A (data) | N/A (data) | N/A | TestReplicationFields.cpp |
| ScriptHookManager | Spark::Scripting |
Singleton | DispatchHook() |
Clear() |
TestScriptHookManager.cpp |
| ConsoleRBAC | Spark::Console |
Singleton | N/A (query) | N/A | TestConsoleRBAC.cpp |
ModuleHotReload (Spark::ModuleHotReloadManager, Core/ModuleHotReload.cpp) |
Spark |
Initialize() |
PollChanges() (polled by the platform frame loops) |
Stop() |
TestModuleHotReload.cpp -- the older Engine/HotReload/ModuleHotReload singleton is no longer in the lifecycle |
| System | Status | Notes |
|---|---|---|
| Inventory (engine-level) | Lifecycle calls present |
Spark::Gameplay::InventorySystem — item registry, per-entity slots, stacking, transfer. Init/Update/Shutdown calls appear in the lifecycle source. |
| Quest (engine-level) | Lifecycle calls present |
Spark::Gameplay::QuestSystem — objectives, progress tracking, rewards, prerequisites. Lifecycle calls appear in the current source. |
| Terrain rendering | Lifecycle calls present |
Graphics::ClipmapTerrain with heightmap sampling, LOD levels, GPU buffer creation. Init/Shutdown calls appear in the lifecycle source. |
| System | Approx Size | Why Deleted |
|---|---|---|
| Streaming (seamless areas) | ~1,000+ lines | Stub, never wired |
| Procedural generation | 52 KB | Never instantiated |
| Cinematic / Sequencer | 29 KB | Never initialized |
| Replay system | Large | Never initialized |
| Achievement system | Medium | Never initialized |
| Content Delivery | 337 lines | Stub-only CDN |
| Visual Scripting (2 copies) | 7,343 lines | Duplicate, neither wired |
Note: Several of these names now have current source or documentation surfaces. Treat this table only as the historical record of the earlier stub deletions; verify current source and the readiness contract individually. A wiki page by itself is not implementation or support evidence.
- Networking source and conditional test surfaces exist behind
ENABLE_NETWORKING(ON by default in the root CMake configuration). The readiness contract classifies multiplayer as experimental and blocked; hostile multi-client, compatibility, and transport work remains open, and transports such asSteamTransportremain stubs (see Stub & Abandoned Features). - VR is registered via core subsystems but ships an OpenXR stub backend — see the Stub page.
-
Tests/TestConsoleRBAC.cppis a dedicated test source; its presence is not a claim that it passed for this commit.
- Original entry:
.claude/knowledge/gameplay-systems-status.md(last updated 2026-03-18; physics Jolt migration noted 2026-03-22; missing systems noted 2026-04-01). - Older audit review date: 2026-06-08. This is not same-commit verification.
This correction checked the named lifecycle call sites and readiness classifications on 2026-08-28 without executing builds or tests. It does not certify behavior or regression status.
Source observations retained or corrected:
-
Lifecycle call sites observed: AbilitySystem, ConditionSystem, InstanceManager, InventorySystem, QuestSystem, MovementSystem, DestructionSystem, and ClipmapTerrain have named init/update/shutdown calls in
GameplayLifecycleShared.cpp. - Re-introduced source surfaces: Replay, Achievement, Cinematic, and Streaming have current lifecycle or source entries. The "Systems Deleted" table is retained only as a historical record with a caveat.
- Named paths must be checked at the commit under review; file presence alone cannot establish behavior, passing tests, or the absence of regressions.
Published from 2b03dc797148. 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
- Platform Certification
- 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
- Fuzz Policy and Parser Security
- Memory Safety
- Memory Management Patterns
- Build System and CMake Modules
- Profiler and Debugging
- Performance Profiling Guide
- Telemetry System
- Crash Reporting
- Golden Image Testing
- Utilities
- Testing
- Fuzz Policy and Parser Security
- 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