Repository navigation
Quick Start Tutorial
A hands-on guide to your first 10 minutes with SparkEngine. By the end, you will have built the engine, launched it with an explicitly selected module, opened the separate editor executable, and spawned objects in a scene.
Release boundary: These are development instructions. The declared
stable-v1Windows 11 x64/MSVC v143 profile remains blocked and uncertified; other hosts and module breadth are outside it.
Prerequisites: You have already completed the Getting Started guide and have a successful build.
# Windows: Visual Studio or Ninja Multi-Config Release build; select a module explicitly
cd build\bin\Release
.\SparkEngine.exe -game .\SparkGameFPS.dll
# Linux: select a built module explicitly
cd build/bin
./SparkEngine -game ../lib/libSparkGameFPS.soThe engine does not auto-load SparkGameFPS. Replace the placeholder with the path to a built game-module binary; the command above selects that module explicitly. On Windows, a bare launch loads one discovered candidate directly or asks the user to choose among several (windowed selector or headless guidance). The current non-Windows fallback still scans the executable directory and attempts to load its matches, subject to the one-Game-module refusal, so use -game or -manifest there instead of relying on a bare launch.
SparkGameFPS controls (when that module is selected):
| Key | Action |
|---|---|
| W/A/S/D | Move |
| Mouse | Look around |
| Space | Jump |
| Shift | Sprint |
| Left Click | Fire (captures mouse) |
| Esc | Release mouse |
SparkGameFPS has no in-game console overlay (the unreachable one was removed) and binds neither backtick nor F3. Console commands are reached through the SparkConsole process that the Windows engine launches beside itself (engine logs are mirrored into it), or through the Engine Console panel in SparkEditor. Try these commands there:
help # List all available commands
version # Show engine version
render_stats # Display rendering statistics
physics_metrics # Show physics performance
Both console surfaces support tab-completion and command history (up/down arrows).
SparkEditor is a separate executable, not an in-engine F1 overlay. Configure with ENABLE_EDITOR=ON, build its target, then launch it from the active output directory:
# Windows: Visual Studio or Ninja Multi-Config Release build
.\build\bin\Release\SparkEditor.exe
# Non-Windows single-config development build
./build/bin/SparkEditorReplace Release with the configuration you built. You will see these panels:
| Panel | Purpose |
|---|---|
| Scene View (center) | 3D viewport — click and drag to orbit, scroll to zoom |
| Hierarchy (left) | Lists every entity in the scene |
| Inspector (right) | Shows components of the selected entity |
| Asset Browser (bottom) | Browse project files |
| Console (bottom) | Log output and commands |
- Select an entity — Click any item in the Hierarchy panel
- Inspect it — The Inspector shows its Transform, MeshRenderer, and other components
-
Move it — In the Scene View, use W and the translate arrows to drag the entity. E and R select rotate/scale modes, but applying those transforms remains incomplete (
EDT-210) - Add a component — In the Inspector, click "Add Component" and choose a type
Use the console to spawn entities at specific coordinates:
spawn box 0 5 0 # Spawn a physics box 5 units above origin
spawn sphere 2 10 0 # Spawn a physics sphere
spawn box -3 8 0 # Another box
Watch the physics objects fall and collide. Toggle physics debug visualization:
physics_debug on # Show collision shapes and contacts
physics_debug off # Hide debug overlay
Try changing the environment:
# Time of day
time_set 6 # Sunrise
time_set 12 # Noon
time_set 18 # Sunset
time_set 0 # Midnight
time_speed 10 # Speed up the day/night cycle
# Weather
weather clear
weather rain
weather snow
weather storm
# Physics
physics_gravity 0 -5 0 # Low gravity
physics_gravity 0 -20 0 # Normal gravity (default)
Experiment with rendering settings:
# Quality presets
render_quality low
render_quality high
render_quality ultra
# Individual toggles
wireframe on # Wireframe rendering
wireframe off
vsync off # Disable VSync
shadows off # Disable shadows
hdr on # Enable HDR
Or edit Resources/Config/settings.ini for persistent changes. See Configuration Reference for all available settings.
If the FPS game module is loaded:
# Cheat commands
god # Toggle god mode
noclip # Toggle noclip (fly through walls)
player_tp 0 50 0 # Teleport to coordinates
# Game modes
gamemode freeplay # Free exploration
gamemode deathmatch # Deathmatch mode
gamemode survival # Wave-based survival
# Inventory
give 1 # Give item ID 1
inventory # Show inventory
Start a wave-based survival round:
wave_start # Begin waves
wave_status # Check current wave
wave_difficulty 2.0 # Increase difficulty
Check what the engine is doing:
engine_subsystems # List all active subsystems
metrics # Comprehensive system metrics
asset_list # All loaded assets
shader_list # All loaded shaders
Toggle debug visualizations:
physics_debug on # Collision shapes
Open the Profiler panel in the editor (Window menu) to see frame timings, draw call counts, and system performance.
Now that you have a feel for the engine, explore these guides based on your role:
- Creating a Game Module — Build your own game module
- Entity Component System — ECS architecture
- Scripting with AngelScript — Hot-reload scripting
- Artist Workflow Guide — Asset creation and import
- Editor Walkthrough — Complete editor guide
- Terrain and Procedural Generation — Terrain tools
- Making Your First Game — Build a complete game
- Gameplay Systems — Weapons, inventory, quests
- AI and Navigation — Behavior trees and pathfinding
- Multiplayer Quick Start — Set up client/server
- Networking — Full networking reference
- Dedicated Server — Headless server setup
- FAQ — Common questions and answers
- Configuration Reference — All settings and commands
- Editor Walkthrough — Practical editor guide
- Troubleshooting — Common issues and solutions
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