https://github.com/qbart/diye
Opinionated toolkit for 3D-based applications and games
https://github.com/qbart/diye
Last synced: 8 months ago
JSON representation
Opinionated toolkit for 3D-based applications and games
- Host: GitHub
- URL: https://github.com/qbart/diye
- Owner: qbart
- License: mit
- Created: 2024-10-06T00:25:02.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2025-02-05T17:38:27.000Z (over 1 year ago)
- Last Synced: 2025-02-14T17:08:10.848Z (over 1 year ago)
- Language: C++
- Homepage:
- Size: 2.4 MB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# DIYE
DIY engine (DIYE for short) is a highly opinionated toolkit for 3D-based applications and games.
It's not meant to be a general-purpose engine, but rather a collection of mid-level abstractions that can give you a head start on your project
without having to worry about the boilerplate code but still giving you the flexibility to customize it to your needs.
It's not a library so copy and paste the parts you need and modify them to your liking then throw away things you don't want.
You can even copy single file or function to your project if you like (link attribution is appreciated but not required).
## Roadmap
Plan for the next release:
- [ ] Half-Edge data structure with simple set of operations
- [ ] Vulkan Allocator
- [ ] RenderDoc integration
- [x] OSX compilation without errors
## Screenshots
### OBJ Loader and rotation gizmo

### Debug primitives renderer

### ImGui integration

### Animation Curve with Editor
Watch video [here](.github/docs/curve.mp4)

## Development
Make sure to go through the setup steps before starting development.
Consider installing everything to `C:\\sdk`.
Useful links:
- https://cmake.org/download/
- https://learn.microsoft.com/en-gb/vcpkg/get_started/get-started?pivots=shell-cmd
- https://vulkan-tutorial.com/Development_environment
- https://github.com/ninja-build/ninja/releases
Add to user env `PATH`:
- C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.41.34120\bin\Hostx64\x64
- C:\Program Files (x86)\Windows Kits\10\bin\10.0.22621.0\x64
- C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\Ninja
- C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin
Set `CXX` to:
- C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.41.34120\bin\Hostx64\x64\cl.exe
## Setup
Init CMake:
```
cmake --preset debug .
```
Copy assets to build directory and download modified viking model from https://vulkan-tutorial.com/Loading_models.
## Dependencies
Libraries:
- Vulkan
- ImGui
- ImGuizmo
- SDL2
- SDL2_image
- GLEW
- fmt
- GLM
- TinyOBJLoader
- imdd
Stack:
- C++17
- GLSL
- CMake
- vcpkg
- ninja (optional for shader compilation)
## Timeline
Releases:
- 2025.Q1: Initial release with basic rendering, UI, camera, debug primitives renderer, input and OBJ loader