No description
- C++ 93.1%
- Slang 4.3%
- Lua 1.6%
- Shell 1%
| demo | ||
| lib | ||
| models/gltf | ||
| shaders | ||
| .clang-format | ||
| .gitattributes | ||
| .gitignore | ||
| cmake_generator.sh | ||
| compile_shaders.sh | ||
| Doxyfile | ||
| imgui.ini | ||
| LICENSE | ||
| README.md | ||
| test.png | ||
| xmake.lua | ||
Bazar engine - Hobbyist render engine
Summary
Made in C++ using :
- GLM : Math library
- spdlog : Log library
- stb :
stb_image.handstb_image_write.hfor image manipulation - tinygltf : Cool gltf read/write library
- Vulkan : GPU API
- vk-bootstrap : Utility library for Vulkan API
- Dear ImGui : GUI library
Project managed using xmake
Code base overview
.
├── cmake_generator.sh // generate CMakeLists from XMake
├── compile_shaders.sh // compile shaders/ script
├── demo
│ ├── // Sample
├── doc/ // Use doxygen Doxyfile command to generate
├── Doxyfile
├── lib
│ ├── include
│ │ ├── BazarEngine.hpp // to include in most case
│ │ ├── Core/
│ │ ├── ECS/
│ │ ├── Loaders/
│ │ ├── Vulkan/
│ │ └── WindowManager/
│ └── src
│ └── // ...
├── models
│ └── // Sample models used for dev
├── shaders
│ ├── bin
│ │ └── // Shaders binaries goes here,
│ │ only files under shaders/ dir are compiled by compile_shaders.sh
│ ├── shaders pass files
│ └── modules
│ └── // shaders modules
├── test.png
└── xmake.lua
Build project
Really simple thanks to XMake :
# build project
xmake
# run project, may need to specify working directory for assets path, use -w <dir>
xmake run
Roadmap
My way to keep track of what I've done and where to go next
- GLTF File read and export : IN PROGRESS
- PBR Shading : IN PROGRESS
- Shadow casting and light environment
- Skeletal animation
- Basic physics interaction
- Sound engine
Further goal
Building a yet not well defined RPG game using terrain generation