UniEngine
====================================================================
The development of UniEngine is moved to a new repo edisonlee0212/UniEngine, with cross-platform support by CMake. I will not update on this repo anymore.
==================================================================== Project description: This is a framework that can be used to develop games or do scientific researches.
- A fully functional Entity Component System (ECS) combined with multithreading to provide the best performance under the era of multi-core CPUs.
- A generic rendering framework that will allow: a. Quick prototype / displaying geometries in scene. Develop APIs like Gizmos in Unity: https://docs.unity3d.com/ScriptReference/Gizmos.html. b. Deferred rendering that includes lighting, shadows, SSAO, post-possessing, etc. c. Forward rendering that includes user-controlled shading, lighting, shadows, etc. Develop APIs like Graphics in Unity: https://docs.unity3d.com/ScriptReference/Graphics.html
- Integrated industrial proven physics engine PhysX to provide stable and good physics simulations.
- Integrated ImGui with docking, multiple viewport features enabled to provide good editor experiences.
- An engine editor that allow user to create/edit/save/load the scene.
What additional components or libraries will you rely on? Here is a list of libraries that I will use in the project:
- Assimp: Provides features related to asset/model loading.
- Glm: Provides math calculation.
- ImGui: Provides GUI.
- PhysX: Provides physics simulation.
- Stb: Provides image loading.
- Glfw: Provides windows management.
- Glad: Provides OpenGL linking, like GLEW but gives more control and better integration.
- vit-vit/CTPL: Provides thread pool that allow the engine to run in multi-threads safely. https://github.com/vit-vit/ctpl
Primarily I use this project to experiment different technologies in computer graphics. I also use the framework for my own researches, and those research projects are private, but please feel free to use the UniEngine.