Skip to content

bud11/Engine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

45 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

A 3D game engine/framework/runtime written in and around C#/.NET.
🚧 In development 🚧

This project aims to offer a platform agnostic and mostly unopinionated foundation to build out any kind of engine or game, rapidly, without sacrificing control nor requiring immense boilerplate/knowledge.

Features:

  • Full platform/backend agnostic control over the entire rendering process (currently featuring a Vulkan backend)
  • An extensive easy to use shader metadata/authoring system with support for multiple shader languages (currently featuring GLSL and HLSL)
  • Complete support for custom object and resource types
  • A robust easy to use serialization/deserialization system fit for all types of data (for example, resources, save data, etc)
  • Extensive multithreading/async support
  • Fully unified single-language source to modify and extend freely where that need may arise

Conditional Features:

  • Debug builds come with hot-reloadable code/shaders/assets and ImGUI integration
  • Release builds come with shader precompilation, zstd asset compression, and can safely target NativeAOT when published

Todos/considerations:

  • Finishing compute shaders properly, and in tandem, solidifying asynchronous gpu work and gpu -> cpu communication
  • Further work on more optimal resource/subresource compilation, resource dependencies

Quick start:

To start, clone the repo, then install some or all of the following development-time cli dependencies:

Dependency Nessecity Detection
spirv-cross Nessecary PATH variable
glslangvalidator Only for GLSL PATH variable
dxc Only for HLSL PATH variable
AMD Compressonator (does not require an AMD gpu) Interchangeable with NVTT3, one required PATH variable (to the directory containing compressonatorcli.exe)
Nvidia Texture Tools 3 (does not require an nvidia gpu) Interchangeable with compressonator, one required PATH variable (to the directory containing nvtt_export.exe)

Then open some of the demo projects to get a fundamental grasp of the engine, or create your own and simply import EntryProps via something like <Import Project="..\EntryProps.props" /> in your .csproj's Project body.

Tools:

A blender addon aiming to be capable of supporting a full production pipeline is avaliable here: https://github.com/bud11/Engine-Blender-Tools

Demo images

This section will be further populated with more advanced demos as they become available within the demos folder.

Manually drawn NDC triangle: triangle Code-generated cube scene, camera and basic scene rendering pipeline: cube Intel sponza scene imported via blender addon: initialsponza3

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages