Skip to content

PanosK92/SpartanEngine

Spartan Engine

A research-focused game engine built for experimentation and pushing the boundaries of real-time rendering

Build Status Discord License

DiscordXWikiIssues


🎯 The Vision

Spartan Engine has been in development for 10+ years, evolving from a personal learning project into an active community of 600+ members on Discord—including industry professionals sharing knowledge and exploring cutting-edge technology.

There's a destination that gives all this tech a purpose. Curious? Read the plan →


🎬 See It In Action

Engine Trailer


🌍 Worlds

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.


Forest

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.

More Worlds

Sponza 4K Subway

Classic Dubrovnik building—ideal for path tracing

Emissive materials & GI testing
Minecraft Liminal Space

A familiar blocky world

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.

⚙️ Features

Rendering

Renderer Architecture
  • Vulkan renderer with DirectX 12 backend (WIP)
  • Fully bindless design (materials, lights, samplers)
  • Universal HLSL shaders across both backends
  • 128-byte push constant buffer for fast CPU-to-GPU transfer
  • Tightly packed 10-byte instance format for hundreds of millions of instances
  • On-the-fly GPU mip generation (FidelityFX SPD) and texture compression (FidelityFX Compressonator)
  • Unified deferred rendering with transparency (BSDF with same render path)
Lighting & Shadows
  • Atmospheric scattering, real-time filtering, IBL with bent normals
  • Screen-space shadows (from Days Gone) and ambient occlusion (XeGTAO + visibility bitfield)
  • Ray-traced reflections & shadows
  • ReSTIR path-tracing
  • Fast shadow mapping with penumbra via shadow map atlas
  • Volumetric fog
Performance & Upscaling
  • Variable rate shading and dynamic resolution scaling
  • Upscaling: XeSS 2 & FSR 3
  • Temporal anti-aliasing
  • Custom breadcrumbs for GPU crash tracing
Camera & Post-Processing
  • Physically based camera with auto-exposure
  • Physical light units (lumens & kelvin)
  • Frustum & occlusion (Hi-Z) culling
  • Tonemappers: ACES, AgX, Gran Turismo 7 (default)
  • HDR10 output
  • FXAA, bloom, motion blur, depth of field, chromatic aberration

Car Simulation

One of the most realistic out-of-the-box car simulations available. Physics runs at 200Hz for precise tire and suspension response.

Full Simulation Details
System Features
Tires Pacejka magic formula, combined slip, load sensitivity, temperature model, camber thrust, relaxation length, multiple surfaces (asphalt, concrete, wet, gravel, grass, ice)
Suspension 7-ray contact patch per wheel, spring-damper with bump/rebound split, anti-roll bars, camber/toe alignment, bump steer
Drivetrain Piecewise engine torque curve, 7-speed gearbox (auto/manual), rev-match downshifts, LSD with preload, turbo with wastegate, engine braking
Brakes Thermal model (cold/optimal/fade zones), front/rear bias, ABS with configurable slip threshold
Aerodynamics Drag with frontal/side area, front/rear downforce, ground effect, yaw-dependent forces, pitch-dependent balance, rolling resistance
Steering Ackermann geometry, high-speed reduction, non-linear response, self-aligning torque
Assists ABS, traction control, handbrake lock
Input Controllers with analog throttle/brake/steering, haptic feedback (tire slip, ABS, drifting)
Camera GT7-inspired chase camera with speed-based dynamics and orbit controls
Debug Raycast, suspension, and aero force visualization with telemetry logging

General

  • Scripting: Lua 5.4 scripting with full engine API access (entities, components, math, physics, audio)
  • Input: Keyboard, mouse, controllers, steering wheels
  • Physics: Comprehensive PhysX integration
  • Profiling: CPU & GPU profiling tools
  • Data: XML support, thread pool, entity-component and event systems
  • File Formats: 10+ fonts, 30+ images, 40+ models

🚀 Getting Started

Building

One-click project generation—see the Building Guide for details.

Learning the Engine

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.


🎙️ Podcast

Exploring the tech world and beyond

Meeting the brightest minds across cutting-edge industries.

📺 Watch on YouTube
🎧 Listen on Spotify

🤝 Community & Support

Contributing

Contributors get access to exclusive perks designed to accelerate learning and skill development.

Read the Contributing Guide →

Sponsorship

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.


🏆 Projects Using Spartan

Project Description
University Thesis Originally created as a learning project and portfolio piece during university at University of Thessaly with Professor Fotis Kokkoras
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

Using code from Spartan? Reach out, I'd love to showcase your project!


📄 License

MIT License — free to use with attribution.