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
Discord • X • Wiki • Issues
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 | Cornell Box |
|---|---|
![]() Classic Dubrovnik building—ideal for path tracing |
![]() Classic ray tracing test scene |
| San Miguel | Liminal Space |
|---|---|
![]() Detailed courtyard scene with complex geometry and lighting |
![]() Reality shifts to a nearby frequency |
| Showroom | The Plan |
|---|---|
![]() Clean showcase—no experimental tech |
![]() 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 is stored in a single bindless storage buffer, push constants carry only a 4-byte index into it, keeping the entire push constant footprint at 80 bytes
- Single global vertex and index buffer for all geometry, inspired by id Tech, the CPU never re-binds geometry between draws
- GPU-driven indirect rendering, a compute shader performs frustum and occlusion culling entirely on the GPU, emitting a compacted indirect argument buffer, the CPU issues a single
DrawIndexedIndirectCountper pass, replacing thousands of individual draw calls - Bindless materials, lights, and samplers, all accessed through global descriptor arrays with no per-object binding
- Uber shaders, minimal pipeline state object (PSO) permutations eliminate draw call state changes
- Universal HLSL, all shaders are written once in HLSL and compiled for both Vulkan (via SPIR-V) and DirectX 12
- Tightly packed 10-byte instance format for hundreds of millions of instances (procedural grass, foliage)
- On-the-fly GPU mip generation (FidelityFX SPD) and GPU texture compression (Compressonator compute shaders), assets are compressed on the GPU at load time in milliseconds, not baked offline
- Unified deferred rendering with transparency, opaque and transparent surfaces share the same BSDF and render path, no separate forward pass
- Async compute, SSAO, screen-space shadows, and cloud shadows run on the compute queue in parallel with shadow map rasterization, synchronized via timeline semaphores
- ReSTIR path tracing, reservoir-based spatiotemporal resampling for real-time multi-bounce global illumination, denoised via NVIDIA ReLAX (NRD)
- Ray-traced reflections and shadows via hardware ray queries
- Atmospheric scattering with real-time filtering and image-based lighting with bent normals
- Volumetric fog with temporal reprojection
- Volumetric clouds with procedural noise generation and shadow casting
- Screen-space shadows (inspired by Days Gone) and ambient occlusion (XeGTAO with visibility bitfield)
- Shadow map atlas with fast filtering and penumbra estimation
- GPU-driven frustum and occlusion culling (Hi-Z), the CPU never touches per-object visibility
- Variable rate shading and dynamic resolution scaling
- Upscaling with Intel XeSS 2 and AMD FSR 3
- Temporal anti-aliasing 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 magic formula with MF 5.2 combined slip, load sensitivity, 3-zone surface + core thermal model, tire pressure, wear, per-axle dimensions, relaxation length, camber thrust, multiple surfaces |
| Suspension | Convex hull sweep contact, spring-damper with separate front/rear damping, anti-roll bars, progressive bump stops, bump steer, camber/toe alignment |
| Weight transfer | Geometric + elastic lateral split via roll center heights, roll-stiffness-based front/rear distribution |
| Drivetrain | Engine torque curve, turbo/wastegate, 7-speed auto/manual gearbox, rev-match downshifts, driveshaft torsional compliance, open/locked/LSD differentials, RWD/FWD/AWD |
| Brakes | Thermal model with fade, front/rear bias, ABS with slip-threshold modulation |
| Aerodynamics | Drag, front/rear downforce, ground effect, DRS, pitch/yaw sensitivity, rolling resistance |
| Steering | Ackermann geometry, high-speed reduction, self-aligning torque |
| Assists | ABS, traction control, handbrake |
| Integration | Semi-implicit Euler for wheel spin, consolidated net-torque per wheel |
| Input | Controllers with analog throttle/brake/steering, haptic feedback |
| Camera | GT7-inspired chase camera with speed-based dynamics and orbit controls |
| System | Details |
|---|---|
| Particles | GPU-driven particle system component with compute-shader emission, simulation, and rendering, screen-space depth-buffer collision, and soft blending |
| Physics | PhysX integration with rigid bodies, character kinematics, and vehicle physics |
| Scripting | Lua 5.4 with full engine API access (entities, components, math, physics, audio) via Sol2 bindings with lifecycle callbacks (Start, Tick, Save, Load) |
| Audio | 3D positional audio, streaming, reverb, and procedural synthesis via SDL3, supports WAV, OGG, MP3, FLAC, and more |
| Input | Keyboard, mouse, controllers, and steering wheels with haptic feedback |
| Entity system | Component-based architecture with transform hierarchies, prefabs, and XML serialization |
| Threading | Custom thread pool with hardware-aware scaling, parallel loops, nested parallelism detection, and progress tracking |
| Profiling | Nsight/RGP-style timeline profiler with separate graphics and async compute lanes, CPU and GPU scoped time blocks, zoom and pan, draw call and binding stats, stutter detection, and RenderDoc integration |
| Asset import | 40+ model formats (via Assimp), 30+ image formats (via FreeImage), 10+ font formats (via FreeType), mesh optimization (via meshoptimizer) |
| Editor | ImGui-based editor with world hierarchy, asset browser, property inspector, script and shader editors, texture viewer, viewport with transform gizmos, profiler, and console |
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.
Read the Contributing Guide →
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.










