Repository navigation
Game Modules
SparkEngine contains 11 in-tree game-module directories with differing prototype maturity. They are source showcases and test fixtures, not released games. Only the blocked and uncertified SparkGameFPS single-player slice is inside stable-v1; the other modules and multiplayer breadth are outside it. Dynamic modules implement Spark::IModule and build as shared libraries where their targets are enabled.
Building your own: see Creating a Game Module for the step-by-step integration tutorial. This page catalogs what already exists.
| Module | LOC | Genre / focus | Key engine subsystems wired |
|---|---|---|---|
| SparkGame | ~870 | Base / showcase — a bit of everything | All core subsystems |
| SparkGameFPS | ~22.7K | First-person shooter | Weapons, player controller, death->respawn->score loop, quicksave profile, AI (LAN path experimental) |
| SparkGameMMO | ~10.0K | Massively multiplayer online | AreaServer, WorldServer, persistence, dialogue |
| SparkGameMMOFPS | — | MMOFPS / Terrafront | Combined-arms MMOFPS systems |
| SparkGameRPG | ~5.1K | RPG mechanics | Save, animation, AI, cinematic, quest, dialogue |
| SparkGameARPG | ~3.3K | Diablo-style action RPG | Combat, loot, abilities, dungeon generation |
| SparkGameOpenWorld | ~4.9K | Large-world exploration | Seamless streaming, origin rebasing, weather |
| SparkGamePlatformer | ~4.1K | 3D platformer | Player controller, destruction, audio, save |
| SparkGameRTS | ~5.0K | Real-time strategy | Unit roster, selection and move/stop/hold commands, buildings, economy, fog; no acting AI opponent and no damage resolution yet |
| SparkGameRacing | ~3.8K | Vehicle racing | Kinematic showcase vehicles (no Jolt), WASD input, waypoint AI, camera, audio, cinematic |
| SparkGameVisualScript | ~370 | Script-only module | Visual scripting graphs, zero C++ game logic |
The root build enumerates 11 module targets when BUILD_GAME_MODULES is enabled (ON by default); this target inventory is not a claim that every module is playable or release-ready.
Purpose: baseline module with a GameplayShowcase scene that walks new contributors through every subsystem at least once. It follows the same CMake module pattern as the other in-tree targets; it is not a prerequisite target for them.
-
Source:
GameModules/SparkGame/Source/ -
Primary headers:
Core/SparkGame.h,Core/GameplayShowcase.h
Purpose: first-person shooter implementation showcase and the blocked stable-v1 vertical-slice candidate. It is not yet a certified or released product.
-
Source:
GameModules/SparkGameFPS/Source/ -
Notable:
Game/Player.h(~800 LOC),Game/Game.h(~660 LOC), weapon system, the completed death -> respawn -> score loop (Game/GameMechanicsRespawn.cpp), realquicksave/quickloadof the local profile, one runtime-discovered asset root. The in-game console overlay was removed (commands register into the engineSimpleConsole). The LAN/multiplayer path (Game/MultiplayerSystem.cpp) is experimental and outsidestable-v1(MOD-315); it is not part of the single-player slice claim. - Wires: Input, Camera, Physics, Networking, Audio, AI.
Purpose: MMO networking showcase built on the HeroEngine-inspired architecture.
-
Source:
GameModules/SparkGameMMO/Source/ - Wires: Area Server Architecture, Dedicated Server, Persistence System, weather, abilities, dialogue.
Purpose: Terrafront MMOFPS source module. It is an in-tree development artifact, not a stable-v1 certified or released game.
-
Source:
GameModules/SparkGameMMOFPS/ -
Reference:
GameModules/SparkGameMMOFPS/README.md
Purpose: classic RPG mechanics — quests, dialogue, party members, save/load.
-
Source:
GameModules/SparkGameRPG/Source/ - Wires: Save System, Animation, AI, Cinematic Sequencer, Dialogue System, Gameplay Systems (quests, abilities, conditions).
Purpose: Diablo-style click-to-move action RPG.
-
Source:
GameModules/SparkGameARPG/Source/ -
Notable:
Combat/ARPGCombatSystem.h,Dungeon/ARPGDungeonSystem.h,Hero/ARPGHeroSystem.h,Loot/ARPGLootSystem.h. - Wires: Loot and Crafting, ability system, procedural dungeon generation.
Purpose: large-world exploration — kilometer-scale terrain with streaming.
-
Source:
GameModules/SparkGameOpenWorld/Source/ - Wires: Large World Support (origin rebasing + seamless streaming), Day/Night Cycle and Weather, Terrain and Procedural Generation, HLOD and World Partition.
- Playable loop: entering a point of interest records discovery; fast-travel POIs unlock immediately, and teleports/travel synchronize the active biome used by wildlife and dynamic events.
Purpose: 3D platformer — movement feel, jump mechanics, collectibles.
-
Source:
GameModules/SparkGamePlatformer/Source/ - Wires: Audio, Event System, Save System, Destruction System.
Purpose: real-time strategy — unit selection, pathing, resource economy.
-
Source:
GameModules/SparkGameRTS/Source/ - Wires: AI (flocking + director), Event System, Audio, weather, Destruction System.
-
Playable loop: selection is backed by the live unit roster, while move/stop/hold commands and queued waypoints drive unit state and straight-line map-space movement (no NavMesh path query). Not yet: there is no AI director -- the Swarm faction is flagged AI but no controller issues it commands; attack commands set state but apply no damage, so no unit dies and a match cannot end; the RTS Battlefield ImGui panel is compiled out because
ENABLE_EDITORis never a compile definition; simulation runs inOnUpdatewith variabledt(OnFixedUpdateis empty).
Purpose: systems-first circuit racing with one player car and five waypoint-following AI opponents. Vehicles are kinematic showcase vehicles (hand-rolled speed/heading integration, radius-check checkpoints) -- Jolt vehicle physics is not used; the camera system's output is internal and is not pushed to the renderer; the ImGui HUD/minimap is compiled out (ENABLE_EDITOR is never defined). WASD/nitro/drift input is real.
-
Source:
GameModules/SparkGameRacing/Source/ - Wires: Physics (vehicle subsystem), Camera System (chase/cockpit), Audio, Cinematic Sequencer.
Purpose: demonstrates the "zero C++" game module — all gameplay authored through Visual Scripting graphs that compile to AngelScript at runtime.
-
Source:
GameModules/SparkGameVisualScript/Source/ -
Smallest module at ~370 LOC because the C++ side only loads graph assets; logic lives in
.sgraphfiles.
- At runtime, the host resolves a game-module candidate through
-game, a manifest, or discovery; CMake-built targets are candidates, not a bulk-load list. -
ModuleManagerreads a candidate'sIModule::GetModuleInfo()while loading it and permits only oneGame-kind primary module. - The selected primary game module receives
OnLoad(context)andOnUpdate(dt)in the engine lifecycle. - Its
OnUnload()runs on engine shutdown or when Hot Reload rebuilds the DLL.
See Creating a Game Module for the full IModule contract.
-
Creating a Game Module — build your own from the
EmptyProjecttemplate. - Build System and CMake Modules — how game-module CMake targets are discovered.
- Making Your First Game — step-by-step single-player tutorial.
- Making Your First Multiplayer Game — multiplayer walkthrough that uses SparkGameFPS.
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