About this project
Spartan Engine is a personal research-and-development game engine created by a single engineer over more than a decade. It is explicitly described as not a commercial product, with no roadmap promises or support queue.
Rendering architecture centers on the principle that the GPU owns the data. Geometry, materials, textures, lights, transforms and AABBs live in persistent globally accessible buffers. The draw path is zero-binding, with per-draw data in a single bindless storage buffer and push constants carrying only an index. A single global vertex and index buffer covers all geometry, using vertex pulling that bypasses the Input Assembler and is shared by rasterization and ray tracing. GPU-driven indirect rendering performs per-meshlet frustum, Hi-Z occlusion and backface cone culling, with the CPU issuing one DrawIndexedIndirectCount per pass. Meshlet clustering uses meshoptimizer without mesh shader dependency. Universal HLSL is compiled for both Vulkan (SPIR-V) and DirectX 12. GPU-side asset processing handles mip generation and texture compression at load time. Rendering is unified deferred, with opaque and transparent surfaces sharing the same BSDF and path.
Lighting and global illumination include ReSTIR path tracing with spatiotemporal reservoir resampling for real-time multi-bounce GI, clustered deferred shading with a GPU-built logarithmic-Z grid, hardware ray-traced reflections and shadows via ray queries, atmospheric scattering, image-based lighting with bent normals, volumetric clouds, froxel volumetric fog, an FFT ocean with a Tessendorf spectrum, screen-space shadows, XeGTAO ambient occlusion, and a shadow map atlas.
Performance features include variable rate shading, dynamic resolution scaling, TAAU, NVIDIA DLSS, Intel XeSS, FXAA, and custom GPU crash breadcrumbs. Camera and post-processing cover a physically based camera with auto-exposure and physical light units, ACES/AgX/Gran Turismo 7 tonemappers, HDR10 output, bloom, motion blur, depth of field, chromatic aberration, film grain and sharpening.
A vehicle dynamics simulation runs at 200Hz inside the PhysX fixed-timestep loop, with Pacejka MF 5.2 tires, suspension modeling, weight transfer, drivetrain, thermal brakes, aerodynamics, Ackermann steering, assists, and controller/steering-wheel input with haptic feedback.
Other engine systems include GPU-driven particles, skeletal animation with skinning and inverse kinematics, PhysX physics, Lua 5.4 scripting via Sol2, 3D positional audio, component-based entity system with XML serialization, procedural spline roads, a camera cut sequencer, a hardware-aware thread pool, work-in-progress OpenXR VR, a profiling timeline with RenderDoc integration, asset import for many model, image and font formats, and an ImGui-based editor.
The repository includes default physics-enabled worlds, a building guide, and a Lua scripting guide. The license permits free noncommercial use, modification and redistribution with attribution, while commercial use requires prior written permission and negotiated terms.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.