A minimal game engine built with Vulkan and Odin.
- Language: Odin
- Graphics API: Vulkan
- Windowing: GLFW
- Platform: macOS (currently)
A barebones Vulkan game engine demonstrating window creation, GPU enumeration, queue family selection, logical device creation, swapchain setup, and a basic render loop. Currently renders a black screen.
Using and documenting on my personal blog: https://crowsheart.com/
- Odin compiler (
odin) - Vulkan SDK
- macOS with GPU supporting Vulkan
odin run .Or build for release:
odin build . -release- Window creation via GLFW ✓
- Instance creation with required extensions ✓
- Physical device enumeration ✓
- Surface creation ✓
- Queue family selection (graphics + present) ✓
- Logical device creation ✓
- Swapchain creation ✓
- Render pass ✓
- Command buffer allocation ✓
- Render loop ✓
- Add actual rendering (triangle, meshes)
- Handle window resize
- Add depth buffer
- Framebuffers with proper attachments
- Cleanup on exit (destroy Vulkan resources)
- Window resize handling
- Move initialization to an
AppRunnerstruct - Logger
- AppRunner struct
- Windows/Unix support