Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Brugarolas/SpartanEngine

 
 

Repository files navigation

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.

Status

build_status Discord

Media

Videos

Livestreams Image1 Features Image2

Gallery

Features

Rendering

  • 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.

System

  • 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.

Formats

  • Wide file format support: 10+ for fonts, 20+ for audio, 30+ for images, and 40+ for models.

Roadmap

  • 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.

Wiki

Don't forget that there is a wiki that can help answer some of your questions. Here are some of it's contents:

About

Game engine with an emphasis on architectural quality and performance

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 77.5%
  • C 19.5%
  • HLSL 2.8%
  • Lua 0.1%
  • Python 0.1%
  • Dockerfile 0.0%