Skip to content

unsettledgames/debut-engine

Repository files navigation

debut-engine

Simple, work in progress, learning-oriented C++ graphics engine. image

image

Build instructions (Windows only atm, latest branch is c#-scripting):

  • Visual Studio 2019 or above required, CMake required
  • Clone this repository
  • Run git checkout --latest_branch_name--, where --latest_branch_name-- is the name written above.
  • Run git submodule init
  • Run git submodule update
  • Run the relevant script in the scripts folder. Win-GenMSVC19.bat generates a Visual Studio 2019 solution, Win-GenMSVC22.bat generates a Visual Studio 2022 solution.
  • Open DebutEngine.sln, right click on Debutant, click on "Set as startup project"
  • Compile the solution
  • Copy the Resources/assets folder in Build/Debutant/Build
  • If you want to open the default projects too, move the Lib and Debut folders there as well.

Yes, I should really add some CMake stuff to automatically copy things. I should also probably make a proper installer and put the Resources in a better place.

TODO List:

  • Architecture
    • Multithreading
    • Vulkan
    • SPIR-V
  • 2D
    • Tilemaps (editor too)
  • Physics
    • 2D Physics
      • Joints
    • 3D physics
      • Capsule and cylinder colliders, joints
      • The cool stuff that Jolt apparently supports
    • Triggers
  • VFX
    • Particle systems
  • Rendering
    • PBR rendering
    • Post processing effects
      • Anti aliasing
      • Bloom
      • Depth of field
      • Motion blur
      • Cromatic aberration
      • HDR
      • Color curves
      • Ambient occlusion
    • Deferred rendering
    • LODs
      • Veeery ambitious but I'd like to have a look at Nanite
    • Fog
  • Animation
    • 2D Skeletal
    • 2D Traditional
    • 3D
  • AssetManager
    • Release resources when not used
    • Detect file system changes?
  • UI system
    • Probably use an external library
  • Utility
    • Prefabs
    • Event system
  • Editor
    • Camera preview
    • Debug Console
    • Shader / material graph
    • Sprite slicing
    • Move files (don't break the AssetManager while doing so)
    • Terrain editor :O
  • Debugging
    • Profiler
    • Memory usage measuring (custom allocators, GC)