A simple game engine made for learning rendering APIs, game engine architecture, etc.
- Cross-platform, multiple graphics API compatible.
- Useable for game development.
DirectX 11 | Vulkan | |
---|---|---|
Windows | ✔️ | ✖️ |
macOS/iOS/tvOS | ✖️ | ✖️ |
Linux | ✖️ | ✖️ |
- Basic engine architecture
- Custom format asset system
- ECS system
- Scripting system
- C# script engine
- Rendering system
- 2D batch renderer
- PBR pipeline
- Editor
- Basic editor
- glfw
- ImGuizmo
- box2d
- entt
- filewatch
- glm
- ImGui
- mono
- freetype
- msdfgen
- msdf-atlas-gen
- spdlog
- stb_image
- yaml-cpp
- assimp
- DX11 support
- C# script engine
- Custom format asset system
- Rendering
- Mesh system
- Material system
- Lighting
- Deferred rendering
- Tile-based light culling
- Shadow mapping
- Cascaded shadow maps
- Omnidirectional shadow maps
- Skyboxes rendering
- Physically based rendering pipeline
- Image-based lighting
- Screen space ambient occulsion
- Screen space reflection
- Screen space global illumination
- Light baking system
- Non-photorealistic rendering pipeline
- LOD(Level of detail) system
- UI rendering
- Ray/Path tracing
- Vulkan & DX12
- Metal support
- 3D physics(JoltPhysics or PhysX)
- Animation system
- New C# script engine(Custom C++/C# wrapper)
- Runtime
- Asset package serialize & deserialize
- Editor
- Animation state machine graph editor
Require Vulkan SDK 1.2(or higher)
Visual Studio 2022 is recommended
1. Downloading the repository:
git clone https://github.com/Sigurd015/Hanabi
git submodule update --init --recursive
2. Run the Setup-Windows.bat
3. Open .sln file with Visual Studio