Spartan is a research-focused game engine designed for real-time solutions, providing a dynamic experience. Not intended for game development yet, it serves as a valuable study resource due to its clean, modern, and high-quality architecture.
-
For occasional updates regarding the project's development, you can follow me on twitter.
-
For questions, suggestions, help and any kind of general discussion join the discord server.
-
For issues and anything directly related to the project, feel free to open an issue.
-
Adhering to the MIT license is appreciated. This means that you can copy all the code you want as long as you include a copy of the original license.
Livestreams ![]() |
Features ![]() |
|---|
![]() |
![]() |
|---|
- 128-byte push constant buffer for lightning fast GPU data transfer.
- AMD FidelityFX suite for enhanced visuals and performance.
- Bloom effect inspired by Resident Evil 2's RE Engine.
- Unified deferred rendering with transparency (BSDF with same render path and shaders).
- Camera-controlled depth of field, motion blur and chromatic aberration.
- Comprehensive debug rendering options.
- Frustum culling.
- Physical light units (intensity from lumens and color from kelvin).
- Physically based camera.
- GPU-based mip generation (single dispatch).
- Advanced shadow features with penumbra and colored translucency.
- Screen space global illumination, reflections, and shadows.
- Temporal anti-aliasing for smooth visuals.
- Vulkan and DirectX 12 backends with universal HLSL shaders.
- Volumetric lighting for atmospheric effects.
- One-click build for easy setup.
- Entity-component and event systems for flexible architecture.
- Universal input support, including mouse, keyboard, and controllers (tested with a PS5 controller).
- Comprehensive physics features.
- CPU & GPU profiling for performance tuning.
- XML support for data handling.
- Thread pool for efficient multitasking.
- Wide file format support: 10+ for fonts, 20+ for audio, 30+ for images, and 40+ for models.
- Continue bug fixing until Vulkan is stable.
- Continue switching to bindless.
- Create a startup/default world which is closer to a playable demo.
- Continue work on D3D12 (on going and non blocking since Vulkan is there).
- Skeletal Animation.
- Atmospheric Scattering.
- Eye Adaptation.
- Subsurface scattering.
- Ray traced reflections & shadows.
- Dynamic resolution scaling.
- Export on Windows.
- Improved the editor style/theme.
- Scripting.
- Linux port.
If you are looking at what to do, there are more ideas in the issues section.
Don't forget that there is a wiki that can help answer some of your questions. Here are some of it's contents:





