A W.I.P Modern C++20 Cross-Platform Game Engine with C# Scripting.
Getting Started | Features | Dependencies | RoadMap
For more examples, please see Samples.
List is W.I.P (There are lots of features not written here)
- Custom Entity Component System (using entt as back-bone while providing systems that manages components)
- Multi-Threaded tasks execution (Job-system)
- All assets are loaded/imported asynchronously.
- Uses Assimp to import 40+ 3D model formats.
- Uses Freeimage to import 30+ image formats.
- Uses libsndfile to import 20+ sound files formats.
- All imported assets are exported into a unified formats for faster loading.
- All imported assets have a meta file that describes further loading.
- Every asset is identified with a unique UUID given on its creation.
- Section W.I.P
- Dynamic light Component (Directional & Point & Spot)
- Flexable Material System (using different pipelines/shaders/textures for every material)
- Shadow Mapping for all light sources.
- PBR With Image Based Lighting shaders.
- Section W.I.P
- Uses OpenAL or XAudio2 as a low-level backends
- Section W.I.P
- PhysX 4.1 integration
- Section W.I.P
- C# Scripting through Mono
- Section W.I.P
Follow the instructions below to compile and run the engine from source. If you wish to build with another compiler/platform, please note that:
Nuclear Engine.sln
and set your solution configuration and platformConsoles are planned but not a priority now...
Dependencies | Type | Buildling |
---|---|---|
Assimp | Submodule | built with cmake |
DiligentCore | Submodule | built with cmake |
OpenAL-soft | Submodule | built with cmake |
PhysX 4.1 | submodule | Built with their provided build-tools |
Freeimage | submodule | Built with their provided build-tools |
Freetype | submodule | Built with their provided build-tools |
msdf-atlas-gen | submodule | Built with their provided build-tools |
Mono | External | Put headers in External/mono |
SDL2 | External | Put headers in External/SDL/include |
libsndfile | External | Put the .lib in your Build Output directory |
spdlog | included | Built with the engine |
IMGUI | included | Built with the engine |
stb_truetype | included | Built with the engine |
entt | included | Built with the engine |
zpp::bits | included | Built with the engine |
Download external dependencies through their sites. Put all their .lib in the bin folder.
W.I.P:
On-Hold:
TODO: