GithubHelp home page GithubHelp logo

braedonjl / spartanengine Goto Github PK

View Code? Open in Web Editor NEW

This project forked from panosk92/spartanengine

0.0 0.0 0.0 2.75 GB

Game engine with an emphasis on architectural quality and performance

License: MIT License

HLSL 3.01% C++ 83.76% C 10.38% Lua 0.10% Batchfile 0.01% C# 0.06% ASP.NET 2.65% Shell 0.03%

spartanengine's Introduction

Spartan Engine Discord

An engine which is the result of my never-ending quest to understand how things work and has become my go-to place for research. It's designed around the philosophy of favoring fast real-time solutions over baked/static ones, a spartan approach offering a truly dynamic experience.

If you're also on the lookout for knowledge, then you might find this engine to be a helpful study resource. This is because a lot of effort goes into into building and maintaining a clean, modern and overall high quality architecture, an architecture that will ensure continuous development over the years ;-)

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.

Embracing the open source ethos and respecting the MIT license is greatly appreciated. This means that you can copy all the code you want as long as you include a copy of the original license.

Download

Platform API Status Quality Binaries
windows_d3d11 Stable Download
windows_vulkan Beta Download
windows_d3d12 Alpha Soon

Media

Features (v0.31)

  • 10+ font file formats support (FreeType)
  • 20+ audio file formats support (FMOD)
  • 30+ image file formats support (FreeImage)
  • 40+ model file formats support (Assimp)
  • Vulkan and DirectX 11 backends (same HLSL shaders compile everywhere)
  • Deferred rendering with transparency (under a single render path and using the same shaders)
  • Principled BSDF supporting anisotropic, clearcoat and cloth materials (combined with things like normal mapping, parallax, masking, occlusion etc)
  • Bloom (Based on a study of Resident Evil 2's RE Engine)
  • Volumetric lighting
  • Lights with physical units (lux for directional, candelas for point and spot lights)
  • Shadows with penumbra and colored translucency (Cascaded and omnidirectional shadow mapping with Vogel filtering)
  • SSAO (Screen space ambient occlusion)
  • SSR (Screen space reflections)
  • SSS (Screen space shadows)
  • TAA (Temporal anti-aliasing)
  • Physically based camera (Aperture, Shutter Speed, ISO)
  • Depth of field (controlled by the aperture of the camera)
  • Motion blur (controlled by the shutter speed of the camera)
  • Real-time shader editor
  • Custom mip chain generation (Higher texture fidelity using Lanczos3 scaling)
  • Font rendering
  • Frustum culling
  • Physics (Rigid bodies, Constraints, Colliders)
  • Entity-component system
  • Event system
  • Input (Mouse, Keyboard, Controller)
  • Debug rendering (Transform gizmo, scene grid, bounding boxes, colliders, raycasts, g-buffer visualization etc)
  • Thread pool
  • Engine rendered platform agnostic editor
  • Profiling (CPU & GPU)
  • C# scripting (Mono)
  • XML files
  • Windows 10 and a modern/dedicated GPU (The target is high-end machines, old setups or mobile devices are not officially supported)
  • Easy to build (Single click project generation which includes editor and runtime)
  • AMD FidelityFX Contrast Adaptive Sharpening
  • AMD FidelityFX Single Pass Downsampler
  • AMD FidelityFX Super Resolution
  • AMD Compressonator for texture compression

Roadmap

v0.32-35 (WIP)
Feature Completion Notes
SDL integration 100% Use SDL for window creation and input (this also enables PlayStation controller support).
Screen space global illumination 100% One bounce of indirect diffuse and specular light.
Depth-of-field 100% Controlled by camera aperture.
Temporal upsampling 50% Reconstruct a high resolution output from a low resolution input (fix some remaining bugs).
DirectX 12 10% RHI has already matured thanks to adding Vulkan, this should be easy.
C# scripting (Replace AngelScript) 50% Using Mono (low priority since the engine is not ready for scripting games).
Vulkan polishing - Optimise to outperform D3D11 in all cases and improve stability, things which will also make the engine API better.
Ray traced shadows - Will start work on it once I get an RTX GPU and deprecate D3D11 in favour of D3D12.
Ray traced reflections - Will start work on it once I get an RTX GPU and deprecate D3D11 in favour of D3D12.
Eye Adaptation - Low priority.
Subsurface Scattering - Low priority.
Linux support - Vulkan and SDL is there, working on a linux port is now possible.
Future
  • Skeletal Animation.
  • Atmospheric Scattering.
  • Dynamic resolution scaling.
  • Export on Windows.
  • UI components.
  • Make editor more stylish.

Documentation

Dependencies

License

  • Licensed under the MIT license, see LICENSE.txt for details.

spartanengine's People

Contributors

cyw94 avatar dehnda avatar nexovec avatar panosk92 avatar yunstore avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.