A game engine with a fully bindless, GPU-driven renderer featuring real-time path-traced global illumination, hardware ray tracing, and a physics simulation running at 200Hz, built over 10+ years of R&D
Spartan started as a university project and has been in active development for over a decade, growing into a community of 600+ members on Discord, including industry professionals sharing knowledge and pushing boundaries together. Its rendering technology has been adopted by Godot Engine and S.T.A.L.K.E.R. Anomaly, and featured in a published programming book.
There's a destination that gives all this tech a purpose. Curious? Read the plan →
Launch the engine and choose from a selection of default worlds. Each is physics-enabled—walk around, pick up objects with your mouse, or take a car for a spin.
The most demanding world: 256 million procedurally generated grass blades (inspired by Ghost of Tsushima), spanning 64.1 km² covered with thousands of trees and rocks.
| Sponza 4K | Basic |
|---|---|
| Classic Dubrovnik building—ideal for path tracing | Contains some render test objects |
| Liminal Space | Showroom |
|---|---|
| Reality shifts to a nearby frequency | Clean showcase—no experimental tech |
| The Plan |
|---|
| A neon-soaked city, built to push the engine toward real-time path-traced driving through rain-slicked streets at 60fps, that's the plan. |
The renderer is built around a single principle: the GPU owns the data. Every resource (geometry, materials, textures, lights, transforms, AABBs) lives in persistent, globally accessible buffers. There are no per-draw descriptor set updates, no per-draw resource binding, and no CPU-side draw loops.
- Zero-binding draw path, all per-draw data lives in a single bindless storage buffer, push constants carry only an index
- Single global vertex and index buffer for all geometry (inspired by id Tech), with vertex pulling that bypasses the Input Assembler and is shared by rasterization and ray tracing
- GPU-driven indirect rendering with per-meshlet frustum, Hi-Z occlusion, and backface cone culling, the CPU issues a single
DrawIndexedIndirectCountper pass - Meshlet clustering via meshoptimizer, no mesh shader dependency
- Bindless everything: materials, lights, samplers, uber shaders, minimal PSO permutations
- Universal HLSL compiled for both Vulkan (SPIR-V) and DirectX 12
- GPU-side asset processing: mip generation (FidelityFX SPD) and texture compression (Compressonator) at load time, not baked offline
- Unified deferred rendering, opaque and transparent surfaces share the same BSDF and render path
- Async compute for SSAO, screen-space shadows, and cloud shadows, parallel with shadow rasterization
- ReSTIR path tracing with spatiotemporal reservoir resampling for real-time multi-bounce global illumination
- Hardware ray-traced reflections and shadows via ray queries
- Atmospheric scattering and image-based lighting with bent normals
- Volumetric fog and clouds with temporal reprojection and shadow casting
- Screen-space shadows (inspired by Days Gone) and XeGTAO ambient occlusion
- Shadow map atlas with fast filtering and penumbra estimation
- Variable rate shading and dynamic resolution scaling
- Intel XeSS 2 and AMD FSR 3 upscaling
- TAA and FXAA
- Custom breadcrumbs for GPU crash tracing and post-mortem debugging
- Physically based camera with auto-exposure and physical light units (lumens and kelvin)
- Tonemappers: ACES, AgX, Gran Turismo 7 (default)
- HDR10 output
- Bloom, motion blur, depth of field, chromatic aberration, film grain, sharpening (CAS)
A full vehicle dynamics simulation running at 200Hz within the PhysX fixed-timestep loop.
| System | Details |
|---|---|
| Tires | Pacejka MF 5.2 with combined slip, thermal model, pressure, wear, multiple surfaces |
| Suspension | Convex hull sweep contact, spring-damper, anti-roll bars, bump stops, bump steer, camber/toe |
| Weight transfer | Geometric + elastic lateral split via roll center heights and roll stiffness |
| Drivetrain | Engine torque curve, turbo, 7-speed gearbox, rev-match, open/locked/LSD differentials, RWD/FWD/AWD |
| Brakes | Thermal model with fade, front/rear bias, slip-threshold ABS |
| Aerodynamics | Drag, front/rear downforce, ground effect, DRS, rolling resistance |
| Steering | Ackermann geometry, high-speed reduction, self-aligning torque |
| Assists | ABS, traction control, handbrake |
| Integration | Semi-implicit Euler with consolidated net-torque per wheel |
| Input | Controllers and steering wheels with haptic feedback |
| Camera | GT7-inspired chase camera with speed-based dynamics |
| System | Details |
|---|---|
| Particles | GPU-driven with compute emission and simulation, depth-buffer collision, soft blending |
| Animation | Skeletal hierarchies with keyframed clips and four-bone vertex skinning |
| Physics | PhysX with rigid bodies, character kinematics, and vehicle dynamics |
| Scripting | Lua 5.4 via Sol2 with full engine API and lifecycle callbacks |
| Audio | 3D positional audio, streaming, reverb, procedural synthesis via SDL3 |
| Input | Keyboard, mouse, controllers, and steering wheels with haptic feedback |
| Entity system | Component-based with transform hierarchies, prefabs, and XML serialization |
| Threading | Hardware-aware thread pool with parallel loops and nested parallelism detection |
| VR (WIP) | OpenXR with Vulkan multiview single-pass stereo across the full pipeline |
| Profiling | Nsight/RGP-style timeline with separate graphics and async compute lanes, RenderDoc integration |
| Asset import | 40+ model formats (Assimp), 30+ image formats (FreeImage), 10+ font formats (FreeType) |
| Editor | ImGui-based with hierarchy, asset browser, inspector, script and shader editors, gizmos, profiler |
One-click project generation—see the Building Guide for details.
Start with Game.cpp, it shows how default worlds are loaded and is the best entry point for understanding the engine's structure. For gameplay scripting, check out the Lua Scripting Guide, it covers the full API, lifecycle callbacks, and examples.
| Exploring the tech world and beyond Meeting the brightest minds across cutting-edge industries. 📺 Watch on YouTube 🎧 Listen on Spotify |
Contributors get access to exclusive perks designed to accelerate learning and skill development.
I cover the costs for Dropbox hosting to ensure library and asset bandwidth is available. If you enjoy running a single script and having everything download, compile, and work seamlessly, please consider becoming a sponsor. Direct sponsorship helps more than Discord boosts—it goes directly into maintaining and improving the project.
| Project | Description |
|---|---|
| Godot Engine | Integrates Spartan's TAA (view source) |
| S.T.A.L.K.E.R. Anomaly | Rendering addon using Spartan's source (ModDB) |
| Programming Book | Jesse Guerrero's beginner programming book features Spartan's code and community |
| University Thesis | Originally created as a portfolio piece while sutyding at the University of Thessaly with Professor Fotis Kokkoras |
Using code from Spartan? Reach out, I'd love to showcase your project!
MIT License, free to use with attribution.