Repository navigation
SparkGame Module Status
Audience: Programmers | Mixed
Thread Context: Game modules run on the main thread via
OnLoad/OnUpdate/OnRender. SparkConsole runs a background log-reader thread and communicates over named pipes (Windows) or stdin/stdout.Platform/Backend Scope: Source inventory only. Game-module code uses the RHI, but cross-platform and cross-backend behavior is not certified. SparkConsole IPC has Windows named-pipe code with a stdin/stdout fallback; SparkShaderCompiler source exposes D3D11, D3D12, Vulkan, and OpenGL selectors without proving artifacts on every backend.
stable-v1support boundary:stable-v1is blocked and uncertified, and its exact host is Windows 11 x64. The repository contains 11 in-tree module directories; onlySparkGameFPSis the blocked in-profile first-party candidate. The other ten are prototype, template, or showcase source surfaces outside the profile, not completed or released games.
This page inventories selected source surfaces in the FPS module, standalone debug console, and offline shader compiler. It does not assign completion percentages or certify that the products build, run, or pass tests at the current commit.
Naming note: The original audit referred to the FPS game as
SparkGame. The repository has since split the modules —GameModules/SparkGame/is a base/showcase module, while the FPS source lives inGameModules/SparkGameFPS/. The 11 directory inventory is SparkGame, SparkGameARPG, SparkGameFPS, SparkGameMMO, SparkGameMMOFPS, SparkGameOpenWorld, SparkGamePlatformer, SparkGameRacing, SparkGameRPG, SparkGameRTS, and SparkGameVisualScript.
- Module entry point in
GameModules/SparkGameFPS/Source/Core/Main.cpp(including the WindowsDllMainpath). - Factory exports:
CreateModule(),DestroyModule(),CreateGameModule(),DestroyGameModule(). - ModuleManager and module source expose
OnLoad,OnUpdate, andOnRenderlifecycle paths. - Source identifies the module as an engine-showcase arena candidate; loading and packaged execution remain uncertified.
-
Game.cpphas 855 physical lines andGame.hhas 668 in the current source inventory. The older audit recorded a 2,042-lineGame.cpp; the current source is split intoGameSetup.cpp,GameConsoleOps.cpp,GameEngineSystems.cpp,GameMechanics.cpp, andGameMode.cpp. - Sets up camera, player, projectile pool, scene manager, vehicle system, gravity, interaction, game mode, HUD, inventory, quests.
- Console command source includes teleport, spawn, clear-scene, and time-scale operations.
-
Player.hhas 795 physical lines andPlayer.cpphas 1,084 in the current source inventory. - Input and movement source covers WASD movement, jumping, crouching, and sprinting.
- Physics-related source includes gravity, friction, and stamina paths.
- Weapon source exposes
Fire(),Reload(), andChangeWeapon()with ammunition state. - Health / armor / shield with damage reduction.
- Class system (Scout, Recon, Titan) with unique abilities (jetpack, cloak, energy shield) via
ClassSystem.cpp. - Console integration via
PlayerConsole.cpp(includes memory-integrity speed/jump validation guards).
-
HUDSystem.h/HUDSystem.cpp. - Source defines health/armor/shield bars, ammo counter, crosshair, damage indicators, kill feed, hit markers, vignette, weapon-switch notifications, minimap, interaction prompts, scoreboard, and class indicators. This inventory is not packaged visual-acceptance evidence.
- Weapon definitions include Pistol, Rifle, Shotgun, Rocket Launcher, Sniper, SMG, and other types.
- Damage, fire rate, magazine, reload time, accuracy stats.
- Source connects player fire/reload paths to a projectile pool with Bullet, Rocket, and Grenade types.
-
VehicleSystem.h/VehicleSystem.cpp(~1,009 lines). - Ground (Buggy, Tank, APC, Motorcycle, Truck) + aerial (Helicopter, Jet, Dropship, Drone).
- Multi-seat system (Driver / Gunner / Passenger).
- Vehicle physics (acceleration, steering, aerial stabilization).
- Source routes vehicle weapons through the projectile pool, derives muzzle position from seat offset and vehicle rotation, and maps weapon type to projectile type.
-
Enemy.cpp/Enemy.h: archetypes (Grunt, Guard, Scout, Heavy, Sniper, Medic). - Each enemy owns a behavior tree with combat/patrol/idle branches.
- Distance-based perception, blackboard-driven targeting.
-
WaveSpawner.cpp/WaveSpawner.h: escalating waves with difficulty scaling, boss rounds, rest periods. -
LootSystem.cpp: enemies drop loot on death. -
Gap (unchanged): no NavMesh pathfinding integration in the FPS module — a repository-wide search for
NavMesh/FindPath/PathfindunderGameModules/SparkGameFPS/Source/returns no hits. Enemies move directly toward targets rather than navigating the mesh.
-
LoadScene(),SaveScene(),GetAvailableScenes(), and scene-creation methods are defined in source. - Source contains serialization/deserialization paths for game objects in
.scenefiles. - Gap: no dynamic level streaming inside the module.
-
SparkConsole/src/main.cppentry,ConsoleApp.h/.cpp. - Source contains named-pipe transport on Windows and stdin/stdout fallback paths.
- Source implements a color-coded engine-log display path.
- Source implements command input with auto-completion and history handling.
- Built-in commands: help, clear, history, alias, exit. Game commands forwarded to the engine over the pipe.
- Source includes a background log-reader thread. SparkConsole is a required
stable-v1product, but its build and packaged execution remain blocked and uncertified with the profile.
Wiring reminder (from CLAUDE.md):
ConsoleProcessManagerlaunches the subprocess and owns the pipe; it must be initialized at engine startup withProcessCommands()called each frame.SimpleConsoleis the engine-side log sink only.
-
SparkShaderCompiler/src/main.cpp. - Single-file and batch modes (e.g.
SparkShaderCompiler BasicVS.hlsl -stage vertex -backend d3d11 -o BasicVS.cso;-batch Shaders/ -backend vulkan). - Stages: vertex, pixel, geometry, hull, domain, compute.
- Backend selectors in source: D3D11, D3D12, Vulkan, OpenGL; selector presence does not prove successful output on each backend.
- Preprocessor defines, include paths, optimization, debug info, reflection output.
- Delegates to
Spark::RHI::CompileShader(). SparkShaderCompiler is a requiredstable-v1product, but its build and packaged execution remain blocked and uncertified with the profile.
The original audit flagged four oversized FPS files. The picture has improved after the Game.cpp split:
| File | Current Lines |
.cpp/.h guideline |
Status |
|---|---|---|---|
Game.cpp |
~840 | ~500 (.cpp) |
Reduced from 2,042; still over but split into helper TUs |
Player.cpp |
~1,081 | ~500 | Still over guideline |
Player.h |
~795 | ~300 (.h) |
Still over guideline |
Game.h |
~659 | ~300 | Still over guideline |
VehicleSystem.cpp |
~1,009 | ~500 | Over guideline (one cohesive system) |
| Component | Observed source surface | Boundary or known gap |
|---|---|---|
| Module loading (DLL) | Factory exports and lifecycle methods are present | Installed-public-SDK loading and packaged lifecycle evidence remain open |
| Game loop | Setup/update/render source paths are present | No certified author-cook-package-install-run loop |
| Player controller | Movement, health, class, and weapon source is present | No same-commit gameplay acceptance evidence |
| HUD system | HUD element source is present | No packaged visual-acceptance evidence |
| Weapons | Weapon and projectile source is present | Runtime balance and complete behavior are not certified |
| Vehicles | Ground/aerial vehicle and seat/weapon source is present | Runtime physics and gameplay behavior are not certified |
| AI / enemies | Behavior-tree, wave, and loot source is present | No NavMesh/pathfinding references in the FPS module source |
| Level loading | Scene load/save source is present | No dynamic level streaming in the module |
| SparkConsole.exe | Entry point, IPC, and console source is present | Required profile product; blocked and uncertified |
| SparkShaderCompiler.exe | Entry point and backend-selector source is present | Required profile product; blocked and uncertified |
Boundary: SparkGameFPS is the blocked stable-v1 single-player candidate. Its source contains FPS gameplay surfaces, but it is not a complete, released, or certified game. SparkConsole and SparkShaderCompiler likewise have source surfaces and are required profile products, not certified tools.
- Original entry:
.claude/knowledge/sparkgame-module-status.md(last updated 2026-03-16; vehicle weapons noted 2026-04-01). - Older audit review date: 2026-06-08. This is not same-commit certification.
This correction enumerated the module directories, checked the named entry points and selected source paths, and measured physical file lines on 2026-08-28. It did not build or run the modules or tools and does not certify functionality.
Source observations retained or corrected:
-
Module renamed/split: the FPS source is now
GameModules/SparkGameFPS/; the repository contains 11 module directories, each withCMakeLists.txtandSource/. -
Game.cppis 855 physical lines — split alongsideGameSetup.cpp,GameConsoleOps.cpp,GameEngineSystems.cpp,GameMechanics.cpp, andGameMode.cpp. -
VehicleSystem.cppis 1,009 physical lines, not the 10,000+ stated in the original audit. - NavMesh gap persists for FPS enemies (verified: no NavMesh/pathfind references in the FPS module source).
- SparkConsole and SparkShaderCompiler entry points remain present; this review produced no build, test, or packaged-runtime evidence for either tool.
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