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.
Video: Livestream of FSR 2 integration | Video: A demonstration of the engine's capabilities (old) |
---|---|
![]() |
|
Screenshot: Bistro | Screenshot: Minecraft |
![]() |
![]() |
Upon launching the engine, you'll be greeted with a selection of default worlds to load. Each world is physics-enabled, allowing you to walk around, pick objects using your mouse, and even drive a car. These worlds are designed to offer a diverse and enjoyable experience.
- 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.
- Keep an eye on Vulkan, it's stable but you never know.
- Continue switching to bindless.
- 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 (and use FSR 2, to properly reconstuct).
- 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: