/ExpansionGameEngine

Primary LanguageC++OtherNOASSERTION

ExpansionGameEngine

Expansion Game Engine is a little 3D game engine in developpement.

Target List

  • Multi-API rendering (OpenGL, Vulkan, and DirectX11/12 if I want to export to XBox)
    • OpenGL 3/4
    • Vulkan (In priority to D3D, soon to be started)
    • Direct3D
  • Going PBR
  • Lightweight build (<30MB for all engine files) & SDK (<300MB for the whole sdk)
  • Light and Shadow fully realtime
  • Deffered rendering
  • Cross-Platorm :
    • Windows
    • Linux
    • Console
      • Switch
      • PS4
      • XBox
    • MacOS (last priority)
  • Optimise as f*ck -> I want to have a very well optimised engine to run everywhere
  • An easy to understand & easy to use engine
    • JS Scripting
    • Powerful all-in-one editor
    • Well written documentation

TODO List :

  • Check compatibility with linux (and make it compatible)
  • Reduce RAM usage
  • Impl. Shadows to Raindrop Renderer
    • Improve these (for instance, better PCF)
  • Fix Debug rendering (Combine forward rendering with deffered)
  • Rebuild point-lighting system (--> Lighting in volumes)
  • Better management of ressources (especially with texture) --> I'll make a MaterialLibrary system to manage all of that, it will be transparent for the final user, but it will optimise a lot GPU memory usage
  • Fix window resize
  • Proprer input manager
  • Custom shaders
  • ExpansionMath Cleanup
  • Use smartptr when possible
  • Consistent error handling
  • Fix the error when reducing the window

Dependencies :

  • OpenAL Soft (by @Kcat)
  • GLFW3
  • OpenGL
  • GLAD
  • GLEW
  • GLM
  • libsndfile1
  • Bullet Physics
  • ASSIMP (For tools)
  • Qt (For tools)
  • Jsoncpp

NB1 : All libs that are precompiled and in this repo are compiled for Windows x64. If you want to compile this engine for Windows x86 you need to do it yourself. If you want to compile this engine for linux you need to install deps via your package manager.

NB3 : CMakeLists.txt are specially made for Linux, if you want to compile for Windows, you can just use my Visual Studio Solution (I normally update it at each VS major release, for now it is a VS2019 solution)